Skip to content

Upcoming Release: FluidFramework v2.70.0 #22101

@tylerbutler

Description

@tylerbutler

This issue is automatically updated with a preview of the release notes for the upcoming Fluid Framework release.

To generate release notes locally to commit to the RELEASE_NOTES folder in the repo, run the following command:

pnpm flub generate releaseNotes -g client -t minor --outFile RELEASE_NOTES/2.70.0.md

To generate the release notes to paste into the GitHub Release, run the following command:

pnpm flub generate releaseNotes -g client -t minor --headingLinks --excludeH1 --outFile temporary-file.md

This should happen automatically as part of the release process, but if you need to generate the release notes manually, you can use the above command.


Fluid Framework v2.70.0

Contents

🚨 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

✨ 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

🌳 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions