Contents
- 🚨 Breaking Changes
- Deprecated properties have been removed from IRuntimeStorageService and IContainerStorageService (#25708)
- getSnapshotTree is now required in IChannelStorageService (#25707)
- Deprecated property processCore has been removed from SharedObject (#25749)
- Remove submitMessage from FluidDataStoreRuntime and MockFluidDataStoreRuntime (#25755)
- ✨ New Features
- Promote core devtools APIs from alpha to beta (#25695)
- Added
Tree.ensureSchema(#25740) - A minimal set of branching APIs has been promoted to beta. (#25744)
- Improved join scalability (#25371)
- 🌳 SharedTree DDS Changes
- Update TableSchema APIs (alpha) to accept SchemaFactoryBeta in addition to SchemaFactoryAlpha (#25613)
- All non-structurally named beta schema factory APIs now support node schema metadata (#25685)
- Promote FluidSerializableAsTree APIs from alpha to beta (#25693)
- ⚠️ Deprecations
- Removed deprecated export of MinimumVersionForCollab from @fluidframework/container-runtime (#25309)
🚨 Breaking Changes
Deprecated properties have been removed from IRuntimeStorageService and IContainerStorageService (#25708)
The following deprecated properties have been removed from IRuntimeStorageService:
createBlobdisposedisposeddownloadSummarygetSnapshotgetSnapshotTreegetVersionspoliciesuploadSummaryWithContext
The following deprecated properties have been removed from IContainerStorageService:
disposedisposeddownloadSummary
Please see this Github issue for more details.
Change details
Commit: 82c936e
Affected packages:
- @fluidframework/container-definitions
- @fluidframework/runtime-definitions
⬆️ Table of contents
getSnapshotTree is now required in IChannelStorageService (#25707)
The getSnapshotTree property was added as optional to IChannelStorageService in version 2.51.0. It is now a required property. See this github issue for more details.
Change details
Commit: d1c4c0a
Affected packages:
- @fluidframework/datastore-definitions
- @fluidframework/test-runtime-utils
⬆️ Table of contents
Deprecated property processCore has been removed from SharedObject (#25749)
The deprecated property processCore has been removed from SharedObject.
Please see this github issue for more details.
Change details
Commit: a33a2e3
Affected packages:
- @fluidframework/ordered-collection
- @fluidframework/register-collection
- @fluidframework/shared-object-base
⬆️ Table of contents
Remove submitMessage from FluidDataStoreRuntime and MockFluidDataStoreRuntime (#25755)
As needed, access submitMessage via IFluidDataStoreContext/IFluidParentContext. See #24406 for details.
Change details
Commit: 88860f3
Affected packages:
- @fluidframework/datastore
- @fluidframework/test-runtime-utils
⬆️ Table of contents
✨ New Features
Promote core devtools APIs from alpha to beta (#25695)
The primary devtools APIs may now be imported from /beta. This includes:
initializeDevtools- Initialize the devtools singletontryGetFluidDevtools- Get the existing devtools instance if initializedIFluidDevtools- Main devtools interface for registering containersContainerDevtoolsProps- Properties for registering containers with devtools
For example:
import {
initializeDevtools,
tryGetFluidDevtools,
type IFluidDevtools,
type ContainerDevtoolsProps,
} from "@fluidframework/devtools-core/beta";
// Initialize devtools
const devtools = initializeDevtools();
// Register a container
devtools.registerContainerDevtools({
containerKey: "my-container",
container: myContainer,
});Change details
Commit: 7c8e203
Affected packages:
- @fluidframework/devtools-core
⬆️ Table of contents
Added Tree.ensureSchema (#25740)
This helper function allows content to be tagged with a schema type before being inserted into the tree. This allows content that would otherwise be ambiguous to be well-defined, without having to wrap it in a node constructor.
Example:
const sf = new SchemaFactory("example");
class Dog extends sf.object("Dog", { name: sf.string() }) {}
class Cat extends sf.object("Cat", { name: sf.string() }) {}
class Root extends sf.object("Root", { pet: [Dog, Cat] }) {}
// ...
const pet = { name: "Max" };
view.root.pet = pet; // Error: `pet` is ambiguous - is it a Dog or a Cat?
view.root.pet = new Dog(pet); // This works, but has the overhead of creating a Dog node before the insertion actually happens.
TreeAlpha.ensureSchema(Dog, pet); // Instead, this tags the `pet` object as a Dog...
view.root.pet = pet; // So now there is no error for a normal insertion - it's a Dog.This function works by leveraging the new schemaSymbol, which is also available for use. See its documentation for more information.
Change details
Commit: 8213407
Affected packages:
- @fluidframework/tree
⬆️ Table of contents
A minimal set of branching APIs has been promoted to beta. (#25744)
The following APIs have been promoted to beta in @fluidframework/tree:
TreeBranch.fork()TreeBranch.merge()TreeBranch.rebaseOnto()TreeBranch.dispose()TreeView.fork()
These APIs enable applications to implement basic local branching flows.
Change details
Commit: 32cc2c7
Affected packages:
- fluid-framework
- @fluidframework/tree
- @fluidframework/tree-agent
⬆️ Table of contents
Improved join scalability (#25371)
Protocol for attendees joining has been updated to more efficiently accommodate a larger number of attendees, including when few-to-none have write access.
Change details
Commit: 98dadd3
Affected packages:
- @fluidframework/presence
⬆️ Table of contents
🌳 SharedTree DDS Changes
Update TableSchema APIs (alpha) to accept SchemaFactoryBeta in addition to SchemaFactoryAlpha (#25613)
Makes the TableSchema APIs more flexible, and prepares them for future promotion to beta themselves.
Change details
Commit: 1bdf44a
Affected packages:
- @fluidframework/tree
- fluid-framework
⬆️ Table of contents
All non-structurally named beta schema factory APIs now support node schema metadata (#25685)
The "options" parameter which allows providing metadata for TreeNodeSchema is now available consistently on SchemaFactoryBeta, not just SchemaFactoryAlpha and a subset of SchemaFactoryBeta.
Change details
Commit: 6d8c0ca
Affected packages:
- fluid-framework
- @fluidframework/tree
⬆️ Table of contents
Promote FluidSerializableAsTree APIs from alpha to beta (#25693)
FluidSerializableAsTree may now be imported from /beta.
Change details
Commit: 43fbc54
Affected packages:
- @fluidframework/tree
- fluid-framework
⬆️ Table of contents
⚠️ Deprecations
Removed deprecated export of MinimumVersionForCollab from @fluidframework/container-runtime (#25309)
Removed the deprecated re-export of MinimumVersionForCollab from @fluidframework/container-runtime. This type should now be imported from @fluidframework/runtime-definitions. See the Fluid Framework 2.52.0 release notes for details.
Change details
Commit: 776cb1c
Affected packages:
- @fluidframework/aqueduct
- @fluidframework/container-runtime
- @fluidframework/fluid-static
- @fluid-private/test-end-to-end-tests
- @fluidframework/test-utils
- @fluid-private/test-version-utils
⬆️ Table of contents
🛠️ Start Building Today!
Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!