Contents
- 🚨 Breaking Changes
- Remove unnecessary and internal APIs in ISequenceIntervalCollection and related interval types (#25244)
- 🌳 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.clone
IInterval.modify
IInterval.union
ISerializableInterval
SequenceInterval.clone
SequenceInterval.modify
SequenceInterval.union
SequenceInterval.serialize
SequenceInterval.addPositionChangeListeners
SequenceInterval.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
⬆️ Table of contents
🌳 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
insertColumns
instead
- Use
insertRow
- Use
insertRows
instead
- Use
removeColumn
- Use
removeColumns
instead
- Use
removeRow
- Use
removeRows
instead
- Use
Change details
Commit: 99281d2
Affected packages:
- @fluidframework/tree
- fluid-framework
⬆️ Table of contents
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
⬆️ Table of contents
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
⬆️ Table of contents
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
⬆️ Table of contents
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
⬆️ Table of contents
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
⬆️ Table of contents
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
⬆️ Table of contents
🛠️ Start Building Today!
Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!