diff --git a/.changeset/brave-hounds-say.md b/.changeset/brave-hounds-say.md new file mode 100644 index 000000000000..46b164408305 --- /dev/null +++ b/.changeset/brave-hounds-say.md @@ -0,0 +1,85 @@ +--- +"@fluid-experimental/attributable-map": minor +"@fluid-experimental/attributor": minor +"@fluidframework/azure-client": minor +"@fluidframework/azure-service-utils": minor +"@fluidframework/cell": minor +"@fluidframework/container-definitions": minor +"@fluidframework/container-loader": minor +"@fluidframework/container-runtime": minor +"@fluidframework/container-runtime-definitions": minor +"@fluidframework/counter": minor +"@fluidframework/datastore": minor +"@fluidframework/datastore-definitions": minor +"@fluidframework/debugger": minor +"@fluidframework/driver-base": minor +"@fluidframework/driver-definitions": minor +"@fluidframework/driver-utils": minor +"@fluid-tools/fetch-tool": minor +"@fluidframework/file-driver": minor +"@fluidframework/fluid-static": minor +"@fluidframework/ink": minor +"@fluid-experimental/last-edited": minor +"@fluidframework/local-driver": minor +"@fluidframework/map": minor +"@fluidframework/matrix": minor +"@fluidframework/merge-tree": minor +"@fluid-experimental/odsp-client": minor +"@fluidframework/odsp-driver": minor +"@fluidframework/odsp-driver-definitions": minor +"@fluid-experimental/oldest-client-observer": minor +"@fluidframework/ordered-collection": minor +"@fluid-experimental/ot": minor +"@fluid-experimental/pact-map": minor +"@fluid-experimental/property-dds": minor +"@fluidframework/register-collection": minor +"@fluidframework/replay-driver": minor +"@fluidframework/routerlicious-driver": minor +"@fluidframework/routerlicious-urlresolver": minor +"@fluidframework/runtime-definitions": minor +"@fluidframework/runtime-utils": minor +"@fluidframework/sequence": minor +"@fluidframework/shared-object-base": minor +"@fluidframework/shared-summary-block": minor +"@fluid-experimental/sharejs-json1": minor +"@fluidframework/task-manager": minor +"@fluidframework/telemetry-utils": minor +"@fluidframework/test-driver-definitions": minor +"@fluid-private/test-drivers": minor +"@fluid-private/test-end-to-end-tests": minor +"@fluid-private/test-loader-utils": minor +"@fluidframework/test-runtime-utils": minor +"@fluidframework/test-utils": minor +"@fluid-private/test-version-utils": minor +"@fluidframework/tinylicious-client": minor +"@fluidframework/tinylicious-driver": minor +"@fluidframework/tool-utils": minor +"@fluid-experimental/tree": minor +"@fluidframework/tree": minor +"@fluid-tools/webpack-fluid-loader": minor +--- + +Updated server dependencies + +The following Fluid server dependencies have been updated to the latest version, 3.0.0. [See the full changelog.](https://github.com/microsoft/FluidFramework/releases/tag/server_v3.0.0) + +- @fluidframework/gitresources +- @fluidframework/server-kafka-orderer +- @fluidframework/server-lambdas +- @fluidframework/server-lambdas-driver +- @fluidframework/server-local-server +- @fluidframework/server-memory-orderer +- @fluidframework/protocol-base +- @fluidframework/server-routerlicious +- @fluidframework/server-routerlicious-base +- @fluidframework/server-services +- @fluidframework/server-services-client +- @fluidframework/server-services-core +- @fluidframework/server-services-ordering-kafkanode +- @fluidframework/server-services-ordering-rdkafka +- @fluidframework/server-services-ordering-zookeeper +- @fluidframework/server-services-shared +- @fluidframework/server-services-telemetry +- @fluidframework/server-services-utils +- @fluidframework/server-test-utils +- tinylicious diff --git a/.changeset/compressed-ghosts-shrink.md b/.changeset/compressed-ghosts-shrink.md index c7995c4bd09b..ec55d0de0f7d 100644 --- a/.changeset/compressed-ghosts-shrink.md +++ b/.changeset/compressed-ghosts-shrink.md @@ -2,6 +2,8 @@ "@fluidframework/id-compressor": minor --- +id-compressor: Cluster allocation strategy updated + This change adjusts the cluster allocation strategy for ghost sessions to exactly fill the cluster instead of needlessly allocating a large cluster. It will also not make a cluster at all if IDs are not allocated. This change adjusts a computation performed at a consensus point, and thus breaks any sessions collaborating across version numbers. diff --git a/.changeset/cute-walls-share.md b/.changeset/cute-walls-share.md index ab09f2b9c871..a78053cad24f 100644 --- a/.changeset/cute-walls-share.md +++ b/.changeset/cute-walls-share.md @@ -2,6 +2,8 @@ "@fluidframework/sequence": minor --- -Remove the signature of IntervalCollection.add that takes a type parameter +sequence: Remove the signature of IntervalCollection.add that takes a type parameter -The previously deprecated signature of IntervalCollection.add that takes an IntervalType as a parameter is now being removed. The new signature is called without the type parameter and takes the start, end, and properties parameters as a single object. +The previously deprecated signature of `IntervalCollection.add` that takes an `IntervalType` as a parameter is now being +removed. The new signature is called without the type parameter and takes the `start`, `end`, and `properties` +parameters as a single object. diff --git a/.changeset/frolicking-panthers-shrink.md b/.changeset/frolicking-panthers-shrink.md index 1e89ffba3961..d0a55f3a5ef5 100644 --- a/.changeset/frolicking-panthers-shrink.md +++ b/.changeset/frolicking-panthers-shrink.md @@ -1,5 +1,7 @@ --- -"@fluid-experimental/app-insights-logger": major +"@fluidframework/app-insights-logger": major --- -Renamed the package to `@fluidframework/app-insights-logger`. +@fluid-experimental/app-insights-logger package renamed + +The package is now `@fluidframework/app-insights-logger`. diff --git a/.changeset/smooth-planets-bathe.md b/.changeset/gentle-cougars-report.md similarity index 89% rename from .changeset/smooth-planets-bathe.md rename to .changeset/gentle-cougars-report.md index 294528f499e1..8bd63f2329d6 100644 --- a/.changeset/smooth-planets-bathe.md +++ b/.changeset/gentle-cougars-report.md @@ -12,7 +12,6 @@ "@fluidframework/datastore": minor "@fluidframework/datastore-definitions": minor "@fluidframework/debugger": minor -"@fluid-experimental/devtools-core": minor "@fluidframework/driver-base": minor "@fluidframework/driver-definitions": minor "@fluidframework/driver-utils": minor @@ -56,10 +55,11 @@ "@fluidframework/tinylicious-driver": minor "@fluidframework/tool-utils": minor "@fluid-experimental/tree": minor -"@fluid-experimental/tree2": minor +"@fluidframework/tree": minor "@fluid-tools/webpack-fluid-loader": minor --- -Bump Server Version +Updated @fluidframework/protocol-definitions -Bump protocol-definitions, server-services-client, server-local-server, protocol-base, server-services-core, server-test-utils, and gitresources package versions. +The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0. [See the full +changelog.](https://github.com/microsoft/FluidFramework/blob/main/common/lib/protocol-definitions/CHANGELOG.md#310) diff --git a/.changeset/many-pugs-exist.md b/.changeset/many-pugs-exist.md index ae656fa3d7b1..d368e6545276 100644 --- a/.changeset/many-pugs-exist.md +++ b/.changeset/many-pugs-exist.md @@ -3,6 +3,6 @@ "@fluidframework/sequence": minor --- -Remove the findTile API from mergeTree, Client, and SharedString +sequence: Remove the findTile API -The findTile API that was previously deprecated is now being removed. The new searchForMarker function provides similar functionality, and can be called with the start position, the client ID, the desired marker label to find, and the search direction, where a value of true indicates a forward search. +The `findTile` API that was previously deprecated is now being removed. The new `searchForMarker` function provides similar functionality, and can be called with the start position, the client ID, the desired marker label to find, and the search direction, where a value of `true` indicates a forward search. diff --git a/.changeset/olive-bags-smoke.md b/.changeset/olive-bags-smoke.md index f4102ce8d760..ab9ed8709432 100644 --- a/.changeset/olive-bags-smoke.md +++ b/.changeset/olive-bags-smoke.md @@ -4,4 +4,4 @@ Remove deprecated config types from telemetry-utils -The types ConfigTypes, and IConfigProviderBase were deprecated and are now removed from @fluidframework/telemetry-utils. They continue to exist in @fluidframework/core-interfaces. Please update your reference to use these types from @fluidframework/core-interfaces. +The types `ConfigTypes` and `IConfigProviderBase` were deprecated and are now removed from @fluidframework/telemetry-utils. They continue to exist in @fluidframework/core-interfaces. Please update your reference to use these types from @fluidframework/core-interfaces. diff --git a/.changeset/purple-astronauts-joke.md b/.changeset/purple-astronauts-joke.md index a268aeefe2df..c153472a28d0 100644 --- a/.changeset/purple-astronauts-joke.md +++ b/.changeset/purple-astronauts-joke.md @@ -1,5 +1,7 @@ --- -"@fluid-experimental/tree2": major +"@fluidframework/tree": major --- -Renamed the package to `@fluidframework/tree`. +@fluid-experimental/tree2 package renamed + +The package is now `@fluidframework/tree`. diff --git a/.changeset/quick-rocks-shine.md b/.changeset/quick-rocks-shine.md index 5d377f98e14d..9544ac0f5fe2 100644 --- a/.changeset/quick-rocks-shine.md +++ b/.changeset/quick-rocks-shine.md @@ -1,10 +1,9 @@ --- "@fluidframework/sequence": minor -"@fluid-private/test-end-to-end-tests": minor --- -Unify the change and changeProperties methods +sequence: Unify the change and changeProperties methods -Instead of having two separate APIs to modify an interval's endpoints and properties, combine both into the same method, IntervalCollection.change. Change is called with a string id value as the first parameter, and an object containing the start value, the end value, and/or the properties, depending on the desired modifications to the interval. Start and end must both be either defined or undefined. +Instead of having two separate APIs to modify an interval's endpoints and properties, combine both into the same method, IntervalCollection.change. Change is called with a string id value as the first parameter, and an object containing the start value, the end value, and/or the properties, depending on the desired modifications to the interval. Start and end must both be either defined or undefined. -The old functionality and signatures were deprecated in the internal.7.4.0 minor release. +The old functionality and signatures were deprecated in the internal.7.4.0 minor release. diff --git a/.changeset/rich-shirts-sink.md b/.changeset/rich-shirts-sink.md index 590eb2303e8e..f8a4186680ed 100644 --- a/.changeset/rich-shirts-sink.md +++ b/.changeset/rich-shirts-sink.md @@ -2,6 +2,6 @@ "@fluidframework/datastore-definitions": minor --- -Remove Unused IFluidDataStoreRegistry From IFluidDataStoreRuntime" +datastore-definitions: Remove unused IFluidDataStoreRegistry from IFluidDataStoreRuntime -IFluidDataStoreRuntime optionally extended IFluidDataStoreRegistry. This is never used, so is removed. As with all provider interfaces, consumers can continue to extend the interface if they have a use, and use FluidObject to inspect for it existing. +`IFluidDataStoreRuntime` optionally extended `IFluidDataStoreRegistry`. This is never used, so is removed. As with all provider interfaces, consumers can continue to extend the interface if they have a use, and use `FluidObject` to inspect for it existing. diff --git a/.changeset/short-years-itch.md b/.changeset/short-years-itch.md index e386c118107a..20f29cf4709c 100644 --- a/.changeset/short-years-itch.md +++ b/.changeset/short-years-itch.md @@ -4,7 +4,10 @@ "@fluidframework/test-runtime-utils": minor --- -Deprecate addedGCOutboundReference on IDeltaConnection, IFluidDataStoreContext, and MockFluidDataStoreRuntime +garbage collection: Deprecate addedGCOutboundReference + +The `addedGCOutboundReference` property on IDeltaConnection, IFluidDataStoreContext, and MockFluidDataStoreRuntime is +now deprecated. The responsibility of adding outbound references (for Garbage Collection tracking) is moving up to the ContainerRuntime. Previously, DDSes themselves were responsible to detect and report added outbound references (via a handle being stored), diff --git a/.changeset/tricky-jobs-marry.md b/.changeset/tricky-jobs-marry.md index b6b1edae3870..68b90536e61d 100644 --- a/.changeset/tricky-jobs-marry.md +++ b/.changeset/tricky-jobs-marry.md @@ -4,6 +4,6 @@ "@fluidframework/shared-object-base": minor --- -SharedObject processGCDataCore now takes IFluidSerializer rather than SummarySerializer +shared-object-base: SharedObject processGCDataCore now takes IFluidSerializer rather than SummarySerializer -This change should be a no-op for consumers, and SummarySerializer and IFluidSerializer expose the same consumer facing APIs. This change just makes our APIs more consistent by only using interfaces, rather than a mix of interfaces and concrete implementations. +This change should be a no-op for consumers, and `SummarySerializer` and `IFluidSerializer` expose the same consumer facing APIs. This change just makes our APIs more consistent by only using interfaces, rather than a mix of interfaces and concrete implementations. diff --git a/RELEASE_NOTES/2.0.0-rc.1.0.0.md b/RELEASE_NOTES/2.0.0-rc.1.0.0.md new file mode 100644 index 000000000000..7234dd2b37a7 --- /dev/null +++ b/RELEASE_NOTES/2.0.0-rc.1.0.0.md @@ -0,0 +1,94 @@ + + +# Fluid Framework 2.0 Beta 1 (v2.0.0-rc.1.0.0) + +Fluid Framework 2.0 contains two major updates: SharedTree DDS and support for SharePoint Embedded. + +We listened to your feedback and have made it even easier to use Fluid by introducing a new programming model based on the new SharedTree DDS. Now you can specify the data model schema for your app, and we'll represent it with a SharedTree. Like other DDSs, you can continue to use these data objects like local objects and we'll keep them in sync. + +We have also added support for SharePoint Embedded, which is an M365 hosted service offering. You can access it by using the @fluidframework/odsp-client package. + +## New features + +### SharedTree DDS + +Our new DDS offering that allows you to represent any hierarchichal data model for you app. + +### odsp-client + +New service API that allows you to access SharePoint Embedded service. + +## Breaking Changes + +### sequence: Remove the findTile API + +The `findTile` API that was previously deprecated is now being removed. The new `searchForMarker` function provides similar functionality, and can be called with the start position, the client ID, the desired marker label to find, and the search direction, where a value of `true` indicates a forward search. + +### sequence: Unify the change and changeProperties methods + +Instead of having two separate APIs to modify an interval's endpoints and properties, combine both into the same method, IntervalCollection.change. Change is called with a string id value as the first parameter, and an object containing the start value, the end value, and/or the properties, depending on the desired modifications to the interval. Start and end must both be either defined or undefined. + +The old functionality and signatures were deprecated in the internal.7.4.0 minor release. + +### telemetry-utils: Remove deprecated config types from telemetry-utils + +The types `ConfigTypes` and `IConfigProviderBase` were deprecated and are now removed from @fluidframework/telemetry-utils. They continue to exist in @fluidframework/core-interfaces. Please update your reference to use these types from @fluidframework/core-interfaces. + +## Deprecations + +### garbage collection: Deprecate addedGCOutboundReference + +The `addedGCOutboundReference` property on IDeltaConnection, IFluidDataStoreContext, and MockFluidDataStoreRuntime is now deprecated. + +The responsibility of adding outbound references (for Garbage Collection tracking) is moving up to the ContainerRuntime. Previously, DDSes themselves were responsible to detect and report added outbound references (via a handle being stored), so these interfaces (and corresponding mock) needed to plumb that information up to the ContainerRuntime layer where GC sits. This is no longer necessary so they're being removed in an upcoming release. + +## Updates to Alpha APIs + +### shared-object-base: SharedObject processGCDataCore now takes IFluidSerializer rather than SummarySerializer + +This change should be a no-op for consumers, and `SummarySerializer` and `IFluidSerializer` expose the same consumer facing APIs. This change just makes our APIs more consistent by only using interfaces, rather than a mix of interfaces and concrete implementations. + +### datastore-definitions: Remove unused IFluidDataStoreRegistry from IFluidDataStoreRuntime + +`IFluidDataStoreRuntime` optionally extended `IFluidDataStoreRegistry`. This is never used, so is removed. As with all provider interfaces, consumers can continue to extend the interface if they have a use, and use `FluidObject` to inspect for it existing. + +### id-compressor: Cluster allocation strategy updated + +This change adjusts the cluster allocation strategy for ghost sessions to exactly fill the cluster instead of needlessly allocating a large cluster. It will also not make a cluster at all if IDs are not allocated. This change adjusts a computation performed at a consensus point, and thus breaks any sessions collaborating across version numbers. The version for the serialized format has been bumped to 2.0, and 1.0 documents will fail to load with the following error: IdCompressor version 1.0 is no longer supported. + +## Further updates + +### sequence: Remove the signature of IntervalCollection.add that takes a type parameter + +The previously deprecated signature of `IntervalCollection.add` that takes an `IntervalType` as a parameter is now being removed. The new signature is called without the type parameter and takes the `start`, `end`, and `properties` parameters as a single object. + +### Updated server dependencies + +The following Fluid server dependencies have been updated to the latest version, 3.0.0. +[See the full changelog.](https://github.com/microsoft/FluidFramework/releases/tag/server_v3.0.0) + +- @fluidframework/gitresources +- @fluidframework/server-kafka-orderer +- @fluidframework/server-lambdas +- @fluidframework/server-lambdas-driver +- @fluidframework/server-local-server +- @fluidframework/server-memory-orderer +- @fluidframework/protocol-base +- @fluidframework/server-routerlicious +- @fluidframework/server-routerlicious-base +- @fluidframework/server-services +- @fluidframework/server-services-client +- @fluidframework/server-services-core +- @fluidframework/server-services-ordering-kafkanode +- @fluidframework/server-services-ordering-rdkafka +- @fluidframework/server-services-ordering-zookeeper +- @fluidframework/server-services-shared +- @fluidframework/server-services-telemetry +- @fluidframework/server-services-utils +- @fluidframework/server-test-utils +- tinylicious + +### Updated @fluidframework/protocol-definitions + +The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0. +[See the full changelog.](https://github.com/microsoft/FluidFramework/blob/main/common/lib/protocol-definitions/CHANGELOG.md#310)