container-runtime: (GC) Tombstoned objects will fail to load by default
Previously, Tombstoned objects would only trigger informational logs by default, with an option via config to also cause errors to be thrown on load. Now, failure to load is the default with an option to disable it if necessary. This reflects the purpose of the Tombstone stage which is to mimic the user experience of objects being deleted.
container-runtime/runtime-definitions: IdCompressor
and related types deprecated
IdCompressor
and related types from the @fluidframework/container-runtime and @fluidframework/runtime-definitions packages have been deprecated. They can now be found in a new package, @fluidframework/id-compressor.
The IdCompressor
class is deprecated even in the new package. Consumers should use the interfaces, IIdCompressor
and IIdCompressorCore
, in conjunction with the factory function createIdCompressor
instead.
telemetry-utils: Deprecate ConfigTypes and IConfigProviderBase
The types ConfigTypes
and IConfigProviderBase
have been deprecated in the @fluidframework/telemetry-utils package. The types can now be found in the @fluidframework/core-interfaces package. Please replace any uses with the types from @fluidframework/core-interfaces.
telemetry-utils: Deprecated logIfFalse
This functionality was not intended for export and will be removed in a future release. No replacement API is offered because the logic is trivial to reproduce as needed.
sequence: Deprecated findOverlappingIntervals API
The findOverlappingIntervals
API from IntervalCollection
has been deprecated. This functionality is moved to the OverlappingIntervalsIndex
. Users should independently attach the index to the collection and utilize the API accordingly, for instance:
const overlappingIntervalsIndex = createOverlappingIntervalsIndex(sharedString);
collection.attachIndex(overlappingIntervalsIndex);
const result = overlappingIntervalsIndex.findOverlappingIntervals(start, end);
sequence: Deprecated previousInterval and nextInterval APIs
The previousInterval
and nextInterval
APIs from IntervalCollection
have been deprecated. These functions are moved to the EndpointIndex
. Users should independently attach the index to the collection and utilize the API accordingly, for instance:
const endpointIndex = createEndpointIndex(sharedString);
collection.attachIndex(endpointIndex);
const result1 = endpointIndex.previousInterval(pos);
const result2 = endpointIndex.nextInterval(pos);
sequence: Deprecated ICombiningOp, PropertiesRollback.Rewrite, and SharedString.annotateMarkerNotifyConsensus
The ICombiningOp
and its usage in various APIs has been deprecated. APIs affected include SharedSegmentSequence.annotateRange
and SharedString.annotateMarker
. SharedString.annotateMarkerNotifyConsensus
has also been deprecated, because it is related to combining ops. This functionality had no test coverage and was largely unused.
sequence: change
and changeProperties
are now a single method
Instead of having two separate methods to change the endpoints of an interval and the properties, they have been combined into a single method that will change the endpoints, properties, or both, depending on the arguments passed in. The signature of this combined method is now updated as well.
The new way to use the change method is to call it with an interval id as the first parameter and an object containing the desired portions of the interval to update as the second parameter. For the object parameter, the endpoints
field should be an object containing the new start
and end
values for the interval, and the properties
field should be an object containing the new properties for the interval. Either the endpoints
field or the properties
field can be omitted, and if neither are present, change
will return undefined
.
The new usage of the change method is as follows:
Change interval endpoints: change(id, { endpoints: { start: 1, end: 4 } });
Change interval properties: change(id { props: { a: 1 } });
Change interval endpoints and properties: change(id, { endpoints: { start: 1, end: 4 }, props: { a: 1 } });
aqueduct: Deprecated IRootDataObjectFactory
The IRootDataObjectFactory
interface has been deprecated and will be removed in a future major release. Please remove all usage of it.
azure-client: Deprecated FluidStatic Classes
Several FluidStatic classes were unnecessarily exposed. They have been replaced with creation functions. This helps us keep implementations decoupled from usage which is easier to maintain and extend. It has very minimal impact on the public surface area of downstream packages. The deprecated classes are as follows:
AzureAudience
(useIAzureAudience
instead)TinyliciousAudience
(useITinyliciousAudience
instead)DOProviderContainerRuntimeFactory
FluidContainer
ServiceAudience