Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Branching APIs #22550

Merged
merged 13 commits into from
Sep 18, 2024
Merged

Branching APIs #22550

merged 13 commits into from
Sep 18, 2024

Conversation

noencke
Copy link
Contributor

@noencke noencke commented Sep 17, 2024

Description

This exposes the branching APIs on the SharedTree checkout objects as alpha APIs.

See the changeset for more details.

@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: tree area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct public api change Changes to a public API base: main PRs targeted against main branch labels Sep 17, 2024
@noencke noencke marked this pull request as ready for review September 18, 2024 20:15
@noencke noencke requested review from a team as code owners September 18, 2024 20:15
@noencke noencke requested a review from a team as a code owner September 18, 2024 20:49
Copy link
Contributor

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output


> [email protected] ci:linkcheck /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test ci:start 1313 linkcheck:full

1: starting server using command "npm run ci:start"
and when url "[ 'http://127.0.0.1:1313' ]" is responding with HTTP status code 200
running tests using command "npm run linkcheck:full"


> [email protected] ci:start
> http-server ./public --port 1313 --silent


> [email protected] linkcheck:full
> npm run linkcheck:fast -- --external


> [email protected] linkcheck:fast
> linkcheck http://localhost:1313 --skip-file skipped-urls.txt --external

Crawling...

Stats:
  406238 links
    3158 destination URLs
       2 URLs ignored
       0 warnings
       0 errors


@msfluid-bot
Copy link
Collaborator

@fluid-example/bundle-size-tests: +1.98 KB
Metric NameBaseline SizeCompare SizeSize Diff
aqueduct.js 460.43 KB 460.47 KB +35 Bytes
azureClient.js 559.03 KB 559.08 KB +49 Bytes
connectionState.js 680 Bytes 680 Bytes No change
containerRuntime.js 261.68 KB 261.69 KB +14 Bytes
fluidFramework.js 402.58 KB 403.47 KB +906 Bytes
loader.js 134.17 KB 134.19 KB +14 Bytes
map.js 42.43 KB 42.44 KB +7 Bytes
matrix.js 145.87 KB 145.88 KB +7 Bytes
odspClient.js 526.18 KB 526.23 KB +49 Bytes
odspDriver.js 97.8 KB 97.82 KB +21 Bytes
odspPrefetchSnapshot.js 42.76 KB 42.78 KB +14 Bytes
sharedString.js 162.83 KB 162.84 KB +7 Bytes
sharedTree.js 393.05 KB 393.92 KB +899 Bytes
Total Size 3.3 MB 3.3 MB +1.98 KB

Baseline commit: 1d9f4c9

Generated by 🚫 dangerJS against feda7f6

/**
* Get a {@link TreeBranch} from a {@link ITree}.
* @remarks The branch can be used for "version control"-style coordination of edits on the tree.
* @privateRemarks This function will be removed if/when the branching API becomes public,
Copy link
Contributor

Choose a reason for hiding this comment

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

Honestly, these private remarks probably want to be public (standard remarks). @privateRemarks don't end up in our API docs, and I think this information is potentially useful to end-users experimenting with this API.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't want to promise anything more than we need to regarding the future public API.

Copy link
Contributor

Choose a reason for hiding this comment

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

The point isn't to make promises about what the API will look like. It's to note to users that the current API shape is not what we expect it to look like long term.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sorry - I thought I had added a line that says "This API is subject to change...", and I did, but only on the second overload. Either way though, are we expected to write a disclaimer along with every alpha API we expose? I don't think it's a bad idea, but we should probably have something standard if so.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it depends on the kind of experimental API. In some cases, we'll be adding an API that we actually potentially expect to promote more or less as-is. In other cases, we're forced to do things like this (adding a free function, rather than a method on some existing type) to avoid breaking changes. In the latter case, I think it's helpful to note that API is exposed in a less-than-ideal format to avoid breaking changes, so users are prepared for the shape to change when it gets promoted.

I don't think it's critical, but I think it helps set some useful expectations for users and for other devs on the team.

@noencke noencke merged commit 8f4587c into microsoft:main Sep 18, 2024
41 checks passed
@noencke noencke deleted the branching-apis branch September 18, 2024 23:35
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