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:
IResolvedUrl equivalent to IFluidResolvedUrl
In @fluidframework/driver-definitions IResolvedUrlBase and IWebResolvedUrl have now been removed.
This makes IResolvedUrl and IFluidResolvedUrl equivalent. Since all ResolvedUrls are now FluidResolvedUrls we no longer need to differentiate them. In @fluidframework/driver-utils isFluidResolvedUrl and ensureFluidResolvedUrl have been removed due to this.
@fluidframework/garbage-collector removed
The @fluidframework/garbage-collector
package was deprecated in 2.0.0-internal.4.1.0. It has now been removed with the following functions, interfaces, and types in it.
runGarbageCollection
trimLeadingAndTrailingSlashes
trimLeadingSlashes
trimTrailingSlashes
cloneGCData
unpackChildNodesGCDetails
unpackChildNodesUsedRoutes
removeRouteFromAllNodes
concatGarbageCollectionStates
concatGarbageCollectionData
GCDataBuilder
getGCDataFromSnapshot
IGCResult
GC interfaces removed from runtime-definitions
The following interfaces available in @fluidframework/runtime-definitions
were deprecated in 2.0.0-internal.4.1.0 and are now removed.
IGarbageCollectionNodeData
IGarbageCollectionState
IGarbageCollectionSnapshotData
IGarbageCollectionSummaryDetailsLegacy
ensureSynchronizedWithTimeout removed from LoaderContainerTracker
LoaderContainerTracker.ensureSynchronizedWithTimeout
has been removed as it is equivalent to LoaderContainerTracker.ensureSynchronized
. The timeoutDuration
parameter from TestObjectProvider.ensureSynchronized
will also be removed. Configure the timeout for the test instead.
Container-loader deprecation removals
The following types in the @fluidframework/container-loader package are not used by, or necessary to use our public api, so have been removed from export in this release:
- IContainerLoadOptions
- IContainerConfig
- IPendingContainerState
- ISerializableBlobContents
Closing Container no longer disposes
Calling IContainer.close(...)
will no longer dispose the container runtime, document service, or document storage service.
If the container is not expected to be used after the close(...)
call, replace it instead with a IContainer.dispose(...)
call (this should be the most common case). Using IContainer.dispose(...)
will no longer switch the container to "readonly" mode and relevant code should instead listen to the Container's "disposed" event.
If you intend to pass your own critical error to the container, use IContainer.close(...)
. Once you are done using the container, call IContainer.dispose(...)
.
Please see the Closure section of Loader README.md for more details.
IContainer.dispose
is now required
IContainer.dispose
is now a required method. This method should dispose any resources and switch the container to a permanently disconnected state.
Please see the Closure section of Loader README.md for more details.
ISummarizerRuntime on/off op required
The on("op")
and off("op")
methods on ISummarizerRuntime
are now required. These listener methods are needed to accurately run summary heuristics.
Driver param removed from appendToMergeTreeDeltaRevertibles
The first parameter, driver, of the function appendToMergeTreeDeltaRevertibles has been removed. Additionally, the interface MergeTreeRevertibleDriver has been simplified, and no longer requires:
- createLocalReferencePosition
- localReferencePositionToPosition
- getPosition
- getContainingSegment
PureDataObject.getFluidObjectFromDirectory removed
PureDataObject.getFluidObjectFromDirectory
was deprecated in a previous release and has been removed.
IProvideContainerRuntime and IContainerRuntime member removed
IProvideContainerRuntime
and its IContainerRuntime
member were deprecated in a previous release and have been removed. This applies to the ContainerRuntime
class as well.
IntervalCollection removed
The exports deprecated in IntervalCollection public export deprecated have been removed.
Internal ITelemetryLogger interface upgraded to ITelemetryLoggerExt
ITelemetryLoggerExt
is a replacement for ITelemetryLogger
, which adds additional types that can be logged as property values.
This interface is not expected to be used outside the codebase, and all Logger implementations already use the new interface.
In this release, the new type is used throughout the codebase to allow richer instrumentation.
Deprecations
IFluidResolvedUrl Deprecated
IFluidResolvedUrl is now deprecated, all usages should move to IResolvedUrl instead.