FluidFramework/RELEASE_NOTES/2.0.0-internal.7.1.0.md

3.7 KiB

Fluid Framework v2.0.0-internal.7.1.0

Move location-redirection-utils APIs to container-loader

Moves the 2 package exports of location-redirection-utils to the container-loader package.

Exports from location-redirection-utils are now deprecated, and the package itself will be removed in an upcoming release.

container-runtime: Summarizer.create(...) has been deprecated

The public static method Summarizer.create(...) has been deprecated and will be removed in a future major release. Creating a summarizer is not a publicly supported API. Please remove all usage of this method.

merge-tree: Deprecate IntervalType.Nest, internedSpaces, RangeStackMap, refGetRangeLabels, refHasRangeLabel, and refHasRangeLabels

The following classes and functions have been deprecated. The functionality has poor test coverage and is largely unused. They will be removed in a future release.

  • IntervalType.Nest
  • internedSpaces
  • RangeStackMap
  • refGetRangeLabels
  • refHasRangeLabel
  • refHasRangeLabels

merge-tree: Deprecate Stack, clone, combine, createMap, extend, extendIfUndefined, and matchProperties

The following classes and functions have been deprecated. They were not intended for public export and will be removed in a future release.

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

sequence: IntervalCollection.add's intervalType is now deprecated

The intervalType parameter is being removed from IntervalCollection.add. The new usage requires calling add with an object containing each of the desired parameters. Example: add({start: 0, end: 1, props: { a: b }})

The signature of IntervalCollection.change is also being updated to an object containing the desired parameters, instead of the existing list of parameters. In addition, changeProperties will be removed, so in order to change the properties of an interval, the change method (with the updated signature) will be used. The id of the interval is not included in the object passed to change, but is instead passed as the first parameter to change.

Examples:

  • Change interval endpoints: change(intervalId, { start: 3, end: 4 })
  • Change interval properties: change(intervalId, { props: { a: c } })

tree2: Forest summaries now include detached fields

Forest summaries now include detached fields. This breaks existing documents.

tree2: Rename "Value" Multiplicity and FieldKind

Multiplicity.Value has been renamed to Multiplicity.Single and FieldKinds.value has been renamed to FieldKinds.required.

tree2: SharedTreeFactory type changed

The 'type' field for @fluid-experimental/tree2's exported IChannelFactorys has been changed to not overlap with @fluid-experimental/tree's channel type. This breaks existing tree2 documents: upon loading them, an error with message "Channel Factory SharedTree not registered" will be thrown. If using the typed-tree API, the message will instead be "Channel Factory SharedTree: not registered" where is the subtype used by the application when constructing their TypedTreeFactory.

Applications which want to support such documents could add an explicit registry entry to their ISharedObjectRegistry which maps the type shown in the error message to a factory producing @fluid-experimental/tree2.

tree2: Allow ImplicitFieldSchema for non-recursive schema building

SchemaBuilder now accepts ImplicitFieldSchema in many places which used to require FieldSchema. This allows Required fields to be implicitly specified from just their AllowedTypes. Additionally in these cases the AllowedTypes can be implicitly specified from a single Any or TreeSchema.