-
Notifications
You must be signed in to change notification settings - Fork 559
Shared Tree: Use minVersionForCollab instead of oldestCompatibleClient to specify min client version #25402
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
Conversation
- Converted FluidClientVersion to a const object with MinimumVersionForCollab values. - Blocked out `selectFeatureFlags` in treeFactory.ts.
9948726 to
633221e
Compare
- Removed FluidClientVersion.EnableUnstableFeatures since we cannot robustly support it with MinVersionForCollab. The fuzz test code that used this value now passes pkgVersion directly. - Made FluidClientVersion actually immutable and correctly typed.
There was a problem hiding this 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 replaces FluidClientVersion with MinimumVersionForCollab in APIs and codec code to better align with runtime versioning standards. The change also converts FluidClientVersion from an enum to a const object containing MinimumVersionForCollab values.
Key changes:
- Updated API signatures to use
MinimumVersionForCollabinstead ofFluidClientVersion - Converted
FluidClientVersionfrom enum to const object with version string values - Updated test code to use package version instead of unstable feature flags
Reviewed Changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| packages/framework/fluid-framework/api-report/fluid-framework.alpha.api.md | Updates API report to reflect type changes from FluidClientVersion to MinimumVersionForCollab |
| packages/dds/tree/src/treeFactory.ts | Adds MinimumVersionForCollab import and selectFeatureFlags function |
| packages/dds/tree/src/test/shared-tree/fuzz/baseModel.ts | Updates test models to use package version instead of EnableUnstableFeatures |
| packages/dds/tree/src/test/codec/versioned/codec.spec.ts | Updates test code to use string versions and semver comparison |
| packages/dds/tree/src/simple-tree/api/storedSchema.ts | Updates extractPersistedSchema function signature |
| packages/dds/tree/src/feature-libraries/schema-index/codec.ts | Updates clientVersionToSchemaVersion function signature |
| packages/dds/tree/src/feature-libraries/chunked-forest/codec/codecs.ts | Updates fluidVersionToFieldBatchCodecWriteVersion function signature |
| packages/dds/tree/src/codec/versioned/codec.ts | Updates ClientVersionDispatchingCodecBuilder to use MinimumVersionForCollab |
| packages/dds/tree/src/codec/codec.ts | Converts FluidClientVersion from enum to const object and updates related types |
| packages/dds/tree/package.json | Adds semver-ts dependency |
| packages/dds/tree/api-report/tree.alpha.api.md | Updates tree API report to reflect type changes |
| .changeset/warm-windows-cross.md | Documents the breaking change |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Co-authored-by: Alex Villarreal <[email protected]>
- minVersionForCollab is always used as the oldestCompatibleClient version with the exception of tests. - SharedTreeOptions no longer allows setting oldestCompatibleClient.
Co-authored-by: Craig Macomber (Microsoft) <[email protected]>
Co-authored-by: Craig Macomber (Microsoft) <[email protected]>
Co-authored-by: Craig Macomber (Microsoft) <[email protected]>
…eOptions. - Renamed all usages of oldestClientVersion to minVersionForCollab for consistency across APIs.
alexvy86
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving for docs. I had a quick look at the rest of the change and made sense to me but probably get someone else to also review.
Co-authored-by: Craig Macomber (Microsoft) <[email protected]>
|
🔗 Found some broken links! 💔 Run a link check locally to find them. See linkcheck output |
Description
This change replaces
SharedTreeOptions.oldestCompatibleClientwithminVersionForCollab. Additionally, Shared Tree will now use theminVersionForCollabspecified at the ContainerRuntime level whenminVersionForCollabis not specified at the Shared Tree level.Changes APIs and codec code to use MinimumVersionForCollab in place of FluidClientVersion. Also changes FluidClientVersion to a const object that contains MinimumVersionForCollab values.
Breaking Changes
This change breaks the following alpha APIs:
SharedTreeOptions:oldestCompatibleClienthas been replaced withminVersionForCollab. See changeset notes on how to specify the minimum compatible version.CodecWriteOptions.oldestCompatibleClient(type change)makeDetachedFieldIndexCodec(parameter type change)TreeAlpha.exportCompressed(parameter type change)extractPersistedSchema(parameter type change)Reviewer Guidance
Todo