github microsoft/FluidFramework client_v2.70.0
Fluid Framework v2.70.0 (minor)

one day ago

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:

  • createBlob
  • dispose
  • disposed
  • downloadSummary
  • getSnapshot
  • getSnapshotTree
  • getVersions
  • policies
  • uploadSummaryWithContext

The following deprecated properties have been removed from IContainerStorageService:

  • dispose
  • disposed
  • downloadSummary

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 singleton
  • tryGetFluidDevtools - Get the existing devtools instance if initialized
  • IFluidDevtools - Main devtools interface for registering containers
  • ContainerDevtoolsProps - 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!

Don't miss a new FluidFramework release

NewReleases is sending notifications on new releases.