Skip to content

tree: Shared branches#25461

Merged
yann-achard-MS merged 36 commits intomicrosoft:mainfrom
alex-pardes:branch-collab
Sep 23, 2025
Merged

tree: Shared branches#25461
yann-achard-MS merged 36 commits intomicrosoft:mainfrom
alex-pardes:branch-collab

Conversation

@alex-pardes
Copy link
Copy Markdown
Contributor

@alex-pardes alex-pardes commented Sep 16, 2025

Description

This PR allows clients to create multiple branches which are shared by all clients.

This PR introduces new formats that are NOT meant to be used in production.

Breaking Changes

None

@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: tree base: main PRs targeted against main branch labels Sep 16, 2025
@github-actions github-actions bot added the area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct label Sep 19, 2025
@github-actions github-actions bot added the public api change Changes to a public API label Sep 19, 2025
@github-actions github-actions bot added the area: runtime Runtime related issues label Sep 23, 2025
@yann-achard-MS yann-achard-MS marked this pull request as ready for review September 23, 2025 01:22
@yann-achard-MS yann-achard-MS requested a review from a team as a code owner September 23, 2025 01:22
Copilot AI review requested due to automatic review settings September 23, 2025 01:22
@yann-achard-MS yann-achard-MS requested a review from a team as a code owner September 23, 2025 01:22
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces support for shared branches in the tree data structure. The feature allows clients to create multiple branches that are shared across all clients, enabling collaborative editing scenarios with branching workflows.

Key Changes:

  • Added new vSharedBranches format version (100) for supporting shared branches functionality
  • Extended ITreeAlpha interface with methods for creating and viewing shared branches
  • Enhanced id-compressor test utilities to support deterministic seeding for shared branch testing

Reviewed Changes

Copilot reviewed 75 out of 76 changed files in this pull request and generated no comments.

File Description
packages/runtime/id-compressor/src/test/idCompressorTestUtilities.ts Added seed parameter to createAlwaysFinalizedIdCompressor for deterministic ID generation
packages/framework/fluid-framework/api-report/fluid-framework.alpha.api.md Added shared branch methods to ITreeAlpha interface and new vSharedBranches format version
packages/dds/tree/src/test/utils.ts Enhanced test utilities with seed support and version filtering for encoding tests
Various snapshot files Added comprehensive test snapshots for the new vSharedBranches format
Comments suppressed due to low confidence (2)

packages/dds/tree/src/test/utils.ts:1

  • The casting of random.uuid4() to SessionId bypasses type safety. Consider using a helper function that validates the UUID format before casting, or use the existing createSessionId() function to ensure proper type safety and validation.
/*!

packages/dds/tree/src/test/utils.ts:1

  • Similar to the previous issue, this casting of random.uuid4() to SessionId bypasses type safety. Consider using a helper function or the existing createSessionId() function to maintain proper type validation.
/*!

@yann-achard-MS yann-achard-MS enabled auto-merge (squash) September 23, 2025 01:27
@github-actions
Copy link
Copy Markdown
Contributor

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output


> fluid-framework-docs-site@0.0.0 ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-docs-site@0.0.0 serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> fluid-framework-docs-site@0.0.0 check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

Crawling...

Stats:
  235713 links
    1720 destination URLs
    1953 URLs ignored
       0 warnings
       0 errors


@yann-achard-MS yann-achard-MS merged commit f8eee9f into microsoft:main Sep 23, 2025
37 checks passed
anthony-murphy-agent pushed a commit to anthony-murphy-agent/FluidFramework that referenced this pull request Jan 14, 2026
## Description

This PR allows clients to create multiple branches which are shared by
all clients.

This PR introduces new formats that are NOT meant to be used in
production.

## Breaking Changes

None

---------

Co-authored-by: Yann Achard <achardy@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: dds: tree area: dds Issues related to distributed data structures area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: runtime Runtime related issues base: main PRs targeted against main branch public api change Changes to a public API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants