microsoft / microsoft/FluidFramework

Upcoming Release: FluidFramework v3.2.0

Open
#22,101 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
4.9k
Forks
586
Avg merge
1d 15h
Merged PRs (30d)
146

Description

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/3.2.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 v3.2.0

Contents

  • ✨ New Features
    • Require the oldest supported client version in ServiceOptions (#27902)
    • Add ServiceClient for Tinylicious (#27902)
    • Add session-storage-backed local services (#27902)
  • 🐛 Bug Fixes
    • createIdentifierIndex handles schemas with multiple identifiers consistently (#28233)
    • createTreeIndex now interprets object field selectors as property keys (#28233)

✨ New Features

Require the oldest supported client version in ServiceOptions (#27902)

The alpha ServiceOptions.oldestSupportedClient property is now required. Code that constructs service options must specify the oldest Fluid Framework client version that can open and process documents written by the service client.

const options: ServiceOptions = {
  oldestSupportedClient: "2.100.0",
};
Change details

Commit: da0dd40

Affected packages:

  • @fluidframework/driver-definitions
  • fluid-framework

⬆️ Table of contents

Add ServiceClient for Tinylicious (#27902)

The new alpha createTinyliciousServiceClient API creates a ServiceClient backed by a Tinylicious service.

Change details

Commit: da0dd40

Affected packages:

  • @fluidframework/tinylicious-driver

⬆️ Table of contents

Add session-storage-backed local services (#27902)

The new alpha getSessionService API provides a ServiceClient compatible way to use the browser-local Fluid service that retains attached documents across page reloads in the same browser tab. Calls within one JavaScript realm share a lazily created service for the lifetime of that realm. Local services also expose APIs to list and delete their stored documents.

Session storage can be shared by separate same-origin JavaScript realms or applications loading separate copies of the package. Such instances run independent local servers, so concurrently editing the same stored document across them is unsupported.

The alpha EphemeralServiceClient type has been replaced by the more general LocalServiceClient type. Update type imports and annotations to use LocalServiceClient<EphemeralService>.

Change details

Commit: da0dd40

Affected packages:

  • @fluidframework/local-driver

⬆️ Table of contents

🐛 Bug Fixes

createIdentifierIndex handles schemas with multiple identifiers consistently (#28233)

createIdentifierIndex now indexes a node only when its schema has exactly one identifier field. Schemas with multiple identifier fields are skipped instead of arbitrarily indexing the first identifier field. This avoids field-order-dependent behavior while allowing identifier indexes to be created for trees containing such schemas.

Identifier indexes now also take advantage of identifier fields being immutable. This avoids unnecessarily re-indexing existing nodes after tree edits while continuing to index newly created nodes and filter detached nodes from index results.

Change details

Commit: 7663ec8

Affected packages:

  • @fluidframework/tree
  • fluid-framework

⬆️ Table of contents

createTreeIndex now interprets object field selectors as property keys (#28233)

createTreeIndex previously interpreted keys returned by TreeIndexKeyFieldSelector as stored keys. This was inconsistent with the Simple Tree schema API and caused indexes to fail when an object field's property key differed from its stored key. Object field selectors are now translated from property keys to stored keys internally. Selectors must return undefined for non-object schemas.

Change details

Commit: 7663ec8

Affected packages:

  • @fluidframework/tree
  • fluid-framework

⬆️ Table of contents

🛠️ Start Building Today!

Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Use the release-note generation commands in the issue as the entry point, writing the committed output to RELEASE_NOTES/3.2.0.md or the temporary file for GitHub. Confirm that the generated notes contain the listed v3.2.0 features and bug fixes, then use the appropriate output for the release process.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
release
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.