Skip to content

Change signature of optional/undefined members introduced when exposing minVersionForCollab to lower Fluid layers #25323

@TommyBrosman

Description

@TommyBrosman

Broken API or pattern

This is a follow-up for https://github.com/microsoft/FluidFramework/pull/25130/files which introduced minVersionForCollab in lower layers of the Fluid stack. A number of fields and functions were introduced as optional or returning potentially undefined values to preserve layer compatibility. Since some of these APIs are non-internal (e.g., IContainerRuntimeBase, which is currently legacy + beta). Because of this, we are following the breaking API change contract rather than the layer compatibility contract.

Fields/functions that need to change:

  • ContainerRuntime.getMinVersionForCollab() and IContainerRuntimeBase.getMinVersionForCollab() need to be non-optional and not return a potentially undefined value
  • FluidDataStoreContext.getMinVersionForCollab() and IFluidDataStoreContext.getMinVersionForCollab() need to be non-optional
  • IFluidDataStoreRuntimeInternalConfig.minVersionForCollab and FluidDataStoreRuntime.minVersionForCollab should be changed not accept undefined
  • KernelArgs.minVersionForCollab should be changed not accept undefined

Preparation References

It is unlikely this API will be consumed outside of Fluid internal source. Communicating the new semantics of these fields/functions as part of the changelog should be sufficient.

Packages

  • @fluidframework/container-runtime
  • @fluidframework/runtime-definitions
  • @fluidframework/datastore-definitions
  • @fluidframework/datastore
  • @fluidframework/shared-object-base

Expected Timeline

2.80.0

Reminders

Metadata

Metadata

Assignees

Labels

breaking changeThis PR or issue would introduce a breaking change

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions