microsoft / microsoft/FluidFramework
Deprecate minVersionForCollab and MinimumVersionForCollab in favor of oldestSupportedClient
@WillieHabi is already working on this.
Since Aug 13, 2026.
- Dominant language
- TypeScript
- Stars
- 4.9k
- Forks
- 586
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 146
Description
Deprecated API
The pre-rename names for the cross-client compatibility parameter:
minVersionForCollabonLoadContainerRuntimeParams(@fluidframework/container-runtime) —@legacy @betaminVersionForCollabonBaseContainerRuntimeFactoryProps(@fluidframework/aqueduct) —@legacy @betaminVersionForCollaborationoncreateTreeContainerRuntimeFactory(@fluidframework/fluid-static) —@legacy @beta- The
MinimumVersionForCollabtype (@fluidframework/runtime-definitions) —@public
Context
These are replaced by oldestSupportedClient with OldestSupportedClientVersion for runtime APIs in https://github.com/microsoft/FluidFramework/pull/27806. The deprecated public and beta names remain accepted so those renames are additive. The alpha driver APIs are replaced directly by OldestSupportedServiceClientVersion and ServiceOptions.oldestSupportedClient; indexed office-bohemia code does not use the removed alpha names.
The name is layer-neutral. The value is threaded through Runtime and DataStore layers and consumed by DDSes such as SharedTree for write-format and feature selection.
Approach
Consumers move to oldestSupportedClient, typed OldestSupportedClientVersion for runtime APIs or OldestSupportedServiceClientVersion for the minor-only service-client API.
Dependencies
https://github.com/microsoft/FluidFramework/pull/27806 introduces the replacement names, deprecates the public and beta old names, removes the superseded alpha driver names, migrates in-repo type references, updates service-client signatures, and adds the preferred createTreeContainerRuntimeFactory overload.
This is distinct from https://github.com/microsoft/FluidFramework/issues/27180, which makes the parameter required but does not remove either name.
https://github.com/microsoft/FluidFramework/pull/27896 changes which internal parent-context interface ContainerRuntime implements. Phase 2 should account for that final interface shape.
Compatibility Concerns
The deprecated public and beta names need to coexist while Runtime → DataStore → DDS and service-client internals migrate across package and API layers. Partners consume the beta properties directly, so their removal needs the standard beta-break lead time.
Persisted document-schema fields and telemetry property names are unaffected. IDocumentSchemaInfo.minVersionForCollab remains the on-disk name, and telemetry keeps emitting minVersionForCollab so existing queries and dashboards continue to work.
Phases
-
Preferred customer-facing APIs — #27806
- Add and deprecate names on
LoadContainerRuntimeParamsandBaseContainerRuntimeFactoryProps. - Add the
createTreeContainerRuntimeFactory({ oldestSupportedClient })overload and deprecateminVersionForCollaboration. - Update Azure, ODSP, and Tinylicious positional parameters.
- Deprecate
MinimumVersionForCollaband migrate in-repo type references. - Add
OldestSupportedServiceClientVersionandServiceOptions.oldestSupportedClient, remove the superseded alpha names, and update local-driver.
- Add and deprecate names on
-
Cross-layer dual-property migration
- Add optional
oldestSupportedClientbesideminVersionForCollabonIFluidParentContext. - Add a required companion on
IFluidParentContextPrivateafter accounting for #27896. - Thread both names through
ContainerRuntime,FluidDataStoreContext,IFluidDataStoreRuntimeInternalConfig, andSharedKernelArgsso old and new consumers can migrate independently. - Update datastore/test-runtime/test-utils properties and mocks.
- Migrate
ContainerRuntimeLoaderParamsand service-client internal callbacks/private helpers.
- Add optional
-
Narrower service internals
- Rename
createDOProviderContainerRuntimeFactoryand related internal fluid-static parameters. - Migrate service-client internal callbacks and private helpers that still use
minVersionForCollaboration.
- Rename
-
Tree-specific write-format APIs
- Rename
CodecWriteOptions.minVersionForCollaband other Tree-local properties. - Regenerate codec-format snapshots.
- Rename
-
Helper and test infrastructure names
- Rename
runtime-utilshelper exports and fluid-static defaults such asdefaultRuntimeOptionsForMinVersion. - Rename test-version-utils and compatibility helper parameters.
- Select a distinct name for
lowestMinVersionForCollab, which represents the floor on allowed values rather than the oldest supported client.
- Rename
-
Remove deprecated beta properties
- Remove
minVersionForCollabandminVersionForCollaborationin the 3.10 beta-break window. - CompatibilityMode-specific names disappear with CompatibilityMode cleanup and are not renamed.
- Remove
-
Remove the public alias
- Remove
MinimumVersionForCollabin 4.0.
- Remove
Expected Timeline
The beta properties are deprecated in 2.116.0 and removed in 3.10.0. The @public type is deprecated in 2.116.0 and removed in 4.0.0.
Open Questions
- Final name for
lowestMinVersionForCollab. - Whether phases 2 through 5 land as one change or several.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.