Skip to content

Promote minimal SharedTree branch APIs to beta#25744

Merged
Abe27342 merged 3 commits intomicrosoft:mainfrom
Abe27342:promote-branch-apis
Oct 24, 2025
Merged

Promote minimal SharedTree branch APIs to beta#25744
Abe27342 merged 3 commits intomicrosoft:mainfrom
Abe27342:promote-branch-apis

Conversation

@Abe27342
Copy link
Contributor

Description

This PR promotes the minimal set of APIs necessary to enable local branching flows in SharedTree.

@Abe27342 Abe27342 requested review from a team as code owners October 23, 2025 23:24
Copilot AI review requested due to automatic review settings October 23, 2025 23:24
@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: tree public api change Changes to a public API labels Oct 23, 2025
Copy link
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 promotes the minimal set of SharedTree branch APIs from alpha to beta stability, enabling local branching workflows while maintaining backward compatibility through interface extension.

Key Changes:

  • Split TreeBranch interface into beta (minimal) and alpha (extended) versions
  • Created TreeViewBeta interface to expose beta-level branching capabilities
  • Added asBeta() helper function for beta API access

Reviewed Changes

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

Show a summary per file
File Description
packages/dds/tree/src/simple-tree/api/tree.ts Refactored TreeBranch into beta base interface and TreeBranchAlpha extension; created TreeViewBeta interface
packages/dds/tree/src/simple-tree/index.ts Exported new TreeViewBeta and TreeBranchAlpha types
packages/dds/tree/src/simple-tree/api/index.ts Re-exported new beta types
packages/dds/tree/src/shared-tree/treeAlpha.ts Updated TreeAlpha.branch() return type to TreeBranchAlpha
packages/dds/tree/src/shared-tree/schematizingTreeView.ts Updated method signatures to use TreeBranchAlpha
packages/dds/tree/src/api.ts Added asBeta() function for beta API access
packages/dds/tree/src/index.ts Exported TreeViewBeta, TreeBranchAlpha, and asBeta
packages/dds/tree/api-report/*.api.md Updated API surface files with new beta exports

@github-actions github-actions bot added the base: main PRs targeted against main branch label Oct 23, 2025
@Abe27342
Copy link
Contributor Author

I have explicitly avoided promoting all of the alpha portions of TreeViewAlpha / TreeBranch into beta here, as some of these APIs may need more stabilization. I think the remaining set is still somewhat usable.

}

/**
* A collection of functionality associated with a (version-control-style) branch of a SharedTree.
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: I think elsewhere we have generally documented more restricted API variants more like:

/**
 * {@link TreeBranch} with alpha-level APIs
 */

Alternatively, if the docs are identical, we could leverage an {@inheritDoc} comment.

Either way, seems like we should avoid duplicating docs when possible.

Copy link
Contributor

@Josmithr Josmithr left a comment

Choose a reason for hiding this comment

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

Left one nitpick, otherwise looks good to me!

Though it might be worth adding a very quick changeset noting which APIs were promoted, and that they can now be imported via /beta (for completeness).

@Abe27342 Abe27342 requested a review from a team as a code owner October 24, 2025 19:58
@github-actions github-actions bot added area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct changeset-present labels Oct 24, 2025
@github-actions
Copy link
Contributor

🔗 Found some broken links! 💔

Run a link check locally to find them. See
https://github.com/microsoft/FluidFramework/wiki/Checking-for-broken-links-in-the-documentation for more information.

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

 ELIFECYCLE  Command failed with exit code 1.

@Abe27342 Abe27342 merged commit 32cc2c7 into microsoft:main Oct 24, 2025
38 checks passed
@Abe27342 Abe27342 deleted the promote-branch-apis branch October 24, 2025 22:52
anthony-murphy-agent pushed a commit to anthony-murphy-agent/FluidFramework that referenced this pull request Jan 14, 2026
## Description

This PR promotes the minimal set of APIs necessary to enable local
branching flows in SharedTree.

---------

Co-authored-by: Abram Sanderson <absander@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 base: main PRs targeted against main branch changeset-present public api change Changes to a public API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants