Fluid Framework v2.60.0 (minor)
Contents
- 🚨 Breaking Changes
- 🌳 SharedTree DDS Changes
- Single-node insertion/removal APIs have been removed from TableSchema (alpha) (#25233)
- Range-based row/column removal methods have been added to TableSchema APIs (alpha) (#25235)
- Replace "TreeEncodingOptions.useStoredKeys" with "keys" and "KeyEncodingOptions" (#25263)
- Hoist runTransaction method from TreeViewAlpha to TreeBranch (#25280)
- SchemaFactoryAlpha.recordRecursive now supports metadata (#25289)
- FormatValidator added to replace JsonValidator (#25311)
- Add SchemaFactoryBeta (#25313)
🚨 Breaking Changes
Remove unnecessary and internal APIs in ISequenceIntervalCollection and related interval types (#25244)
The following APIs are now removed:
IInterval.cloneIInterval.modifyIInterval.unionISerializableIntervalSequenceInterval.cloneSequenceInterval.modifySequenceInterval.unionSequenceInterval.serializeSequenceInterval.addPositionChangeListenersSequenceInterval.removePositionChangeListeners
These APIs were never intended for public use. There is no migration path, and any usage is strongly discouraged, as it may result in severe errors or data corruption. Please remove any dependencies on these APIs as soon as possible.
Change details
Commit: 15d476e
Affected packages:
- fluid-framework
- @fluidframework/sequence
🌳 SharedTree DDS Changes
Single-node insertion/removal APIs have been removed from TableSchema (alpha) (#25233)
There is a significant performance benefit to inserting / removing rows / columns in batches. To help encourage more performant usage patterns, single-node insertion and removal APIs have been removed. The APIs that operate on batches should be used instead.
Specifically:
insertColumn- Use
insertColumnsinstead
- Use
insertRow- Use
insertRowsinstead
- Use
removeColumn- Use
removeColumnsinstead
- Use
removeRow- Use
removeRowsinstead
- Use
Change details
Commit: 99281d2
Affected packages:
- @fluidframework/tree
- fluid-framework
Range-based row/column removal methods have been added to TableSchema APIs (alpha) (#25235)
Adds range-based overloads to removeColumns and removeRows for removing contiguous ranges of rows and columns.
The removeAllColumns and removeAllRows methods have been removed, as they can be trivially implemented in terms of the new methods.
Change details
Commit: c803393
Affected packages:
- @fluidframework/tree
- fluid-framework
Replace "TreeEncodingOptions.useStoredKeys" with "keys" and "KeyEncodingOptions" (#25263)
The alpha API TreeEncodingOptions has had its useStoredKeys boolean replaced with keys that takes a KeyEncodingOptions allowing for three options instead of the previous two. With the new API, it is now possible to control, for APIs which support it (like TreeAlpha.exportVerbose), if unknown optional fields will be included when exporting data using stored keys.
Additionally, the relevant options interfaces have been marked as @input, indicating that more options may be added as optional parameters in the future, and that should be considered non-breaking.
Change details
Commit: b65f2a8
Affected packages:
- fluid-framework
- @fluidframework/tree
Hoist runTransaction method from TreeViewAlpha to TreeBranch (#25280)
Transactions are not view-schema-dependent, so it isn't necessary for them to be exclusive to the view type. runTransaction is now available on TreeBranch (alpha). TreeViewAlpha extends TreeBranch, so this change strictly makes the API more accessible.
Change details
Commit: a66b3b7
Affected packages:
- fluid-framework
- @fluidframework/tree
SchemaFactoryAlpha.recordRecursive now supports metadata (#25289)
SchemaFactoryAlpha.recordRecursive now support metadata like SchemaFactoryAlpha.recordAlpha and the other TreeNodeSchema creation methods on SchemaFactoryAlpha (except for SchemaFactoryAlpha.record which does not support metadata).
Change details
Commit: 8324170
Affected packages:
- fluid-framework
- @fluidframework/tree
FormatValidator added to replace JsonValidator (#25311)
The existing @alpha type JsonValidator has a new type-erased alternative, FormatValidator, which is planned to be stabilized to @beta in the future. It replaces JsonValidator in ICodecOptions. Existing code using ICodecOptions should migrate to use FormatValidator, but this is not required for adopting this release as JsonValidator is still supported.
Change details
Commit: 9db6e08
Affected packages:
- fluid-framework
- @fluidframework/tree
Add SchemaFactoryBeta (#25313)
SchemaFactoryBeta is added to provide a place to partially stabilize APIs from SchemaFactoryAlpha. Initially just one APIs is added as @beta: scopedFactory. Users of the existing @alpha scopedFactory API on SchemaFactoryAlpha will need to update to use scopedFactoryAlpha if they require the returned factory to be a SchemaFactoryAlpha instance.
Change details
Commit: dca2361
Affected packages:
- fluid-framework
- @fluidframework/tree
🛠️ Start Building Today!
Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!