Listing news on any major breaking changes in DFG. For regular changes, see integrated Github.com project milestones for DFG.
AbstractPointParametricEst(MeanMaxPPE) and relatedPPEfunctions are obsolete, see #1133.
- 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 - @defVariable -> @defStateType
- All deprecated and unstable function exports have been removed. Use the new macro
@usingDFG trueto import all exports. In the future, stable but non-exported functions will be marked aspublic. - Rename SmallDataTypes -> MetadataTypes
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
deletereturns number of nodes deleted and no longer the object that was deleted.- Deprecate
updateVariable!formergeVariable!, notemergereturns number of nodes updated/added. - Deprecate
updateFactor!formergeFactor!, notemergereturns 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 GraphPlotwithusing 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.datlegacy 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
KeyErrorifgetBlobEntryis not found, previously wasErrorException. - Change return type on
addData!convenience wrappers to only return newBlobEntry. - Fix
addBlob!calls forFolderStoreandInMemoryBlobStoreto useBlobEntry.originIdand 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
BlobEntrydefinition, dropping use ofAbstractBlobEntry. - Include type field
VariableNodeData.covar. - Drop minimum Julia compat to 1.8.
- Add ids and metadata to data types.
- Use
Base.@kwdefon 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.
Neo4jDFGhas been removed.LightDFGhas been removed, andGraphsDFGis not the standard in-memory driver for aliasLocalDFG.- Standardize all timestamp fields to
ZonedDateTimefrom previousDateTimeso that time zones will always be available. - internal
getDFGVersion()function now returns a::VersionNumber. - Use
userLabel, robotLabel, sessionLabelinstead of legacyuserId, robotId, sessionId.
- Unpack of GenericFactorNodeData with
reconstrFactorDatanow getsdfg::AbstractDFGandvarOrder::Vector{Symbol}, deprecating previous use ofconvertwithout the graph context (#832). - Switch to GraphsDFG, deprecating archived LightGraphs.jl (#826).
- Workaround: packed factor data
.fncencoded as base64 to avoid escape character problems (#834). - Towards distributions serialized via JSON, getting away from custom strings (#848).
LocalDFGreplacesDefaultDFG(#844).- Optimized creation of CGDFG /
createDfgSessionIfNotExist(#839, #815). plotDFGreplacesdfgplot(#841, #844).Neo4jDFGreplacesCloudGraphsDFG(#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.inferdimdata values are being populated there. (#804)