FluidFramework/RELEASE_NOTES/2.0.0-internal.8.0.0.md

13 KiB

Fluid Framework v2.0.0-internal.8.0.0

aqueduct: Removed getDefaultObjectFromContainer, getObjectWithIdFromContainer and getObjectFromContainer

The getDefaultObjectFromContainer, getObjectWithIdFromContainer and getObjectFromContainer helper methods have been removed from @fluidframework/aqueduct. Please move all code usage to the new entryPoint pattern.

aqueduct: Removed IRootDataObjectFactory

The IRootDataObjectFactory interface has been removed. Please remove all usage of it.

aqueduct: Removed requestHandler utilities

The following requestHandler utilities have been removed:

  • makeModelRequestHandler
  • defaultFluidObjectRequestHandler
  • defaultRouteRequestHandler
  • mountableViewRequestHandler
  • createFluidObjectResponse
  • rootDataStoreRequestHandler
  • handleFromLegacyUri
  • RuntimeRequestHandlerBuilder

Please migrate all usage to the new entryPoint pattern.

See Removing-IFluidRouter.md for more details.

azure-client: Removed deprecated FluidStatic classes

Several FluidStatic classes were unnecessarily exposed and were deprecated in an earlier release. 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 removed classes are as follows:

container-definitions: Fix ISnapshotTreeWithBlobContents and mark internal

ISnapshotTreeWithBlobContents is an internal type that should not be used externally. Additionally, the type didn't match the usage, specifically in runtime-utils where an any cast was used to work around undefined blobContents. The type has been updated to reflect that blobContents can be undefined.

container-definitions: Removed request(...) and IFluidRouter from IContainer

The request(...) method and IFluidRouter property have been removed from IContainer. Please use the IContainer.getEntryPoint() method to get the container's entry point.

See Removing-IFluidRouter.md for more details.

container-runtime: Removed IPendingLocalState and IRuntime.notifyAttaching

The deprecated IPendingLocalState and IRuntime.notifyAttaching APIs are removed. There is no replacement as they are not longer used.

container-runtime: Removed request pattern from ContainerRuntime, IRuntime, and IContainerRuntimeBase

The request(...) method and IFluidRouter property have been removed from the following places:

  • ContainerRuntime
  • IRuntime
  • IContainerRuntimeBase

Please use the IRuntime.getEntryPoint() method to get the runtime's entry point.

See Removing-IFluidRouter.md for more details.

container-runtime: Removed ContainerRuntime.load(...)

The static method ContainerRuntime.load(...) has been removed. Please migrate all usage of this method to ContainerRuntime.loadRuntime(...).

container-runtime-definitions: Removed getRootDataStore

The getRootDataStore method has been removed from IContainerRuntime and ContainerRuntime. Please migrate all usage to the new getAliasedDataStoreEntryPoint method. This method returns the data store's entry point which is its IFluidHandle.

See Removing-IFluidRouter.md for more details.

container-runtime-definitions: Removed resolveHandle and IFluidHandleContext from ContainerRuntime interfaces

The IContainerRuntime.resolveHandle(...) method and the IContainerRuntimeBase.IFluidHandleContext property have been removed. Please remove all usage of these APIs.

See Removing-IFluidRouter.md for more details.

container-loader: Removed request(...) and IFluidRouter from ILoader and Loader

The request(...) method and IFluidRouter property have been removed from ILoader and Loader. Instead, after calling ILoader.resolve(...), call the getEntryPoint() method on the returned IContainer.

See Removing-IFluidRouter.md for more details.

container-loader: Removed requestResolvedObjectFromContainer

The helper function requestResolvedObjectFromContainer has been removed. Please remove all calls to it and instead use the new entryPoint pattern. See Removing-IFluidRouter.md for more details.

core-interfaces: Removed IFluidRouter and IProvideFluidRouter

The IFluidRouter and IProvideFluidRouter interfaces have been removed. Please migrate all usage to the new entryPoint pattern.

See Removing-IFluidRouter.md for more details.

datastore-definitions: Removed request and IFluidRouter from IFluidDataStoreRuntime

The request method and IFluidRouter property have been removed from IFluidDataStoreRuntime. Please migrate all usage to the IFluidDataStoreRuntime.entryPoint API.

See Removing-IFluidRouter.md for more details.

datastore-definitions: Jsonable and Serializable now require a generic parameter

The Jsonable and Serializable types from @fluidframework/datastore-definitions now require a generic parameter and if that type is any or unknown will return a new result JsonableTypeWith<> that more accurately represents the limitation of serialization.

Additional modifications:

  • Jsonable's TReplacement parameter default has also been changed from void to never, which now disallows void.
  • Unrecognized primitive types like symbol are now filtered to never instead of {}.
  • Recursive types with arrays ([]) are now supported.

Serializable is commonly used for DDS values and now requires more precision when using them. For example SharedMatrix (unqualified) has an any default that meant values were Serializable<any> (i.e. any), but now Serializable<any> is JsonableTypeWith<IFluidHandle> which may be problematic for reading or writing. Preferred correction is to specify the value type but casting through any may provide a quick fix.

datastore: Removed FluidDataStoreRuntime.load(...)

The static method FluidDataStoreRuntime.load(...) has been removed. Please migrate all usage of this method to FluidDataStoreRuntime constructor.

data-object-base: Removed IFluidRouter from DataObject interfaces and classes

The IFluidRouter property has been removed from a number of DataObject related classes:

  • PureDataObject
  • LazyLoadedDataObject
  • TestFluidObject

Please migrate to the new entryPoint pattern or use the relevant request method as necessary.

See Removing-IFluidRouter.md for more details.

local-driver: LocalDocumentStorageService class property type changes

The repositoryUrl property on the LocalDocumentStorageService class has changed from a property getter to a readonly field. While this is an API change, there should be no changes required on the consumer side since calling code should remain the same.

merge-tree: Remove IIntegerRange

This interface is deprecated and was not intended for public export.

merge-tree: Remove several APIs

Removed the following APIs:

  • Stack
  • clone
  • combine
  • createMap
  • extend
  • extendIfUndefined
  • matchProperties

This functionality is deprecated and was not intended for public export.

  • AzureAudience (use IAzureAudience instead)
  • TinyliciousAudience (use ITinyliciousAudience instead)
  • DOProviderContainerRuntimeFactory
  • FluidContainer
  • ServiceAudience

runtime-definitions: Removed request and IFluidRouter from IDataStore

The request method and IFluidRouter property have been removed from IDataStore. Please migrate all usage to the IDataStore.entryPoint API.

See Removing-IFluidRouter.md for more details.

runtime-definitions: Removed IFluidRouter from IFluidDataStoreChannel and FluidDataStoreRuntime

The IFluidRouter property has been removed from IFluidDataStoreChannel and FluidDataStoreRuntime. Please migrate all usage to the IFluidDataStoreChannel.entryPoint API.

See Removing-IFluidRouter.md for more details.

runtime-utils: Removed requestFluidObject

The requestFluidObject utility has been removed. Please migrate all usage of it to the new entryPoint pattern.

See Removing-IFluidRouter.md for more details.

sequence: Some function return types are now void instead of any

The return types of some functions have changed from any to void because the projects are now being compiled with the noImplicitAny TypeScript compilation option. This does not represent a logic change and only serves to make the typing of these functions more accurate.

sequence: Add experimental support for the obliterate operation

This change adds experimental support for obliterate, a form of remove that deletes concurrently inserted segments. To use, enable the mergeTreeEnableObliterate feature flag and call the new obliterateRange functions.

Note: this change may cause compilation errors for those attaching event listeners. As long as obliterate isn't used in current handlers, their current implementation is sound.

sequence: Removed Marker.hasSimpleType and made sequence operations return void

Marker.hasSimpleType was unused. Sequence operations now no longer return IMergeTree*Msg types. These types are redundant with the input.

sequence: Removed several public exports from merge-tree and sequence

The following APIs have been removed or marked internal in merge-tree and sequence. This functionality was never intended for public export.

  • BaseSegment.ack
  • Client
  • CollaborationWindow
  • compareNumbers
  • compareStrings
  • createAnnotateMarkerOp
  • createAnnotateRangeOp
  • createGroupOp
  • createInsertOp
  • createInsertSegmentOp
  • createRemoveRangeOp
  • IConsensusInfo
  • IConsensusValue
  • IMarkerModifiedAction
  • IMergeTreeTextHelper
  • LocalClientId
  • MergeTreeDeltaCallback
  • MergeTreeMaintenanceCallback
  • NonCollabClient
  • SegmentAccumulator
  • SegmentGroup
  • SegmentGroupCollection.enqueue
  • SegmentGroupCollection.dequeue
  • SegmentGroupCollection.pop
  • SortedSegmentSet
  • SortedSegmentSetItem
  • SortedSet
  • toRemovalInfo
  • TreeMaintenanceSequenceNumber
  • UniversalSequenceNumber
  • SharedSegmentSequence.submitSequenceMessage

sequence: Remove support for combining ops

In sequence, removed the following APIs:

  • the combiningOp argument from SharedSegmentSequence.annotateRange and SharedString.annotateMarker
  • the function SharedString.annotateMarkerNotifyConsensus

In merge-tree, removed the following APIs:

  • ICombiningOp
  • the combiningOp field from IMergeTreeAnnotateMsg
  • the op argument from BaseSegment.addProperties, PropertiesManager.addProperties, and ReferencePosition.addProperties
  • the enum variant PropertiesRollback.Rewrite.

This functionality was largely unused and had no test coverage.

sequence: Removed several APIs

The following APIs have been removed:

  • Client.getStackContext
  • SharedSegmentSequence.getStackContext
  • IntervalType.Nest
  • ReferenceType.NestBegin
  • ReferenceType.NestEnd
  • internedSpaces
  • RangeStackMap
  • refGetRangeLabels
  • refHasRangeLabel
  • refHasRangeLabels

This functionality is deprecated, has low test coverage, and is largely unused.

test-runtime-utils: MockDeltaManager class property type changes

The active and maxMessageSize properties on the MockDeltaManager class have changed from property getters to readonly fields. While this is an API change, there should be no changes required on the consumer side since calling code should remain the same.