github microsoft/FluidFramework client_v2.0.0-internal.4.0.0
Fluid Framework v2.0.0-internal.4.0.0

latest releases: eslint-plugin-fluid_v0.1.3, eslint-config-fluid_v5.5.1, client_v2.5.0...
20 months ago

This is a major release that includes breaking changes in addition to deprecations that will take effect in a future major release.

💥 Breaking changes

This release contains the following breaking changes:

Container and RelativeLoader no longer exported

Container and RelativeLoader are no longer exported. All Container usages should have previously moved to IContainer. RelativeLoader is an internal implementation which should not be exposed or used directly.

Remove ensureContainerConnected() in @fluidframework/test-utils

This function was deprecated in a previous release and has now been removed.
Use waitForContainerConnection() from the same package instead.
See the note about breaking
changes in that function in this release.

New default parameter values for waitForContainerConnection() in @fluidframework/test-utils

The default value for the failOnContainerClose parameter has changed from false to true for function
waitForContainerConnection() exported by @fluidframework/test-utils.

This is overall a safer default because it ensures that unexpected errors which cause the Container to close are surfaced
immediately, instead of potentially being hidden by a timeout.

Most use cases should prefer true; explicit passing of false should only be necessary when the caller expects the
Container to connect or close for some reason.

Some test packages no longer published

These packages were previously published under the @fluidframework scope:

  • @fluidframework/test-drivers
  • @fluidframework/test-pairwise-generator
  • @fluidframework/test-version-utils
  • @fluidframework/test-loader-utils

These have been moved to the @fluid-internal scope and are no longer published.

IFluidHTMLView, ReactViewAdapter, and HTMLViewAdapter removed

IFluidHTMLView, ReactViewAdapter, and HTMLViewAdapter were deprecated in 2.0.0-internal.3.2.0, and are now removed.

IFluidTokenProvider removed

The IFluidTokenProvider interface was deprecated in 2.0.0-internal.3.2.0, and is now removed.

Summarizer node and related items removed

The following functions, interfaces, and types currently available in @fluidframework/runtime-utils were deprecated in 2.0.0-internal.3.0.0 and are now removed.

  • createRootSummarizerNode
  • createRootSummarizerNodeWithGC
  • IFetchSnapshotResult
  • IRootSummarizerNode
  • IRootSummarizerNodeWithGC
  • ISummarizerNodeRootContract
  • RefreshSummaryResult

web-code-loader and ICodeAllowList removed

The @fluidframework/web-code-loader and the ICodeAllowList were deprecated in 2.0.0-internal.3.2.0, and are now removed.

Container and IContainer no longer raise events when a new listener is registered

Container and IContainer had previously raised the connected, disconnected, dirty, and saved events when a new listener was registered and the corresponding state was true. This behavior has been removed. To avoid issues, add checks to the state of the container before registering listeners.

	// Ensure client is connected
+	if (container.connectionState !== ConnectionState.Connected) {
		await new Promise<void>((resolve) => {
			container.once("connected", resolve);
		});
+   }

Remove deprecated PendingStateManager interfaces

The following interfaces used by the PendingStateManager are no longer exported:

  • IPendingMessage
  • IPendingFlush
  • IPendingState
  • IPendingLocalState

Aqueduct members removed

ContainerServices in @fluidframework/aqueduct and waitForAttach() was deprecated in 2.0.0-internal.3.0.0 and has now been removed.

driver-utils members removed

The following members of the @fluidframework/driver-utils package were deprecated in 2.0.0-internal.3.0.0 or earlier, and are now removed:

  • waitForConnectedState
  • MapWithExpiration
  • configurableUrlResolver
  • MultiUrlResolver
  • MultiDocumentServiceFactory
  • BlobCacheStorageService
  • EmptyDocumentDeltaStorageService
  • convertSnapshotAndBlobsToSummaryTree
  • ISummaryTreeAssemblerProps
  • SummaryTreeAssembler
  • BlobAggregationStorage
  • SnapshotExtractor
  • isUnpackedRuntimeMessage
  • IAnyDriverError

Remove IConnectableRuntime.deltaManager

Note: IConnectableRuntime is only to be implemented internally, so removing this should not be impactful.

IDocumentServiceFactory.protocolName removed

IDocumentServiceFactory.protocolName was deprecated in 2.0.0-internal.3.0.0 and has now been removed.

Changes to Summarizer's public API

The following interfaces and exports in @fluidframework/container-runtime deprecated since 0.14.0
have been removed and have no replacement:

  • IProvideSummarizer interface
  • ISummarizer const (note: the ISummarizer interface still exists and is used)

Additionally, the ISummarizer interface no longer extends IFluidLoadable nor Partial<IProvideSummarizer>.
This means it no longer has readonly properties IFluidLoadable and handle.

Deprecations

  • bindToContext deprecated in IFluidDataStoreContext
  • getBaseGCDetails deprecated in IFluidDataStoreContext and CreateChildSummarizerNodeFn

bindToContext deprecated in IFluidDataStoreContext

bindToContext in IFluidDataStoreContext was deprecated in 2.0.0-internal.2.0.0. This is a heads up that it will be removed in 2.0.0-internal.5.0.0. Its usage in FluidDataStoreRuntime was removed in this release.

getBaseGCDetails deprecated in IFluidDataStoreContext and CreateChildSummarizerNodeFn

getBaseGCDetails() has been deprecated in IFluidDataStoreContext and CreateChildSummarizerNodeFn. The functionality to update the base GC details of nodes has been moved to summarizer nodes. These will be removed in 2.0.0-internal.5.0.0.

Don't miss a new FluidFramework release

NewReleases is sending notifications on new releases.