Listing news on any major breaking changes in DFG. For regular changes, see integrated Github.com project milestones for DFG.
- Reading or deserialzing of factor graphs created prior to v0.25 are no longer suppoted with the complete removal of User/Robot/Session
- Deprecated AbstractRelativeMinimize and AbstractManifoldsMinimize
- Rename
VariableState
->State
Abstract Types Standardized, see #1153:
- AbstractParams -> [Abstract]DFGParams
- DFGNode -> [Abstract]GraphNode
- AbstractDFGVariable -> [Abstract]GraphVariable
- AbstractDFGFactor -> [Abstract]GraphFactor
- AbstractPackedFactorObservation -> [Abstract]PackedObservation
- AbstractFactorObservation -> [Abstract]Observation
- AbstractPrior -> [Abstract]PriorObservation
- AbstractRelative -> [Abstract]RelativeObservation
- FactorSolverCache -> [Abstract]FactorCache
- VariableStateType -> [Abstract]StateType
delete
returns number of nodes deleted and no longer the object that was deleted.- Deprecate
updateVariable!
formergeVariable!
, notemerege
returns number of nodes updated/added. - Deprecate
updateFactor!
formergeFactor!
, notemerege
returns number of nodes updated/added. - Rename BlobEntry to Blobentry, see #1123.
- Rename BlobStore to Blobstore, see #1124.
- Refactor the Factor solver data structure, see #1127:
- Deprecated GenericFunctionNodeData, PackedFunctionNodeData, FunctionNodeData, and all functions related factor.solverData.
- Replaced by 3 seperete types: Observation, State, and Cache
- This is used internally be the solver and should not affect the average user of DFG.
- Rename FactorOperationalMemory -> FactorSolverCache
- Rename AbstractFactor -> AbstractFactorObservation (keeping both around)
- Deprecate VariableNodeData -> VariableState
- Deprecate getVariableSolverData -> getVariableState
- Deprecate addVariableSolverData! -> addVariableState!
- Deprecate deleteVariableSolverData! -> deleteVariableState!
- Deprecate listVariableSolverData -> listVariableStates
- Deprecate getVariableSolverDataAll -> getVariableStates
- Deprecate getSolverData -> getVariableState/getFactorState
- Deprecate getBlobentryFirst -> getfirstBlobentry, see #1114
- OrderedDict is no longer exported
- FolderStore path now includes the store label.
- Standardized error types and behaviour.
- Graph structure plotting now uses GraphMakie.jl instead of GraphPlot.jl. Update by replacing
using GraphPlot
withusing GraphMakie
.
- Deprecated nouns: SessionBlobEntry -> GraphBlobEntry RobotBlobEntry -> AgentBlobEntry UserBlobEntry -> AgentBlobEntry RobotData -> AgentMetadata SessionData -> GraphMetadata UserLabel -> AgentLabel RobotLabel -> AgentLabel SessionLabel -> GraphLabel
Variables and Factors are renamed and aliased to the old names, see #1109.
-
Factor-level noun-adjectives SkeletonDFGFactor -> FactorSkeleton DFGFactorSummary -> FactorSummary DFGFactor -> FactorCompute PackedFactor/Factor -> FactorDFG
-
Variable-level noun-adjectives SkeletonDFGVariable -> VariableSkeleton DFGVariableSummary -> VariableSummary DFGVariable -> VariableCompute PackedVariable/Variable -> VariableDFG
-
v0.24 FileDFGs can be loaded with v0.25 with the exception of the User[Label/Data/BlobEntries]
- Remove
FolderStore
.dat
legacy extension. To upgrade a legacy FolderStore remove extention with something like:foreach(f->mv(f,split(f,".")[1]), files)
- save/loadDFG now users Tar.jl and CodecZlib.jl #351.
- save/loadDFG now preserves meta fields #921.
- Deprecate getNeighbors for listNeighbors.
- Dropped AbstractRelativeRoots.
- Throw
KeyError
ifgetBlobEntry
is not found, previously wasErrorException
. - Change return type on
addData!
convenience wrappers to only return newBlobEntry
. - Fix
addBlob!
calls forFolderStore
andInMemoryBlobStore
to useBlobEntry.originId
and not previous bugentry.id
. - Close long running serialization redo (#590) using only JSON3.jl and StructTypes.jl going forward.
- Standardize BlobEntry=>Blob naming of functions, and keeping convenience wrappers
{get,add,update,delete}Data[!]
. - Consolidate to only one
BlobEntry
definition, dropping use ofAbstractBlobEntry
. - Include type field
VariableNodeData.covar
. - Drop minimum Julia compat to 1.8.
- Add ids and metadata to data types.
- Use
Base.@kwdef
on stuct types for default values and serialization. - Dropped dependency on Unmarshal.jl.
- Note src/Serialization.jl was refactored and currently contains lots of legacy code for DFG v0.18 compat, and much will be deleted in DFG v0.20 to standardize serialization around JSON3.jl, see #590.
Neo4jDFG
has been removed.LightDFG
has been removed, andGraphsDFG
is not the standard in-memory driver for aliasLocalDFG
.- Standardize all timestamp fields to
ZonedDateTime
from previousDateTime
so that time zones will always be available. - internal
getDFGVersion()
function now returns a::VersionNumber
. - Use
userLabel, robotLabel, sessionLabel
instead of legacyuserId, robotId, sessionId
.
- Unpack of GenericFactorNodeData with
reconstrFactorData
now getsdfg::AbstractDFG
andvarOrder::Vector{Symbol}
, deprecating previous use ofconvert
without the graph context (#832). - Switch to GraphsDFG, deprecating archived LightGraphs.jl (#826).
- Workaround: packed factor data
.fnc
encoded as base64 to avoid escape character problems (#834). - Towards distributions serialized via JSON, getting away from custom strings (#848).
LocalDFG
replacesDefaultDFG
(#844).- Optimized creation of CGDFG /
createDfgSessionIfNotExist
(#839, #815). plotDFG
replacesdfgplot
(#841, #844).Neo4jDFG
replacesCloudGraphsDFG
(#836).
{Packed}VariableNodeData.infoPerCoord::Vector{Float64}
replaces previous.inferdim::Float64
. The change should have legacy support to help facilitate the transition. This datastore is likely to only become part of critical computations downstream in IncrementalInference.jl v0.26, even though the previous.inferdim
data values are being populated there. (#804)