From 3cd1f01a14ee7a422416ed4416687ddde366c67e Mon Sep 17 00:00:00 2001 From: "Craig Macomber (Microsoft)" <42876482+CraigMacomber@users.noreply.github.com> Date: Mon, 18 Nov 2024 16:16:38 -0800 Subject: [PATCH] Generate changelogs (#23132) ## Description Generate change logs with `pnpm exec flub generate changelog -g client` --- .changeset/fifty-showers-divide.md | 34 ---- .changeset/fruity-sites-boil.md | 10 -- .changeset/full-places-know.md | 37 ----- .changeset/icy-webs-help.md | 14 -- .changeset/loud-lemons-switch.md | 10 -- .changeset/lovely-taxis-notice.md | 27 ---- .changeset/moody-flies-fly.md | 26 --- .changeset/nice-flies-brake.md | 32 ---- .changeset/ninety-dragons-fold.md | 30 ---- .changeset/rude-views-bake.md | 30 ---- .changeset/stinky-cars-fart.md | 11 -- .changeset/twenty-cameras-take.md | 32 ---- .changeset/witty-papers-tan.md | 74 --------- .../packages/azure-local-service/CHANGELOG.md | 4 + .../packages/azure-service-utils/CHANGELOG.md | 4 + .../test/scenario-runner/CHANGELOG.md | 4 + examples/apps/ai-collab/CHANGELOG.md | 4 + examples/apps/attributable-map/CHANGELOG.md | 4 + .../apps/collaborative-textarea/CHANGELOG.md | 4 + examples/apps/contact-collection/CHANGELOG.md | 4 + examples/apps/data-object-grid/CHANGELOG.md | 4 + examples/apps/presence-tracker/CHANGELOG.md | 4 + examples/apps/task-selection/CHANGELOG.md | 4 + examples/apps/tree-cli-app/CHANGELOG.md | 4 + examples/apps/tree-comparison/CHANGELOG.md | 4 + .../bubblebench/baseline/CHANGELOG.md | 4 + .../bubblebench/common/CHANGELOG.md | 4 + .../experimental-tree/CHANGELOG.md | 4 + .../benchmarks/bubblebench/ot/CHANGELOG.md | 4 + .../bubblebench/shared-tree/CHANGELOG.md | 4 + .../CHANGELOG.md | 4 + examples/benchmarks/tablebench/CHANGELOG.md | 4 + .../app-insights-logger/CHANGELOG.md | 4 + examples/data-objects/canvas/CHANGELOG.md | 4 + examples/data-objects/clicker/CHANGELOG.md | 4 + examples/data-objects/codemirror/CHANGELOG.md | 4 + examples/data-objects/diceroller/CHANGELOG.md | 4 + .../data-objects/inventory-app/CHANGELOG.md | 4 + examples/data-objects/monaco/CHANGELOG.md | 4 + .../constellation-model/CHANGELOG.md | 4 + .../multiview/constellation-view/CHANGELOG.md | 4 + .../multiview/container/CHANGELOG.md | 4 + .../multiview/coordinate-model/CHANGELOG.md | 4 + .../multiview/interface/CHANGELOG.md | 4 + .../plot-coordinate-view/CHANGELOG.md | 4 + .../slider-coordinate-view/CHANGELOG.md | 4 + .../multiview/triangle-view/CHANGELOG.md | 4 + .../data-objects/prosemirror/CHANGELOG.md | 4 + examples/data-objects/smde/CHANGELOG.md | 4 + .../data-objects/table-document/CHANGELOG.md | 4 + examples/data-objects/todo/CHANGELOG.md | 4 + examples/data-objects/webflow/CHANGELOG.md | 4 + examples/external-data/CHANGELOG.md | 4 + .../external-controller/CHANGELOG.md | 4 + .../odsp-client/shared-tree-demo/CHANGELOG.md | 4 + examples/utils/bundle-size-tests/CHANGELOG.md | 4 + examples/utils/example-utils/CHANGELOG.md | 4 + examples/utils/migration-tools/CHANGELOG.md | 4 + .../utils/webpack-fluid-loader/CHANGELOG.md | 4 + .../live-schema-upgrade/CHANGELOG.md | 4 + .../same-container/CHANGELOG.md | 4 + .../separate-container/CHANGELOG.md | 4 + .../version-migration/tree-shim/CHANGELOG.md | 4 + .../container-views/CHANGELOG.md | 4 + .../external-views/CHANGELOG.md | 4 + .../view-framework-sampler/CHANGELOG.md | 4 + .../packages/property-changeset/CHANGELOG.md | 4 + .../packages/property-common/CHANGELOG.md | 4 + .../platform-dependent/CHANGELOG.md | 4 + .../packages/property-dds/CHANGELOG.md | 4 + .../packages/property-properties/CHANGELOG.md | 4 + .../dds/attributable-map/CHANGELOG.md | 4 + experimental/dds/ot/ot/CHANGELOG.md | 4 + .../dds/ot/sharejs/json1/CHANGELOG.md | 4 + .../dds/sequence-deprecated/CHANGELOG.md | 4 + experimental/dds/tree/CHANGELOG.md | 4 + .../framework/data-objects/CHANGELOG.md | 4 + .../framework/last-edited/CHANGELOG.md | 4 + .../framework/tree-react-api/CHANGELOG.md | 4 + packages/common/client-utils/CHANGELOG.md | 4 + .../common/container-definitions/CHANGELOG.md | 18 +++ packages/common/core-interfaces/CHANGELOG.md | 4 + packages/common/core-utils/CHANGELOG.md | 4 + .../common/driver-definitions/CHANGELOG.md | 4 + packages/dds/cell/CHANGELOG.md | 4 + packages/dds/counter/CHANGELOG.md | 4 + packages/dds/ink/CHANGELOG.md | 4 + packages/dds/map/CHANGELOG.md | 4 + packages/dds/matrix/CHANGELOG.md | 4 + packages/dds/merge-tree/CHANGELOG.md | 79 ++++++++++ packages/dds/ordered-collection/CHANGELOG.md | 4 + packages/dds/pact-map/CHANGELOG.md | 4 + packages/dds/register-collection/CHANGELOG.md | 4 + packages/dds/sequence/CHANGELOG.md | 79 ++++++++++ packages/dds/shared-object-base/CHANGELOG.md | 4 + .../dds/shared-summary-block/CHANGELOG.md | 4 + packages/dds/task-manager/CHANGELOG.md | 4 + packages/dds/test-dds-utils/CHANGELOG.md | 4 + packages/dds/tree/CHANGELOG.md | 78 +++++++++ packages/drivers/debugger/CHANGELOG.md | 4 + packages/drivers/driver-base/CHANGELOG.md | 4 + .../drivers/driver-web-cache/CHANGELOG.md | 4 + packages/drivers/file-driver/CHANGELOG.md | 4 + packages/drivers/local-driver/CHANGELOG.md | 4 + .../odsp-driver-definitions/CHANGELOG.md | 4 + packages/drivers/odsp-driver/CHANGELOG.md | 4 + .../drivers/odsp-urlResolver/CHANGELOG.md | 4 + packages/drivers/replay-driver/CHANGELOG.md | 4 + .../drivers/routerlicious-driver/CHANGELOG.md | 4 + .../routerlicious-urlResolver/CHANGELOG.md | 4 + .../drivers/tinylicious-driver/CHANGELOG.md | 4 + .../framework/agent-scheduler/CHANGELOG.md | 4 + packages/framework/ai-collab/CHANGELOG.md | 4 + packages/framework/aqueduct/CHANGELOG.md | 18 +++ packages/framework/attributor/CHANGELOG.md | 4 + .../app-insights-logger/CHANGELOG.md | 4 + .../fluid-telemetry/CHANGELOG.md | 4 + .../framework/data-object-base/CHANGELOG.md | 4 + .../framework/dds-interceptions/CHANGELOG.md | 4 + .../framework/fluid-framework/CHANGELOG.md | 148 ++++++++++++++++++ packages/framework/fluid-static/CHANGELOG.md | 18 +++ .../oldest-client-observer/CHANGELOG.md | 4 + packages/framework/presence/CHANGELOG.md | 32 ++++ .../framework/request-handler/CHANGELOG.md | 4 + packages/framework/synthesize/CHANGELOG.md | 4 + packages/framework/undo-redo/CHANGELOG.md | 28 ++++ packages/loader/container-loader/CHANGELOG.md | 18 +++ packages/loader/driver-utils/CHANGELOG.md | 4 + .../loader/test-loader-utils/CHANGELOG.md | 4 + .../CHANGELOG.md | 18 +++ .../runtime/container-runtime/CHANGELOG.md | 90 +++++++++++ .../datastore-definitions/CHANGELOG.md | 4 + packages/runtime/datastore/CHANGELOG.md | 18 +++ packages/runtime/id-compressor/CHANGELOG.md | 4 + .../runtime/runtime-definitions/CHANGELOG.md | 94 +++++++++++ packages/runtime/runtime-utils/CHANGELOG.md | 22 +++ .../runtime/test-runtime-utils/CHANGELOG.md | 23 +++ .../service-clients/azure-client/CHANGELOG.md | 4 + .../azure-client/CHANGELOG.md | 4 + .../end-to-end-tests/odsp-client/CHANGELOG.md | 4 + .../service-clients/odsp-client/CHANGELOG.md | 4 + .../tinylicious-client/CHANGELOG.md | 4 + packages/test/functional-tests/CHANGELOG.md | 4 + packages/test/local-server-tests/CHANGELOG.md | 4 + packages/test/mocha-test-setup/CHANGELOG.md | 4 + packages/test/snapshots/CHANGELOG.md | 4 + .../test/stochastic-test-utils/CHANGELOG.md | 4 + .../test/test-driver-definitions/CHANGELOG.md | 4 + packages/test/test-drivers/CHANGELOG.md | 4 + .../test/test-end-to-end-tests/CHANGELOG.md | 18 +++ .../test/test-pairwise-generator/CHANGELOG.md | 4 + packages/test/test-service-load/CHANGELOG.md | 4 + packages/test/test-utils/CHANGELOG.md | 18 +++ packages/test/test-version-utils/CHANGELOG.md | 4 + .../changelog-generator-wrapper/CHANGELOG.md | 4 + .../devtools-browser-extension/CHANGELOG.md | 4 + .../tools/devtools/devtools-core/CHANGELOG.md | 18 +++ .../devtools/devtools-example/CHANGELOG.md | 4 + .../tools/devtools/devtools-view/CHANGELOG.md | 4 + packages/tools/devtools/devtools/CHANGELOG.md | 4 + packages/tools/fetch-tool/CHANGELOG.md | 4 + packages/tools/fluid-runner/CHANGELOG.md | 4 + packages/tools/replay-tool/CHANGELOG.md | 4 + packages/utils/odsp-doclib-utils/CHANGELOG.md | 4 + packages/utils/telemetry-utils/CHANGELOG.md | 4 + packages/utils/tool-utils/CHANGELOG.md | 4 + tools/markdown-magic/CHANGELOG.md | 4 + 167 files changed, 1375 insertions(+), 367 deletions(-) delete mode 100644 .changeset/fifty-showers-divide.md delete mode 100644 .changeset/fruity-sites-boil.md delete mode 100644 .changeset/full-places-know.md delete mode 100644 .changeset/icy-webs-help.md delete mode 100644 .changeset/loud-lemons-switch.md delete mode 100644 .changeset/lovely-taxis-notice.md delete mode 100644 .changeset/moody-flies-fly.md delete mode 100644 .changeset/nice-flies-brake.md delete mode 100644 .changeset/ninety-dragons-fold.md delete mode 100644 .changeset/rude-views-bake.md delete mode 100644 .changeset/stinky-cars-fart.md delete mode 100644 .changeset/twenty-cameras-take.md delete mode 100644 .changeset/witty-papers-tan.md diff --git a/.changeset/fifty-showers-divide.md b/.changeset/fifty-showers-divide.md deleted file mode 100644 index 9968101be37..00000000000 --- a/.changeset/fifty-showers-divide.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -"fluid-framework": minor -"@fluidframework/merge-tree": minor -"@fluidframework/sequence": minor ---- ---- -"section": deprecation ---- - -Unsupported merge-tree types and related exposed internals have been removed - -As part of ongoing improvements, several internal types and related APIs have been removed. These types are unnecessary for any supported scenarios and could lead to errors if used. Since directly using these types would likely result in errors, these changes are not likely to impact any Fluid Framework consumers. - -Removed types: -- IMergeTreeTextHelper -- MergeNode -- ObliterateInfo -- PropertiesManager -- PropertiesRollback -- SegmentGroup -- SegmentGroupCollection - -In addition to removing the above types, they are no longer exposed through the following interfaces and their implementations: `ISegment`, `ReferencePosition`, and `ISerializableInterval`. - -Removed functions: -- addProperties -- ack - -Removed properties: -- propertyManager -- segmentGroups - -The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.2.0: -[Fluid Framework v2.2.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.2.0.md) diff --git a/.changeset/fruity-sites-boil.md b/.changeset/fruity-sites-boil.md deleted file mode 100644 index e34fe456348..00000000000 --- a/.changeset/fruity-sites-boil.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@fluidframework/runtime-definitions": minor ---- ---- -"section": other ---- - -Changes to the batchBegin and batchEnd events on ContainerRuntime - -The 'batchBegin'/'batchEnd' events on ContainerRuntime indicate when a batch is beginning or finishing being processed. The `contents` property on the event argument `op` is not useful or relevant when reasoning over incoming changes at the batch level. Accordingly, it has been removed from the `op` event argument. diff --git a/.changeset/full-places-know.md b/.changeset/full-places-know.md deleted file mode 100644 index d5d3382d5ed..00000000000 --- a/.changeset/full-places-know.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -"fluid-framework": minor -"@fluidframework/tree": minor ---- ---- -"section": tree ---- - -Fix typing bug in `adaptEnum` and `enumFromStrings` - -When using the return value from [`adaptEnum`](https://fluidframework.com/docs/api/v2/tree#adaptenum-function) as a function, passing in a value who's type is a union no longer produced an incorrectly typed return value. This has been fixed. - -Additionally [`enumFromStrings`](https://fluidframework.com/docs/api/v2/tree#enumfromstrings-function) has improved the typing of its schema, ensuring the returned object's members have sufficiently specific types. -Part of this improvement was fixing the `.schema` property to be a tuple over each of the schema where it was previously a tuple of a single combined schema due to a bug. - -One side-effect of these fixes is that narrowing of the `value` field of a node typed from the `.schema` behaves slightly different, such that the node type is now a union instead of it being a single type with a `.value` that is a union. -This means that narrowing based on `.value` property narrows which node type you have, not just the value property. -This mainly matters when matching all cases like the switch statement below: - -```typescript -const Mode = enumFromStrings(schema, ["Fun", "Bonus"]); -type Mode = TreeNodeFromImplicitAllowedTypes; -const node = new Mode.Bonus() as Mode; - -switch (node.value) { - case "Fun": { - assert.fail(); - } - case "Bonus": { - // This one runs - break; - } - default: - // Before this change, "node.value" was never here, now "node" is never. - unreachableCase(node); -} -``` diff --git a/.changeset/icy-webs-help.md b/.changeset/icy-webs-help.md deleted file mode 100644 index 395bc6c8e38..00000000000 --- a/.changeset/icy-webs-help.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@fluidframework/container-runtime": minor -"@fluidframework/runtime-definitions": minor -"@fluidframework/test-runtime-utils": minor ---- ---- -"section": legacy ---- - -"Remove `IFluidParentContext.ensureNoDataModelChanges` and its implementations - -- `IFluidParentContext.ensureNoDataModelChanges` has been removed. [prior deprecation commit](https://github.com/microsoft/FluidFramework/commit/c9d156264bdfa211a3075bdf29cde442ecea234c) - -- `MockFluidDataStoreContext.ensureNoDataModelChanges` has also been removed. diff --git a/.changeset/loud-lemons-switch.md b/.changeset/loud-lemons-switch.md deleted file mode 100644 index 147f054585d..00000000000 --- a/.changeset/loud-lemons-switch.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@fluidframework/runtime-utils": minor ---- ---- -"section": feature ---- - -New compareFluidHandle function for comparing FluidHandles - -The new `compareFluidHandle` function has been added to allow comparing handles without having to inspect their internals. diff --git a/.changeset/lovely-taxis-notice.md b/.changeset/lovely-taxis-notice.md deleted file mode 100644 index 7b382d05017..00000000000 --- a/.changeset/lovely-taxis-notice.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -"fluid-framework": minor -"@fluidframework/tree": minor ---- ---- -"section": tree ---- - -SharedTree event listeners that implement `Listenable` now allow deregistration of event listeners via an `off()` function. - -The ability to deregister events via a callback returned by `on()` remains the same. -Both strategies will remain supported and consumers of SharedTree events may choose which method of deregistration they prefer in a given instance. - -```typescript -// The new behavior -function deregisterViaOff(view: TreeView): { - const listener = () => { /* ... */ }; - view.events.on("commitApplied", listener); // Register - view.events.off("commitApplied", listener); // Deregister -} - -// The existing behavior (still supported) -function deregisterViaCallback(view: TreeView): { - const off = view.events.on("commitApplied", () => { /* ... */ }); // Register - off(); // Deregister -} -``` diff --git a/.changeset/moody-flies-fly.md b/.changeset/moody-flies-fly.md deleted file mode 100644 index 75a5dd57fed..00000000000 --- a/.changeset/moody-flies-fly.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -"fluid-framework": minor -"@fluidframework/tree": minor ---- ---- -"section": tree ---- - -Allow constructing recursive maps from objects - -Previously only non-recursive maps could be constructed from objects. -Now all maps nodes can constructed from objects: - -```typescript -class MapRecursive extends sf.mapRecursive("Map", [() => MapRecursive]) {} -{ - type _check = ValidateRecursiveSchema; -} -// New: -const fromObject = new MapRecursive({ x: new MapRecursive() }); -// Existing: -const fromIterator = new MapRecursive([["x", new MapRecursive()]]); -const fromMap = new MapRecursive(new Map([["x", new MapRecursive()]])); -const fromNothing = new MapRecursive(); -const fromUndefined = new MapRecursive(undefined); -``` diff --git a/.changeset/nice-flies-brake.md b/.changeset/nice-flies-brake.md deleted file mode 100644 index f371e5a5418..00000000000 --- a/.changeset/nice-flies-brake.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -"@fluidframework/aqueduct": minor -"@fluidframework/container-definitions": minor -"@fluidframework/container-loader": minor -"@fluidframework/container-runtime": minor -"@fluidframework/container-runtime-definitions": minor -"@fluidframework/datastore": minor -"@fluidframework/devtools-core": minor -"@fluidframework/fluid-static": minor -"@fluidframework/runtime-definitions": minor -"@fluidframework/runtime-utils": minor -"@fluid-private/test-end-to-end-tests": minor -"@fluidframework/test-runtime-utils": minor -"@fluidframework/test-utils": minor ---- ---- -"section": legacy ---- - -The inbound and outbound properties have been removed from IDeltaManager - -The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. - -`IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. - -Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. - -#### Alternatives - -- Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` -- Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. -- Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. diff --git a/.changeset/ninety-dragons-fold.md b/.changeset/ninety-dragons-fold.md deleted file mode 100644 index f577250648c..00000000000 --- a/.changeset/ninety-dragons-fold.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -"fluid-framework": minor -"@fluidframework/merge-tree": minor -"@fluidframework/sequence": minor -"@fluidframework/undo-redo": minor ---- ---- -"section": feature ---- - -SharedString DDS annotateAdjustRange - -This update introduces a new feature to the `SharedString` DDS, allowing for the adjustment of properties over a specified range. The `annotateAdjustRange` method enables users to apply adjustments to properties within a given range, providing more flexibility and control over property modifications. - -An adjustment is a modification applied to a property value within a specified range. Adjustments can be used to increment or decrement property values dynamically. They are particularly useful in scenarios where property values need to be updated based on user interactions or other events. For example, in a rich text editor, adjustments can be used for modifying indentation levels or font sizes, where multiple users could apply differing numerical adjustments. - -### Key Features and Use Cases: -- **Adjustments with Constraints**: Adjustments can include optional minimum and maximum constraints to ensure the final value falls within specified bounds. This is particularly useful for maintaining consistent formatting in rich text editors. -- **Consistent Property Changes**: The feature ensures that property changes are consistent, managing both local and remote changes effectively. This is essential for collaborative rich text editing where multiple users may be making adjustments simultaneously. -- **Rich Text Formatting**: Adjustments can be used to modify text properties such as font size, indentation, or other formatting attributes dynamically based on user actions. - -### Configuration and Compatibility Requirements: -This feature is only available when the configuration `Fluid.Sequence.mergeTreeEnableAnnotateAdjust` is set to `true`. Additionally, all collaborating clients must have this feature enabled to use it. If any client does not have this feature enabled, it will lead to the client exiting collaboration. A future major version of Fluid will enable this feature by default. - -### Usage Example: -```typescript -sharedString.annotateAdjustRange(start, end, { - key: { value: 5, min: 0, max: 10 } -}); -``` diff --git a/.changeset/rude-views-bake.md b/.changeset/rude-views-bake.md deleted file mode 100644 index 10b32cc277f..00000000000 --- a/.changeset/rude-views-bake.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -"fluid-framework": minor -"@fluidframework/merge-tree": minor -"@fluidframework/sequence": minor ---- ---- -"section": legacy ---- - -MergeTree `Client` Legacy API Removed - -The `Client` class in the merge-tree package has been removed. Types that directly or indirectly expose the merge-tree `Client` class have also been removed. - -The removed types were not meant to be used directly, and direct usage was not supported: - -- AttributionPolicy -- IClientEvents -- IMergeTreeAttributionOptions -- SharedSegmentSequence -- SharedStringClass - -Some classes that referenced the `Client` class have been transitioned to interfaces. Direct instantiation of these classes was not supported or necessary for any supported scenario, so the change to an interface should not impact usage. This applies to the following types: - -- SequenceInterval -- SequenceEvent -- SequenceDeltaEvent -- SequenceMaintenanceEvent - -The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.4.0: -[Several MergeTree Client Legacy APIs are now deprecated](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.4.0.md#several-mergetree-client-legacy-apis-are-now-deprecated-22629) diff --git a/.changeset/stinky-cars-fart.md b/.changeset/stinky-cars-fart.md deleted file mode 100644 index e5f78278340..00000000000 --- a/.changeset/stinky-cars-fart.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@fluidframework/tree": minor ---- ---- -"section": tree ---- - -Provide more comprehensive replacement to the `commitApplied` event - -Adds a new `changed` event to the (currently alpha) `TreeBranchEvents` that replaces the `commitApplied` event on `TreeViewEvents`. -This new event is fired for both local and remote changes and maintains the existing functionality of `commitApplied` that is used for obtaining `Revertibles`. diff --git a/.changeset/twenty-cameras-take.md b/.changeset/twenty-cameras-take.md deleted file mode 100644 index fefc45280eb..00000000000 --- a/.changeset/twenty-cameras-take.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -"@fluidframework/presence": minor ---- ---- -"section": other ---- - -Presence package updates - -#### Package scope advanced from `@fluid-experimental` ([#23073](https://github.com/microsoft/FluidFramework/pull/23073)) - -To update existing: -- package.json: replace `@fluid-experimental/presence` with `@fluidframework/presence` -- code imports: replace `@fluid-experimental/presence` with `@fluidframework/presence/alpha` - -#### The methods and properties of `PresenceStates` have been reorganized ([#23021](https://github.com/microsoft/FluidFramework/pull/23021)) - -The `PresenceStatesEntries` object, which represents each of the states in the `PresenceStates` schema, has been moved from directly within `PresenceStates` to under property names `props`. Only the `add` method remains directly within `PresenceStates`. The type `PresenceStatesMethods` has also been removed since it is no longer used. - -To update existing code, access your presence states from the `props` property instead of directly on the `PresenceStates` object. For example: -```patch -- presenceStatesWorkspace.myMap.local.get("key1"); -+ presenceStatesWorkspace.props.myMap.local.get("key1"); -``` - -#### `BroadcastControls` replace `LatestValueControls` ([#23120](https://github.com/microsoft/FluidFramework/pull/23120)) - -`BroadcastControls` maybe specified on `PresenceStates` thru new `controls` property as defaults for all value managers. - -`allowableUpdateLatencyMs` was renamed from `allowableUpdateLatency` to clarify units are milliseconds. Specifying this value currently has no effect, but use is recommended to light up as implementation comes online. - -Unsupported `forcedRefreshInterval` has been removed until implementation is closer. diff --git a/.changeset/witty-papers-tan.md b/.changeset/witty-papers-tan.md deleted file mode 100644 index 761a0a1e839..00000000000 --- a/.changeset/witty-papers-tan.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -"@fluidframework/container-runtime": minor -"@fluidframework/runtime-definitions": minor ---- ---- -"section": feature ---- - -Enable Synchronous Child Datastore Creation - -## Overview - -This feature introduces a new pattern for creating datastores synchronously within the Fluid Framework. It allows for the synchronous creation of a child datastore from an existing datastore, provided that the child datastore is available synchronously via the existing datastore's registry and that the child's factory supports synchronous creation. This method also ensures strong typing for the consumer. - -In this context, "child" refers specifically to the organization of factories and registries, not to any hierarchical or hosting relationship between datastores. The parent datastore does not control the runtime behaviors of the child datastore beyond its creation. - -The synchronous creation of child datastores enhances the flexibility of datastore management within the Fluid Framework. It ensures type safety and provides a different way to manage datastores within a container. However, it is important to consider the overhead associated with datastores, as they are stored, summarized, garbage collected, loaded, and referenced independently. This overhead should be justified by the scenario's requirements. - -Datastores offer increased capabilities, such as the ability to reference them via handles, allowing multiple references to exist and enabling those references to be moved, swapped, or changed. Additionally, datastores are garbage collected after becoming unreferenced, which can simplify final cleanup across clients. This is in contrast to subdirectories in a shared directory, which do not have native capabilities for referencing or garbage collection but are very low overhead to create. - -Synchronous creation relies on both the factory and the datastore to support it. This means that asynchronous operations, such as resolving handles, some browser API calls, consensus-based operations, or other asynchronous tasks, cannot be performed during the creation flow. Therefore, synchronous child datastore creation is best limited to scenarios where the existing asynchronous process cannot be used, such as when a new datastore must be created in direct response to synchronous user input. - -## Key Benefits - -- **Synchronous Creation**: Allows for the immediate creation of child datastores without waiting for asynchronous operations. -- **Strong Typing**: Ensures type safety and better developer experience by leveraging TypeScript's type system. - -## Use Cases - -### Example 1: Creating a Child Datastore - -In this example, we demonstrate how to support creating a child datastore synchronously from a parent datastore. - -```typescript -/** - * This is the parent DataObject, which is also a datastore. It has a - * synchronous method to create child datastores, which could be called - * in response to synchronous user input, like a key press. - */ -class ParentDataObject extends DataObject { - get ParentDataObject() { - return this; - } - protected override async initializingFirstTime(): Promise { - // create synchronously during initialization - this.createChild("parentCreation"); - } - - createChild(name: string): ChildDataStore { - assert( - this.context.createChildDataStore !== undefined, - "this.context.createChildDataStore", - ); - // creates a detached context with a factory who's package path is the same - // as the current datastore, but with another copy of its own type. - const { entrypoint } = this.context.createChildDataStore( - ChildDataStoreFactory.instance, - ); - const dir = this.root.createSubDirectory("children"); - dir.set(name, entrypoint.handle); - entrypoint.setProperty("childValue", name); - - return entrypoint; - } - - getChild(name: string): IFluidHandle | undefined { - const dir = this.root.getSubDirectory("children"); - return dir?.get>(name); - } -} -``` - -For a complete example see the follow test: -https://github.com/microsoft/FluidFramework/blob/main/packages/test/local-server-tests/src/test/synchronousDataStoreCreation.spec.ts diff --git a/azure/packages/azure-local-service/CHANGELOG.md b/azure/packages/azure-local-service/CHANGELOG.md index 34816bb686a..2143e09c0b2 100644 --- a/azure/packages/azure-local-service/CHANGELOG.md +++ b/azure/packages/azure-local-service/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/azure-local-service +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/azure/packages/azure-service-utils/CHANGELOG.md b/azure/packages/azure-service-utils/CHANGELOG.md index ccb2d4d99a9..5b81a25d72d 100644 --- a/azure/packages/azure-service-utils/CHANGELOG.md +++ b/azure/packages/azure-service-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/azure-service-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/azure/packages/test/scenario-runner/CHANGELOG.md b/azure/packages/test/scenario-runner/CHANGELOG.md index 0132dcd1ee3..731b4e0590d 100644 --- a/azure/packages/test/scenario-runner/CHANGELOG.md +++ b/azure/packages/test/scenario-runner/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/azure-scenario-runner +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/apps/ai-collab/CHANGELOG.md b/examples/apps/ai-collab/CHANGELOG.md index 93e3f1b3f97..692f192c17c 100644 --- a/examples/apps/ai-collab/CHANGELOG.md +++ b/examples/apps/ai-collab/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/ai-collab +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/apps/attributable-map/CHANGELOG.md b/examples/apps/attributable-map/CHANGELOG.md index 1a97c50b3ef..7c231610629 100644 --- a/examples/apps/attributable-map/CHANGELOG.md +++ b/examples/apps/attributable-map/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/attributable-map +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/apps/collaborative-textarea/CHANGELOG.md b/examples/apps/collaborative-textarea/CHANGELOG.md index a1ac97f02a4..b06ef305eed 100644 --- a/examples/apps/collaborative-textarea/CHANGELOG.md +++ b/examples/apps/collaborative-textarea/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/collaborative-textarea +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/apps/contact-collection/CHANGELOG.md b/examples/apps/contact-collection/CHANGELOG.md index 52dfc2c48d9..8640087c31c 100644 --- a/examples/apps/contact-collection/CHANGELOG.md +++ b/examples/apps/contact-collection/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/contact-collection +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/apps/data-object-grid/CHANGELOG.md b/examples/apps/data-object-grid/CHANGELOG.md index 94dee54bbc0..e3623d2e922 100644 --- a/examples/apps/data-object-grid/CHANGELOG.md +++ b/examples/apps/data-object-grid/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/data-object-grid +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/apps/presence-tracker/CHANGELOG.md b/examples/apps/presence-tracker/CHANGELOG.md index a11ad3e6039..264d7e21461 100644 --- a/examples/apps/presence-tracker/CHANGELOG.md +++ b/examples/apps/presence-tracker/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/presence-tracker +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/apps/task-selection/CHANGELOG.md b/examples/apps/task-selection/CHANGELOG.md index c20a071c974..8b5f76b54bd 100644 --- a/examples/apps/task-selection/CHANGELOG.md +++ b/examples/apps/task-selection/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/task-selection +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/apps/tree-cli-app/CHANGELOG.md b/examples/apps/tree-cli-app/CHANGELOG.md index 3e0f99d2bee..f4e755de145 100644 --- a/examples/apps/tree-cli-app/CHANGELOG.md +++ b/examples/apps/tree-cli-app/CHANGELOG.md @@ -1,3 +1,7 @@ # @fluid-example/tree-cli-app +## 2.10.0 + +Dependency updates only. + ## 2.5.0 diff --git a/examples/apps/tree-comparison/CHANGELOG.md b/examples/apps/tree-comparison/CHANGELOG.md index c095845c972..4cff9e4a3ff 100644 --- a/examples/apps/tree-comparison/CHANGELOG.md +++ b/examples/apps/tree-comparison/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/tree-comparison +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/benchmarks/bubblebench/baseline/CHANGELOG.md b/examples/benchmarks/bubblebench/baseline/CHANGELOG.md index 8d04203f7bc..1d393786de6 100644 --- a/examples/benchmarks/bubblebench/baseline/CHANGELOG.md +++ b/examples/benchmarks/bubblebench/baseline/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/bubblebench-baseline +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/benchmarks/bubblebench/common/CHANGELOG.md b/examples/benchmarks/bubblebench/common/CHANGELOG.md index db5430c38dd..ca0788bb252 100644 --- a/examples/benchmarks/bubblebench/common/CHANGELOG.md +++ b/examples/benchmarks/bubblebench/common/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/bubblebench-common +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/benchmarks/bubblebench/experimental-tree/CHANGELOG.md b/examples/benchmarks/bubblebench/experimental-tree/CHANGELOG.md index 68bde966691..318db3ac825 100644 --- a/examples/benchmarks/bubblebench/experimental-tree/CHANGELOG.md +++ b/examples/benchmarks/bubblebench/experimental-tree/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/bubblebench-experimental-tree +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/benchmarks/bubblebench/ot/CHANGELOG.md b/examples/benchmarks/bubblebench/ot/CHANGELOG.md index 86ae14b936d..b490568ec36 100644 --- a/examples/benchmarks/bubblebench/ot/CHANGELOG.md +++ b/examples/benchmarks/bubblebench/ot/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/bubblebench-ot +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/benchmarks/bubblebench/shared-tree/CHANGELOG.md b/examples/benchmarks/bubblebench/shared-tree/CHANGELOG.md index 6b937f01a55..721e125ea3f 100644 --- a/examples/benchmarks/bubblebench/shared-tree/CHANGELOG.md +++ b/examples/benchmarks/bubblebench/shared-tree/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/bubblebench-simple-tree +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/benchmarks/odspsnapshotfetch-perftestapp/CHANGELOG.md b/examples/benchmarks/odspsnapshotfetch-perftestapp/CHANGELOG.md index 5793567df05..283a79d8765 100644 --- a/examples/benchmarks/odspsnapshotfetch-perftestapp/CHANGELOG.md +++ b/examples/benchmarks/odspsnapshotfetch-perftestapp/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/odspsnapshotfetch-perftestapp +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/benchmarks/tablebench/CHANGELOG.md b/examples/benchmarks/tablebench/CHANGELOG.md index e4c5186ce1b..ddacc52200d 100644 --- a/examples/benchmarks/tablebench/CHANGELOG.md +++ b/examples/benchmarks/tablebench/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/tablebench +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/client-logger/app-insights-logger/CHANGELOG.md b/examples/client-logger/app-insights-logger/CHANGELOG.md index a57d43172d4..c209ce5dc21 100644 --- a/examples/client-logger/app-insights-logger/CHANGELOG.md +++ b/examples/client-logger/app-insights-logger/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/app-insights-logger +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/canvas/CHANGELOG.md b/examples/data-objects/canvas/CHANGELOG.md index 5c87a117102..91ef3e867ea 100644 --- a/examples/data-objects/canvas/CHANGELOG.md +++ b/examples/data-objects/canvas/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/canvas +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/clicker/CHANGELOG.md b/examples/data-objects/clicker/CHANGELOG.md index 7a50925cfa9..38cd699dbbe 100644 --- a/examples/data-objects/clicker/CHANGELOG.md +++ b/examples/data-objects/clicker/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/clicker +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/codemirror/CHANGELOG.md b/examples/data-objects/codemirror/CHANGELOG.md index cb482cb28ec..d080ba01651 100644 --- a/examples/data-objects/codemirror/CHANGELOG.md +++ b/examples/data-objects/codemirror/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/codemirror +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/diceroller/CHANGELOG.md b/examples/data-objects/diceroller/CHANGELOG.md index 91c8b2c14c5..7d13e986432 100644 --- a/examples/data-objects/diceroller/CHANGELOG.md +++ b/examples/data-objects/diceroller/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/diceroller +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/inventory-app/CHANGELOG.md b/examples/data-objects/inventory-app/CHANGELOG.md index f9e16a9c0a8..1a6937b3c83 100644 --- a/examples/data-objects/inventory-app/CHANGELOG.md +++ b/examples/data-objects/inventory-app/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/inventory-app +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/monaco/CHANGELOG.md b/examples/data-objects/monaco/CHANGELOG.md index 9d710ce4204..f1c3583fe28 100644 --- a/examples/data-objects/monaco/CHANGELOG.md +++ b/examples/data-objects/monaco/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/monaco +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/multiview/constellation-model/CHANGELOG.md b/examples/data-objects/multiview/constellation-model/CHANGELOG.md index e15ce0eaddc..6a7dadcc1f4 100644 --- a/examples/data-objects/multiview/constellation-model/CHANGELOG.md +++ b/examples/data-objects/multiview/constellation-model/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/multiview-constellation-model +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/multiview/constellation-view/CHANGELOG.md b/examples/data-objects/multiview/constellation-view/CHANGELOG.md index 32d30802271..ee6ffd2d1cd 100644 --- a/examples/data-objects/multiview/constellation-view/CHANGELOG.md +++ b/examples/data-objects/multiview/constellation-view/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/multiview-constellation-view +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/multiview/container/CHANGELOG.md b/examples/data-objects/multiview/container/CHANGELOG.md index a6fcbdbb402..6e01e44756f 100644 --- a/examples/data-objects/multiview/container/CHANGELOG.md +++ b/examples/data-objects/multiview/container/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/multiview-container +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/multiview/coordinate-model/CHANGELOG.md b/examples/data-objects/multiview/coordinate-model/CHANGELOG.md index 2690d94bb2e..be324ded910 100644 --- a/examples/data-objects/multiview/coordinate-model/CHANGELOG.md +++ b/examples/data-objects/multiview/coordinate-model/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/multiview-coordinate-model +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/multiview/interface/CHANGELOG.md b/examples/data-objects/multiview/interface/CHANGELOG.md index 9f879bbc590..9e129b27378 100644 --- a/examples/data-objects/multiview/interface/CHANGELOG.md +++ b/examples/data-objects/multiview/interface/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/multiview-coordinate-interface +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/multiview/plot-coordinate-view/CHANGELOG.md b/examples/data-objects/multiview/plot-coordinate-view/CHANGELOG.md index 96d5307e862..fe4219595d2 100644 --- a/examples/data-objects/multiview/plot-coordinate-view/CHANGELOG.md +++ b/examples/data-objects/multiview/plot-coordinate-view/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/multiview-plot-coordinate-view +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/multiview/slider-coordinate-view/CHANGELOG.md b/examples/data-objects/multiview/slider-coordinate-view/CHANGELOG.md index b58777b42d4..a8ecd5652a0 100644 --- a/examples/data-objects/multiview/slider-coordinate-view/CHANGELOG.md +++ b/examples/data-objects/multiview/slider-coordinate-view/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/multiview-slider-coordinate-view +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/multiview/triangle-view/CHANGELOG.md b/examples/data-objects/multiview/triangle-view/CHANGELOG.md index 1b850bb93a4..09f51090ffd 100644 --- a/examples/data-objects/multiview/triangle-view/CHANGELOG.md +++ b/examples/data-objects/multiview/triangle-view/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/multiview-triangle-view +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/prosemirror/CHANGELOG.md b/examples/data-objects/prosemirror/CHANGELOG.md index da2060a965a..ed26a56b006 100644 --- a/examples/data-objects/prosemirror/CHANGELOG.md +++ b/examples/data-objects/prosemirror/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/prosemirror +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/smde/CHANGELOG.md b/examples/data-objects/smde/CHANGELOG.md index 457f653c36c..37698a18507 100644 --- a/examples/data-objects/smde/CHANGELOG.md +++ b/examples/data-objects/smde/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/smde +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/table-document/CHANGELOG.md b/examples/data-objects/table-document/CHANGELOG.md index 0184e1c3cf7..9bd5d7b5dff 100644 --- a/examples/data-objects/table-document/CHANGELOG.md +++ b/examples/data-objects/table-document/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/table-document +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/todo/CHANGELOG.md b/examples/data-objects/todo/CHANGELOG.md index 20c6b5e5015..9528d7dd8d5 100644 --- a/examples/data-objects/todo/CHANGELOG.md +++ b/examples/data-objects/todo/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/todo +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/data-objects/webflow/CHANGELOG.md b/examples/data-objects/webflow/CHANGELOG.md index acffa8a720c..29892d2e758 100644 --- a/examples/data-objects/webflow/CHANGELOG.md +++ b/examples/data-objects/webflow/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/webflow +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/external-data/CHANGELOG.md b/examples/external-data/CHANGELOG.md index 6a57b46c465..a8b1ea07ea5 100644 --- a/examples/external-data/CHANGELOG.md +++ b/examples/external-data/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/app-integration-external-data +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/service-clients/azure-client/external-controller/CHANGELOG.md b/examples/service-clients/azure-client/external-controller/CHANGELOG.md index 785434ddb96..29f967b480a 100644 --- a/examples/service-clients/azure-client/external-controller/CHANGELOG.md +++ b/examples/service-clients/azure-client/external-controller/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/app-integration-external-controller +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/service-clients/odsp-client/shared-tree-demo/CHANGELOG.md b/examples/service-clients/odsp-client/shared-tree-demo/CHANGELOG.md index 0c4f35ba786..7555f499476 100644 --- a/examples/service-clients/odsp-client/shared-tree-demo/CHANGELOG.md +++ b/examples/service-clients/odsp-client/shared-tree-demo/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/shared-tree-demo +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/utils/bundle-size-tests/CHANGELOG.md b/examples/utils/bundle-size-tests/CHANGELOG.md index 1d5f72ab4ad..f9f943e29df 100644 --- a/examples/utils/bundle-size-tests/CHANGELOG.md +++ b/examples/utils/bundle-size-tests/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/bundle-size-tests +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/utils/example-utils/CHANGELOG.md b/examples/utils/example-utils/CHANGELOG.md index bd3e4fb1c62..5d1785b4e8c 100644 --- a/examples/utils/example-utils/CHANGELOG.md +++ b/examples/utils/example-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/example-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/utils/migration-tools/CHANGELOG.md b/examples/utils/migration-tools/CHANGELOG.md index 4c4e22f8816..5edefbfa2d5 100644 --- a/examples/utils/migration-tools/CHANGELOG.md +++ b/examples/utils/migration-tools/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/migration-tools +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/utils/webpack-fluid-loader/CHANGELOG.md b/examples/utils/webpack-fluid-loader/CHANGELOG.md index 97a8fbe949c..9c8a54a3163 100644 --- a/examples/utils/webpack-fluid-loader/CHANGELOG.md +++ b/examples/utils/webpack-fluid-loader/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/webpack-fluid-loader +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/version-migration/live-schema-upgrade/CHANGELOG.md b/examples/version-migration/live-schema-upgrade/CHANGELOG.md index e7eb0ddf807..078e098cccb 100644 --- a/examples/version-migration/live-schema-upgrade/CHANGELOG.md +++ b/examples/version-migration/live-schema-upgrade/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/app-integration-live-schema-upgrade +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/version-migration/same-container/CHANGELOG.md b/examples/version-migration/same-container/CHANGELOG.md index f6feaa73ac2..c98f8c515ac 100644 --- a/examples/version-migration/same-container/CHANGELOG.md +++ b/examples/version-migration/same-container/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/version-migration-same-container +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/version-migration/separate-container/CHANGELOG.md b/examples/version-migration/separate-container/CHANGELOG.md index 33aac735d75..4591d4c4e9a 100644 --- a/examples/version-migration/separate-container/CHANGELOG.md +++ b/examples/version-migration/separate-container/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/version-migration-separate-container +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/version-migration/tree-shim/CHANGELOG.md b/examples/version-migration/tree-shim/CHANGELOG.md index 3e933c8bba9..26b7a30e2bc 100644 --- a/examples/version-migration/tree-shim/CHANGELOG.md +++ b/examples/version-migration/tree-shim/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/tree-comparison +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/view-integration/container-views/CHANGELOG.md b/examples/view-integration/container-views/CHANGELOG.md index 931099ae0fa..88d5b4dc24c 100644 --- a/examples/view-integration/container-views/CHANGELOG.md +++ b/examples/view-integration/container-views/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/app-integration-container-views +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/view-integration/external-views/CHANGELOG.md b/examples/view-integration/external-views/CHANGELOG.md index ce6edf48362..a81ecfd0753 100644 --- a/examples/view-integration/external-views/CHANGELOG.md +++ b/examples/view-integration/external-views/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/app-integration-external-views +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/examples/view-integration/view-framework-sampler/CHANGELOG.md b/examples/view-integration/view-framework-sampler/CHANGELOG.md index 2e260d21b41..4b84819142a 100644 --- a/examples/view-integration/view-framework-sampler/CHANGELOG.md +++ b/examples/view-integration/view-framework-sampler/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/view-framework-sampler +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/PropertyDDS/packages/property-changeset/CHANGELOG.md b/experimental/PropertyDDS/packages/property-changeset/CHANGELOG.md index 19d2e57e18d..d7522d20601 100644 --- a/experimental/PropertyDDS/packages/property-changeset/CHANGELOG.md +++ b/experimental/PropertyDDS/packages/property-changeset/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/property-changeset +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/PropertyDDS/packages/property-common/CHANGELOG.md b/experimental/PropertyDDS/packages/property-common/CHANGELOG.md index 30d966cb6f9..0bfad888c38 100644 --- a/experimental/PropertyDDS/packages/property-common/CHANGELOG.md +++ b/experimental/PropertyDDS/packages/property-common/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/property-common +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/PropertyDDS/packages/property-common/platform-dependent/CHANGELOG.md b/experimental/PropertyDDS/packages/property-common/platform-dependent/CHANGELOG.md index 3b2cd9cfcdf..89118952a11 100644 --- a/experimental/PropertyDDS/packages/property-common/platform-dependent/CHANGELOG.md +++ b/experimental/PropertyDDS/packages/property-common/platform-dependent/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/platform-dependent +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/PropertyDDS/packages/property-dds/CHANGELOG.md b/experimental/PropertyDDS/packages/property-dds/CHANGELOG.md index 27b137ccd34..a14a0767716 100644 --- a/experimental/PropertyDDS/packages/property-dds/CHANGELOG.md +++ b/experimental/PropertyDDS/packages/property-dds/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/property-dds +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/PropertyDDS/packages/property-properties/CHANGELOG.md b/experimental/PropertyDDS/packages/property-properties/CHANGELOG.md index b3484e86c7d..fb36e97ac64 100644 --- a/experimental/PropertyDDS/packages/property-properties/CHANGELOG.md +++ b/experimental/PropertyDDS/packages/property-properties/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/property-properties +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/dds/attributable-map/CHANGELOG.md b/experimental/dds/attributable-map/CHANGELOG.md index e42ec338892..4b7932df59d 100644 --- a/experimental/dds/attributable-map/CHANGELOG.md +++ b/experimental/dds/attributable-map/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/attributable-map +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/dds/ot/ot/CHANGELOG.md b/experimental/dds/ot/ot/CHANGELOG.md index fa0fbfb3b2c..64aac1bf741 100644 --- a/experimental/dds/ot/ot/CHANGELOG.md +++ b/experimental/dds/ot/ot/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/ot +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/dds/ot/sharejs/json1/CHANGELOG.md b/experimental/dds/ot/sharejs/json1/CHANGELOG.md index 68f3b102851..af5d5e38733 100644 --- a/experimental/dds/ot/sharejs/json1/CHANGELOG.md +++ b/experimental/dds/ot/sharejs/json1/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/sharejs-json1 +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/dds/sequence-deprecated/CHANGELOG.md b/experimental/dds/sequence-deprecated/CHANGELOG.md index 8101f8d8a18..7218e675125 100644 --- a/experimental/dds/sequence-deprecated/CHANGELOG.md +++ b/experimental/dds/sequence-deprecated/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/sequence-deprecated +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/dds/tree/CHANGELOG.md b/experimental/dds/tree/CHANGELOG.md index 958290869a2..3bbb8934c55 100644 --- a/experimental/dds/tree/CHANGELOG.md +++ b/experimental/dds/tree/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/tree +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/framework/data-objects/CHANGELOG.md b/experimental/framework/data-objects/CHANGELOG.md index d4e6cb9c74a..5c0f7f25c80 100644 --- a/experimental/framework/data-objects/CHANGELOG.md +++ b/experimental/framework/data-objects/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/data-objects +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/framework/last-edited/CHANGELOG.md b/experimental/framework/last-edited/CHANGELOG.md index a4aca10eb0e..d3e07af1dba 100644 --- a/experimental/framework/last-edited/CHANGELOG.md +++ b/experimental/framework/last-edited/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/last-edited +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/experimental/framework/tree-react-api/CHANGELOG.md b/experimental/framework/tree-react-api/CHANGELOG.md index 7bfa963395e..07f1ac0994a 100644 --- a/experimental/framework/tree-react-api/CHANGELOG.md +++ b/experimental/framework/tree-react-api/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/tree-react-api +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/common/client-utils/CHANGELOG.md b/packages/common/client-utils/CHANGELOG.md index 7ddfb3c27ed..b6be4017413 100644 --- a/packages/common/client-utils/CHANGELOG.md +++ b/packages/common/client-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/client-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/common/container-definitions/CHANGELOG.md b/packages/common/container-definitions/CHANGELOG.md index fb17ffa9636..330679af4a4 100644 --- a/packages/common/container-definitions/CHANGELOG.md +++ b/packages/common/container-definitions/CHANGELOG.md @@ -1,5 +1,23 @@ # @fluidframework/container-definitions +## 2.10.0 + +### Minor Changes + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 Dependency updates only. diff --git a/packages/common/core-interfaces/CHANGELOG.md b/packages/common/core-interfaces/CHANGELOG.md index 1663db9cf78..5934961cbc8 100644 --- a/packages/common/core-interfaces/CHANGELOG.md +++ b/packages/common/core-interfaces/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/core-interfaces +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/common/core-utils/CHANGELOG.md b/packages/common/core-utils/CHANGELOG.md index 0a23b0776da..bae2edea662 100644 --- a/packages/common/core-utils/CHANGELOG.md +++ b/packages/common/core-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/core-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/common/driver-definitions/CHANGELOG.md b/packages/common/driver-definitions/CHANGELOG.md index ff5327f79e3..80f5b1ce57a 100644 --- a/packages/common/driver-definitions/CHANGELOG.md +++ b/packages/common/driver-definitions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/driver-definitions +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/cell/CHANGELOG.md b/packages/dds/cell/CHANGELOG.md index 775a08dad35..03024332fee 100644 --- a/packages/dds/cell/CHANGELOG.md +++ b/packages/dds/cell/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/cell +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/counter/CHANGELOG.md b/packages/dds/counter/CHANGELOG.md index 0fc3ebbc6ce..62d13599f4f 100644 --- a/packages/dds/counter/CHANGELOG.md +++ b/packages/dds/counter/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/counter +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/ink/CHANGELOG.md b/packages/dds/ink/CHANGELOG.md index 3deb9b0ac26..9909e03871a 100644 --- a/packages/dds/ink/CHANGELOG.md +++ b/packages/dds/ink/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/ink +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/map/CHANGELOG.md b/packages/dds/map/CHANGELOG.md index d8f52a6f3f6..7df51e84e98 100644 --- a/packages/dds/map/CHANGELOG.md +++ b/packages/dds/map/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/map +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/matrix/CHANGELOG.md b/packages/dds/matrix/CHANGELOG.md index 692375764d0..12cd93ba186 100644 --- a/packages/dds/matrix/CHANGELOG.md +++ b/packages/dds/matrix/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/matrix +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/merge-tree/CHANGELOG.md b/packages/dds/merge-tree/CHANGELOG.md index 9c054108a40..bc109fa0b1d 100644 --- a/packages/dds/merge-tree/CHANGELOG.md +++ b/packages/dds/merge-tree/CHANGELOG.md @@ -1,5 +1,84 @@ # @fluidframework/merge-tree +## 2.10.0 + +### Minor Changes + +- Unsupported merge-tree types and related exposed internals have been removed ([#22696](https://github.com/microsoft/FluidFramework/pull/22696)) [7a032533a6](https://github.com/microsoft/FluidFramework/commit/7a032533a6ee6a6f76fe154ef65dfa33f87e5a7b) + + As part of ongoing improvements, several internal types and related APIs have been removed. These types are unnecessary for any supported scenarios and could lead to errors if used. Since directly using these types would likely result in errors, these changes are not likely to impact any Fluid Framework consumers. + + Removed types: + + - IMergeTreeTextHelper + - MergeNode + - ObliterateInfo + - PropertiesManager + - PropertiesRollback + - SegmentGroup + - SegmentGroupCollection + + In addition to removing the above types, they are no longer exposed through the following interfaces and their implementations: `ISegment`, `ReferencePosition`, and `ISerializableInterval`. + + Removed functions: + + - addProperties + - ack + + Removed properties: + + - propertyManager + - segmentGroups + + The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.2.0: + [Fluid Framework v2.2.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.2.0.md) + +- SharedString DDS annotateAdjustRange ([#22751](https://github.com/microsoft/FluidFramework/pull/22751)) [d54b9dde14](https://github.com/microsoft/FluidFramework/commit/d54b9dde14e9e0e5eb7999db8ebf6da98fdfb526) + + This update introduces a new feature to the `SharedString` DDS, allowing for the adjustment of properties over a specified range. The `annotateAdjustRange` method enables users to apply adjustments to properties within a given range, providing more flexibility and control over property modifications. + + An adjustment is a modification applied to a property value within a specified range. Adjustments can be used to increment or decrement property values dynamically. They are particularly useful in scenarios where property values need to be updated based on user interactions or other events. For example, in a rich text editor, adjustments can be used for modifying indentation levels or font sizes, where multiple users could apply differing numerical adjustments. + + ### Key Features and Use Cases: + + - **Adjustments with Constraints**: Adjustments can include optional minimum and maximum constraints to ensure the final value falls within specified bounds. This is particularly useful for maintaining consistent formatting in rich text editors. + - **Consistent Property Changes**: The feature ensures that property changes are consistent, managing both local and remote changes effectively. This is essential for collaborative rich text editing where multiple users may be making adjustments simultaneously. + - **Rich Text Formatting**: Adjustments can be used to modify text properties such as font size, indentation, or other formatting attributes dynamically based on user actions. + + ### Configuration and Compatibility Requirements: + + This feature is only available when the configuration `Fluid.Sequence.mergeTreeEnableAnnotateAdjust` is set to `true`. Additionally, all collaborating clients must have this feature enabled to use it. If any client does not have this feature enabled, it will lead to the client exiting collaboration. A future major version of Fluid will enable this feature by default. + + ### Usage Example: + + ```typescript + sharedString.annotateAdjustRange(start, end, { + key: { value: 5, min: 0, max: 10 }, + }); + ``` + +- MergeTree `Client` Legacy API Removed ([#22697](https://github.com/microsoft/FluidFramework/pull/22697)) [2aa0b5e794](https://github.com/microsoft/FluidFramework/commit/2aa0b5e7941efe52386782595f96ff847c786fc3) + + The `Client` class in the merge-tree package has been removed. Types that directly or indirectly expose the merge-tree `Client` class have also been removed. + + The removed types were not meant to be used directly, and direct usage was not supported: + + - AttributionPolicy + - IClientEvents + - IMergeTreeAttributionOptions + - SharedSegmentSequence + - SharedStringClass + + Some classes that referenced the `Client` class have been transitioned to interfaces. Direct instantiation of these classes was not supported or necessary for any supported scenario, so the change to an interface should not impact usage. This applies to the following types: + + - SequenceInterval + - SequenceEvent + - SequenceDeltaEvent + - SequenceMaintenanceEvent + + The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.4.0: + [Several MergeTree Client Legacy APIs are now deprecated](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.4.0.md#several-mergetree-client-legacy-apis-are-now-deprecated-22629) + ## 2.5.0 ### Minor Changes diff --git a/packages/dds/ordered-collection/CHANGELOG.md b/packages/dds/ordered-collection/CHANGELOG.md index 3e1724b542f..3b1c67e34b8 100644 --- a/packages/dds/ordered-collection/CHANGELOG.md +++ b/packages/dds/ordered-collection/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/ordered-collection +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/pact-map/CHANGELOG.md b/packages/dds/pact-map/CHANGELOG.md index 20a4ce7fe6e..35531ed21a8 100644 --- a/packages/dds/pact-map/CHANGELOG.md +++ b/packages/dds/pact-map/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/pact-map +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/register-collection/CHANGELOG.md b/packages/dds/register-collection/CHANGELOG.md index b8f69ae265e..6846e5f0368 100644 --- a/packages/dds/register-collection/CHANGELOG.md +++ b/packages/dds/register-collection/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/register-collection +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/sequence/CHANGELOG.md b/packages/dds/sequence/CHANGELOG.md index 7b5657c0f92..e97d2bd983c 100644 --- a/packages/dds/sequence/CHANGELOG.md +++ b/packages/dds/sequence/CHANGELOG.md @@ -1,5 +1,84 @@ # @fluidframework/sequence +## 2.10.0 + +### Minor Changes + +- Unsupported merge-tree types and related exposed internals have been removed ([#22696](https://github.com/microsoft/FluidFramework/pull/22696)) [7a032533a6](https://github.com/microsoft/FluidFramework/commit/7a032533a6ee6a6f76fe154ef65dfa33f87e5a7b) + + As part of ongoing improvements, several internal types and related APIs have been removed. These types are unnecessary for any supported scenarios and could lead to errors if used. Since directly using these types would likely result in errors, these changes are not likely to impact any Fluid Framework consumers. + + Removed types: + + - IMergeTreeTextHelper + - MergeNode + - ObliterateInfo + - PropertiesManager + - PropertiesRollback + - SegmentGroup + - SegmentGroupCollection + + In addition to removing the above types, they are no longer exposed through the following interfaces and their implementations: `ISegment`, `ReferencePosition`, and `ISerializableInterval`. + + Removed functions: + + - addProperties + - ack + + Removed properties: + + - propertyManager + - segmentGroups + + The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.2.0: + [Fluid Framework v2.2.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.2.0.md) + +- SharedString DDS annotateAdjustRange ([#22751](https://github.com/microsoft/FluidFramework/pull/22751)) [d54b9dde14](https://github.com/microsoft/FluidFramework/commit/d54b9dde14e9e0e5eb7999db8ebf6da98fdfb526) + + This update introduces a new feature to the `SharedString` DDS, allowing for the adjustment of properties over a specified range. The `annotateAdjustRange` method enables users to apply adjustments to properties within a given range, providing more flexibility and control over property modifications. + + An adjustment is a modification applied to a property value within a specified range. Adjustments can be used to increment or decrement property values dynamically. They are particularly useful in scenarios where property values need to be updated based on user interactions or other events. For example, in a rich text editor, adjustments can be used for modifying indentation levels or font sizes, where multiple users could apply differing numerical adjustments. + + ### Key Features and Use Cases: + + - **Adjustments with Constraints**: Adjustments can include optional minimum and maximum constraints to ensure the final value falls within specified bounds. This is particularly useful for maintaining consistent formatting in rich text editors. + - **Consistent Property Changes**: The feature ensures that property changes are consistent, managing both local and remote changes effectively. This is essential for collaborative rich text editing where multiple users may be making adjustments simultaneously. + - **Rich Text Formatting**: Adjustments can be used to modify text properties such as font size, indentation, or other formatting attributes dynamically based on user actions. + + ### Configuration and Compatibility Requirements: + + This feature is only available when the configuration `Fluid.Sequence.mergeTreeEnableAnnotateAdjust` is set to `true`. Additionally, all collaborating clients must have this feature enabled to use it. If any client does not have this feature enabled, it will lead to the client exiting collaboration. A future major version of Fluid will enable this feature by default. + + ### Usage Example: + + ```typescript + sharedString.annotateAdjustRange(start, end, { + key: { value: 5, min: 0, max: 10 }, + }); + ``` + +- MergeTree `Client` Legacy API Removed ([#22697](https://github.com/microsoft/FluidFramework/pull/22697)) [2aa0b5e794](https://github.com/microsoft/FluidFramework/commit/2aa0b5e7941efe52386782595f96ff847c786fc3) + + The `Client` class in the merge-tree package has been removed. Types that directly or indirectly expose the merge-tree `Client` class have also been removed. + + The removed types were not meant to be used directly, and direct usage was not supported: + + - AttributionPolicy + - IClientEvents + - IMergeTreeAttributionOptions + - SharedSegmentSequence + - SharedStringClass + + Some classes that referenced the `Client` class have been transitioned to interfaces. Direct instantiation of these classes was not supported or necessary for any supported scenario, so the change to an interface should not impact usage. This applies to the following types: + + - SequenceInterval + - SequenceEvent + - SequenceDeltaEvent + - SequenceMaintenanceEvent + + The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.4.0: + [Several MergeTree Client Legacy APIs are now deprecated](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.4.0.md#several-mergetree-client-legacy-apis-are-now-deprecated-22629) + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/shared-object-base/CHANGELOG.md b/packages/dds/shared-object-base/CHANGELOG.md index e38e56037a9..f7cfe1aa651 100644 --- a/packages/dds/shared-object-base/CHANGELOG.md +++ b/packages/dds/shared-object-base/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/shared-object-base +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/shared-summary-block/CHANGELOG.md b/packages/dds/shared-summary-block/CHANGELOG.md index 5f900b6b4ad..241b4c390a8 100644 --- a/packages/dds/shared-summary-block/CHANGELOG.md +++ b/packages/dds/shared-summary-block/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/shared-summary-block +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/task-manager/CHANGELOG.md b/packages/dds/task-manager/CHANGELOG.md index 5d440bbbf7b..92769470366 100644 --- a/packages/dds/task-manager/CHANGELOG.md +++ b/packages/dds/task-manager/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/task-manager +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/test-dds-utils/CHANGELOG.md b/packages/dds/test-dds-utils/CHANGELOG.md index 3fe1ad09176..10895500ce6 100644 --- a/packages/dds/test-dds-utils/CHANGELOG.md +++ b/packages/dds/test-dds-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-private/test-dds-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/dds/tree/CHANGELOG.md b/packages/dds/tree/CHANGELOG.md index dbad25e0a64..661fb4520a3 100644 --- a/packages/dds/tree/CHANGELOG.md +++ b/packages/dds/tree/CHANGELOG.md @@ -1,5 +1,83 @@ # @fluidframework/tree +## 2.10.0 + +### Minor Changes + +- Fix typing bug in `adaptEnum` and `enumFromStrings` ([#23077](https://github.com/microsoft/FluidFramework/pull/23077)) [cfb68388cb](https://github.com/microsoft/FluidFramework/commit/cfb68388cb6b88a0ef670633b3afa46a82c99972) + + When using the return value from [`adaptEnum`](https://fluidframework.com/docs/api/v2/tree#adaptenum-function) as a function, passing in a value who's type is a union no longer produced an incorrectly typed return value. This has been fixed. + + Additionally [`enumFromStrings`](https://fluidframework.com/docs/api/v2/tree#enumfromstrings-function) has improved the typing of its schema, ensuring the returned object's members have sufficiently specific types. + Part of this improvement was fixing the `.schema` property to be a tuple over each of the schema where it was previously a tuple of a single combined schema due to a bug. + + One side-effect of these fixes is that narrowing of the `value` field of a node typed from the `.schema` behaves slightly different, such that the node type is now a union instead of it being a single type with a `.value` that is a union. + This means that narrowing based on `.value` property narrows which node type you have, not just the value property. + This mainly matters when matching all cases like the switch statement below: + + ```typescript + const Mode = enumFromStrings(schema, ["Fun", "Bonus"]); + type Mode = TreeNodeFromImplicitAllowedTypes; + const node = new Mode.Bonus() as Mode; + + switch (node.value) { + case "Fun": { + assert.fail(); + } + case "Bonus": { + // This one runs + break; + } + default: + // Before this change, "node.value" was never here, now "node" is never. + unreachableCase(node); + } + ``` + +- SharedTree event listeners that implement `Listenable` now allow deregistration of event listeners via an `off()` function. ([#23046](https://github.com/microsoft/FluidFramework/pull/23046)) [c59225db03](https://github.com/microsoft/FluidFramework/commit/c59225db033a516ee20e459ae31567d97ce8776c) + + The ability to deregister events via a callback returned by `on()` remains the same. + Both strategies will remain supported and consumers of SharedTree events may choose which method of deregistration they prefer in a given instance. + + ```typescript + // The new behavior + function deregisterViaOff(view: TreeView): { + const listener = () => { /* ... */ }; + view.events.on("commitApplied", listener); // Register + view.events.off("commitApplied", listener); // Deregister + } + + // The existing behavior (still supported) + function deregisterViaCallback(view: TreeView): { + const off = view.events.on("commitApplied", () => { /* ... */ }); // Register + off(); // Deregister + } + ``` + +- Allow constructing recursive maps from objects ([#23070](https://github.com/microsoft/FluidFramework/pull/23070)) [0185a08c6f](https://github.com/microsoft/FluidFramework/commit/0185a08c6f8bf6e922a6467f11da049503c4d215) + + Previously only non-recursive maps could be constructed from objects. + Now all maps nodes can constructed from objects: + + ```typescript + class MapRecursive extends sf.mapRecursive("Map", [() => MapRecursive]) {} + { + type _check = ValidateRecursiveSchema; + } + // New: + const fromObject = new MapRecursive({ x: new MapRecursive() }); + // Existing: + const fromIterator = new MapRecursive([["x", new MapRecursive()]]); + const fromMap = new MapRecursive(new Map([["x", new MapRecursive()]])); + const fromNothing = new MapRecursive(); + const fromUndefined = new MapRecursive(undefined); + ``` + +- Provide more comprehensive replacement to the `commitApplied` event ([#22977](https://github.com/microsoft/FluidFramework/pull/22977)) [e51c94da32](https://github.com/microsoft/FluidFramework/commit/e51c94da3248868de3c0c7fdce568cc425204155) + + Adds a new `changed` event to the (currently alpha) `TreeBranchEvents` that replaces the `commitApplied` event on `TreeViewEvents`. + This new event is fired for both local and remote changes and maintains the existing functionality of `commitApplied` that is used for obtaining `Revertibles`. + ## 2.5.0 ### Minor Changes diff --git a/packages/drivers/debugger/CHANGELOG.md b/packages/drivers/debugger/CHANGELOG.md index fd6512c71fd..8267284f684 100644 --- a/packages/drivers/debugger/CHANGELOG.md +++ b/packages/drivers/debugger/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/debugger +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/driver-base/CHANGELOG.md b/packages/drivers/driver-base/CHANGELOG.md index f5a6c4951a8..9de44b803fd 100644 --- a/packages/drivers/driver-base/CHANGELOG.md +++ b/packages/drivers/driver-base/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/driver-base +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/driver-web-cache/CHANGELOG.md b/packages/drivers/driver-web-cache/CHANGELOG.md index 8f65ff5789f..9c4d2d4db16 100644 --- a/packages/drivers/driver-web-cache/CHANGELOG.md +++ b/packages/drivers/driver-web-cache/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/driver-web-cache +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/file-driver/CHANGELOG.md b/packages/drivers/file-driver/CHANGELOG.md index cd97b23fbac..4dbbee68e89 100644 --- a/packages/drivers/file-driver/CHANGELOG.md +++ b/packages/drivers/file-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/file-driver +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/local-driver/CHANGELOG.md b/packages/drivers/local-driver/CHANGELOG.md index 57b17ea9145..79263707df8 100644 --- a/packages/drivers/local-driver/CHANGELOG.md +++ b/packages/drivers/local-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/local-driver +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/odsp-driver-definitions/CHANGELOG.md b/packages/drivers/odsp-driver-definitions/CHANGELOG.md index 02fa6a328df..a88fb93a9ac 100644 --- a/packages/drivers/odsp-driver-definitions/CHANGELOG.md +++ b/packages/drivers/odsp-driver-definitions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/odsp-driver-definitions +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/odsp-driver/CHANGELOG.md b/packages/drivers/odsp-driver/CHANGELOG.md index 60e302a4b5d..bdd150b0d64 100644 --- a/packages/drivers/odsp-driver/CHANGELOG.md +++ b/packages/drivers/odsp-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/odsp-driver +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/odsp-urlResolver/CHANGELOG.md b/packages/drivers/odsp-urlResolver/CHANGELOG.md index 0ce8b5a9f26..8931d02c7b2 100644 --- a/packages/drivers/odsp-urlResolver/CHANGELOG.md +++ b/packages/drivers/odsp-urlResolver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/odsp-urlresolver +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/replay-driver/CHANGELOG.md b/packages/drivers/replay-driver/CHANGELOG.md index 596fa69ecd8..d6decd3d9a5 100644 --- a/packages/drivers/replay-driver/CHANGELOG.md +++ b/packages/drivers/replay-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/replay-driver +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/routerlicious-driver/CHANGELOG.md b/packages/drivers/routerlicious-driver/CHANGELOG.md index 2c175eca9f8..28b74ac9787 100644 --- a/packages/drivers/routerlicious-driver/CHANGELOG.md +++ b/packages/drivers/routerlicious-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/routerlicious-driver +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/routerlicious-urlResolver/CHANGELOG.md b/packages/drivers/routerlicious-urlResolver/CHANGELOG.md index 5952a63c411..b2a01cd6d9f 100644 --- a/packages/drivers/routerlicious-urlResolver/CHANGELOG.md +++ b/packages/drivers/routerlicious-urlResolver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/routerlicious-urlresolver +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/drivers/tinylicious-driver/CHANGELOG.md b/packages/drivers/tinylicious-driver/CHANGELOG.md index b6249816977..2b619ee9898 100644 --- a/packages/drivers/tinylicious-driver/CHANGELOG.md +++ b/packages/drivers/tinylicious-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/tinylicious-driver +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/agent-scheduler/CHANGELOG.md b/packages/framework/agent-scheduler/CHANGELOG.md index 8a20107d386..cbfec4e5472 100644 --- a/packages/framework/agent-scheduler/CHANGELOG.md +++ b/packages/framework/agent-scheduler/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/agent-scheduler +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/ai-collab/CHANGELOG.md b/packages/framework/ai-collab/CHANGELOG.md index a51ce081137..4b5705bf495 100644 --- a/packages/framework/ai-collab/CHANGELOG.md +++ b/packages/framework/ai-collab/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/ai-collab +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/aqueduct/CHANGELOG.md b/packages/framework/aqueduct/CHANGELOG.md index d6df4f781a6..599b67b62a2 100644 --- a/packages/framework/aqueduct/CHANGELOG.md +++ b/packages/framework/aqueduct/CHANGELOG.md @@ -1,5 +1,23 @@ # @fluidframework/aqueduct +## 2.10.0 + +### Minor Changes + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/attributor/CHANGELOG.md b/packages/framework/attributor/CHANGELOG.md index 10b803979f9..0965c352274 100644 --- a/packages/framework/attributor/CHANGELOG.md +++ b/packages/framework/attributor/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/attributor +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/client-logger/app-insights-logger/CHANGELOG.md b/packages/framework/client-logger/app-insights-logger/CHANGELOG.md index 3e19e2b9ba8..1c5958e3f40 100644 --- a/packages/framework/client-logger/app-insights-logger/CHANGELOG.md +++ b/packages/framework/client-logger/app-insights-logger/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/app-insights-logger +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/client-logger/fluid-telemetry/CHANGELOG.md b/packages/framework/client-logger/fluid-telemetry/CHANGELOG.md index 4337fa090db..41beed3a991 100644 --- a/packages/framework/client-logger/fluid-telemetry/CHANGELOG.md +++ b/packages/framework/client-logger/fluid-telemetry/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/fluid-telemetry +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/data-object-base/CHANGELOG.md b/packages/framework/data-object-base/CHANGELOG.md index a6f4dce9717..69152881893 100644 --- a/packages/framework/data-object-base/CHANGELOG.md +++ b/packages/framework/data-object-base/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/data-object-base +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/dds-interceptions/CHANGELOG.md b/packages/framework/dds-interceptions/CHANGELOG.md index 58471d15388..1f5246d439e 100644 --- a/packages/framework/dds-interceptions/CHANGELOG.md +++ b/packages/framework/dds-interceptions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/dds-interceptions +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/fluid-framework/CHANGELOG.md b/packages/framework/fluid-framework/CHANGELOG.md index 1a4ae74cca2..aa029415325 100644 --- a/packages/framework/fluid-framework/CHANGELOG.md +++ b/packages/framework/fluid-framework/CHANGELOG.md @@ -1,5 +1,153 @@ # fluid-framework +## 2.10.0 + +### Minor Changes + +- Unsupported merge-tree types and related exposed internals have been removed ([#22696](https://github.com/microsoft/FluidFramework/pull/22696)) [7a032533a6](https://github.com/microsoft/FluidFramework/commit/7a032533a6ee6a6f76fe154ef65dfa33f87e5a7b) + + As part of ongoing improvements, several internal types and related APIs have been removed. These types are unnecessary for any supported scenarios and could lead to errors if used. Since directly using these types would likely result in errors, these changes are not likely to impact any Fluid Framework consumers. + + Removed types: + + - IMergeTreeTextHelper + - MergeNode + - ObliterateInfo + - PropertiesManager + - PropertiesRollback + - SegmentGroup + - SegmentGroupCollection + + In addition to removing the above types, they are no longer exposed through the following interfaces and their implementations: `ISegment`, `ReferencePosition`, and `ISerializableInterval`. + + Removed functions: + + - addProperties + - ack + + Removed properties: + + - propertyManager + - segmentGroups + + The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.2.0: + [Fluid Framework v2.2.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.2.0.md) + +- Fix typing bug in `adaptEnum` and `enumFromStrings` ([#23077](https://github.com/microsoft/FluidFramework/pull/23077)) [cfb68388cb](https://github.com/microsoft/FluidFramework/commit/cfb68388cb6b88a0ef670633b3afa46a82c99972) + + When using the return value from [`adaptEnum`](https://fluidframework.com/docs/api/v2/tree#adaptenum-function) as a function, passing in a value who's type is a union no longer produced an incorrectly typed return value. This has been fixed. + + Additionally [`enumFromStrings`](https://fluidframework.com/docs/api/v2/tree#enumfromstrings-function) has improved the typing of its schema, ensuring the returned object's members have sufficiently specific types. + Part of this improvement was fixing the `.schema` property to be a tuple over each of the schema where it was previously a tuple of a single combined schema due to a bug. + + One side-effect of these fixes is that narrowing of the `value` field of a node typed from the `.schema` behaves slightly different, such that the node type is now a union instead of it being a single type with a `.value` that is a union. + This means that narrowing based on `.value` property narrows which node type you have, not just the value property. + This mainly matters when matching all cases like the switch statement below: + + ```typescript + const Mode = enumFromStrings(schema, ["Fun", "Bonus"]); + type Mode = TreeNodeFromImplicitAllowedTypes; + const node = new Mode.Bonus() as Mode; + + switch (node.value) { + case "Fun": { + assert.fail(); + } + case "Bonus": { + // This one runs + break; + } + default: + // Before this change, "node.value" was never here, now "node" is never. + unreachableCase(node); + } + ``` + +- SharedTree event listeners that implement `Listenable` now allow deregistration of event listeners via an `off()` function. ([#23046](https://github.com/microsoft/FluidFramework/pull/23046)) [c59225db03](https://github.com/microsoft/FluidFramework/commit/c59225db033a516ee20e459ae31567d97ce8776c) + + The ability to deregister events via a callback returned by `on()` remains the same. + Both strategies will remain supported and consumers of SharedTree events may choose which method of deregistration they prefer in a given instance. + + ```typescript + // The new behavior + function deregisterViaOff(view: TreeView): { + const listener = () => { /* ... */ }; + view.events.on("commitApplied", listener); // Register + view.events.off("commitApplied", listener); // Deregister + } + + // The existing behavior (still supported) + function deregisterViaCallback(view: TreeView): { + const off = view.events.on("commitApplied", () => { /* ... */ }); // Register + off(); // Deregister + } + ``` + +- Allow constructing recursive maps from objects ([#23070](https://github.com/microsoft/FluidFramework/pull/23070)) [0185a08c6f](https://github.com/microsoft/FluidFramework/commit/0185a08c6f8bf6e922a6467f11da049503c4d215) + + Previously only non-recursive maps could be constructed from objects. + Now all maps nodes can constructed from objects: + + ```typescript + class MapRecursive extends sf.mapRecursive("Map", [() => MapRecursive]) {} + { + type _check = ValidateRecursiveSchema; + } + // New: + const fromObject = new MapRecursive({ x: new MapRecursive() }); + // Existing: + const fromIterator = new MapRecursive([["x", new MapRecursive()]]); + const fromMap = new MapRecursive(new Map([["x", new MapRecursive()]])); + const fromNothing = new MapRecursive(); + const fromUndefined = new MapRecursive(undefined); + ``` + +- SharedString DDS annotateAdjustRange ([#22751](https://github.com/microsoft/FluidFramework/pull/22751)) [d54b9dde14](https://github.com/microsoft/FluidFramework/commit/d54b9dde14e9e0e5eb7999db8ebf6da98fdfb526) + + This update introduces a new feature to the `SharedString` DDS, allowing for the adjustment of properties over a specified range. The `annotateAdjustRange` method enables users to apply adjustments to properties within a given range, providing more flexibility and control over property modifications. + + An adjustment is a modification applied to a property value within a specified range. Adjustments can be used to increment or decrement property values dynamically. They are particularly useful in scenarios where property values need to be updated based on user interactions or other events. For example, in a rich text editor, adjustments can be used for modifying indentation levels or font sizes, where multiple users could apply differing numerical adjustments. + + ### Key Features and Use Cases: + + - **Adjustments with Constraints**: Adjustments can include optional minimum and maximum constraints to ensure the final value falls within specified bounds. This is particularly useful for maintaining consistent formatting in rich text editors. + - **Consistent Property Changes**: The feature ensures that property changes are consistent, managing both local and remote changes effectively. This is essential for collaborative rich text editing where multiple users may be making adjustments simultaneously. + - **Rich Text Formatting**: Adjustments can be used to modify text properties such as font size, indentation, or other formatting attributes dynamically based on user actions. + + ### Configuration and Compatibility Requirements: + + This feature is only available when the configuration `Fluid.Sequence.mergeTreeEnableAnnotateAdjust` is set to `true`. Additionally, all collaborating clients must have this feature enabled to use it. If any client does not have this feature enabled, it will lead to the client exiting collaboration. A future major version of Fluid will enable this feature by default. + + ### Usage Example: + + ```typescript + sharedString.annotateAdjustRange(start, end, { + key: { value: 5, min: 0, max: 10 }, + }); + ``` + +- MergeTree `Client` Legacy API Removed ([#22697](https://github.com/microsoft/FluidFramework/pull/22697)) [2aa0b5e794](https://github.com/microsoft/FluidFramework/commit/2aa0b5e7941efe52386782595f96ff847c786fc3) + + The `Client` class in the merge-tree package has been removed. Types that directly or indirectly expose the merge-tree `Client` class have also been removed. + + The removed types were not meant to be used directly, and direct usage was not supported: + + - AttributionPolicy + - IClientEvents + - IMergeTreeAttributionOptions + - SharedSegmentSequence + - SharedStringClass + + Some classes that referenced the `Client` class have been transitioned to interfaces. Direct instantiation of these classes was not supported or necessary for any supported scenario, so the change to an interface should not impact usage. This applies to the following types: + + - SequenceInterval + - SequenceEvent + - SequenceDeltaEvent + - SequenceMaintenanceEvent + + The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.4.0: + [Several MergeTree Client Legacy APIs are now deprecated](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.4.0.md#several-mergetree-client-legacy-apis-are-now-deprecated-22629) + ## 2.5.0 ### Minor Changes diff --git a/packages/framework/fluid-static/CHANGELOG.md b/packages/framework/fluid-static/CHANGELOG.md index c1af68c1773..e8c1d9228cc 100644 --- a/packages/framework/fluid-static/CHANGELOG.md +++ b/packages/framework/fluid-static/CHANGELOG.md @@ -1,5 +1,23 @@ # @fluidframework/fluid-static +## 2.10.0 + +### Minor Changes + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/oldest-client-observer/CHANGELOG.md b/packages/framework/oldest-client-observer/CHANGELOG.md index 45a79797c0b..db10b122865 100644 --- a/packages/framework/oldest-client-observer/CHANGELOG.md +++ b/packages/framework/oldest-client-observer/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/oldest-client-observer +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/presence/CHANGELOG.md b/packages/framework/presence/CHANGELOG.md index 21e7744207a..1fcdaa21c41 100644 --- a/packages/framework/presence/CHANGELOG.md +++ b/packages/framework/presence/CHANGELOG.md @@ -1,5 +1,37 @@ # @fluid-experimental/presence +## 2.10.0 + +### Minor Changes + +- Presence package updates ([#23021](https://github.com/microsoft/FluidFramework/pull/23021)) [365c5c0643](https://github.com/microsoft/FluidFramework/commit/365c5c06437ea27786385fe1caae8b4ddfbe7480) + + #### Package scope advanced from `@fluid-experimental` ([#23073](https://github.com/microsoft/FluidFramework/pull/23073)) + + To update existing: + + - package.json: replace `@fluid-experimental/presence` with `@fluidframework/presence` + - code imports: replace `@fluid-experimental/presence` with `@fluidframework/presence/alpha` + + #### The methods and properties of `PresenceStates` have been reorganized ([#23021](https://github.com/microsoft/FluidFramework/pull/23021)) + + The `PresenceStatesEntries` object, which represents each of the states in the `PresenceStates` schema, has been moved from directly within `PresenceStates` to under property names `props`. Only the `add` method remains directly within `PresenceStates`. The type `PresenceStatesMethods` has also been removed since it is no longer used. + + To update existing code, access your presence states from the `props` property instead of directly on the `PresenceStates` object. For example: + + ```patch + - presenceStatesWorkspace.myMap.local.get("key1"); + + presenceStatesWorkspace.props.myMap.local.get("key1"); + ``` + + #### `BroadcastControls` replace `LatestValueControls` ([#23120](https://github.com/microsoft/FluidFramework/pull/23120)) + + `BroadcastControls` maybe specified on `PresenceStates` thru new `controls` property as defaults for all value managers. + + `allowableUpdateLatencyMs` was renamed from `allowableUpdateLatency` to clarify units are milliseconds. Specifying this value currently has no effect, but use is recommended to light up as implementation comes online. + + Unsupported `forcedRefreshInterval` has been removed until implementation is closer. + ## 2.5.0 ### Minor Changes diff --git a/packages/framework/request-handler/CHANGELOG.md b/packages/framework/request-handler/CHANGELOG.md index 41fb3d5ef4c..4c0672458af 100644 --- a/packages/framework/request-handler/CHANGELOG.md +++ b/packages/framework/request-handler/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/request-handler +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/synthesize/CHANGELOG.md b/packages/framework/synthesize/CHANGELOG.md index 13c35794701..e86195b7ddf 100644 --- a/packages/framework/synthesize/CHANGELOG.md +++ b/packages/framework/synthesize/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/synthesize +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/framework/undo-redo/CHANGELOG.md b/packages/framework/undo-redo/CHANGELOG.md index aa989fa9793..a36eedd5935 100644 --- a/packages/framework/undo-redo/CHANGELOG.md +++ b/packages/framework/undo-redo/CHANGELOG.md @@ -1,5 +1,33 @@ # @fluidframework/undo-redo +## 2.10.0 + +### Minor Changes + +- SharedString DDS annotateAdjustRange ([#22751](https://github.com/microsoft/FluidFramework/pull/22751)) [d54b9dde14](https://github.com/microsoft/FluidFramework/commit/d54b9dde14e9e0e5eb7999db8ebf6da98fdfb526) + + This update introduces a new feature to the `SharedString` DDS, allowing for the adjustment of properties over a specified range. The `annotateAdjustRange` method enables users to apply adjustments to properties within a given range, providing more flexibility and control over property modifications. + + An adjustment is a modification applied to a property value within a specified range. Adjustments can be used to increment or decrement property values dynamically. They are particularly useful in scenarios where property values need to be updated based on user interactions or other events. For example, in a rich text editor, adjustments can be used for modifying indentation levels or font sizes, where multiple users could apply differing numerical adjustments. + + ### Key Features and Use Cases: + + - **Adjustments with Constraints**: Adjustments can include optional minimum and maximum constraints to ensure the final value falls within specified bounds. This is particularly useful for maintaining consistent formatting in rich text editors. + - **Consistent Property Changes**: The feature ensures that property changes are consistent, managing both local and remote changes effectively. This is essential for collaborative rich text editing where multiple users may be making adjustments simultaneously. + - **Rich Text Formatting**: Adjustments can be used to modify text properties such as font size, indentation, or other formatting attributes dynamically based on user actions. + + ### Configuration and Compatibility Requirements: + + This feature is only available when the configuration `Fluid.Sequence.mergeTreeEnableAnnotateAdjust` is set to `true`. Additionally, all collaborating clients must have this feature enabled to use it. If any client does not have this feature enabled, it will lead to the client exiting collaboration. A future major version of Fluid will enable this feature by default. + + ### Usage Example: + + ```typescript + sharedString.annotateAdjustRange(start, end, { + key: { value: 5, min: 0, max: 10 }, + }); + ``` + ## 2.5.0 Dependency updates only. diff --git a/packages/loader/container-loader/CHANGELOG.md b/packages/loader/container-loader/CHANGELOG.md index 730b599edf9..1098f722762 100644 --- a/packages/loader/container-loader/CHANGELOG.md +++ b/packages/loader/container-loader/CHANGELOG.md @@ -1,5 +1,23 @@ # @fluidframework/container-loader +## 2.10.0 + +### Minor Changes + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 Dependency updates only. diff --git a/packages/loader/driver-utils/CHANGELOG.md b/packages/loader/driver-utils/CHANGELOG.md index e4688208c82..58880b2f6da 100644 --- a/packages/loader/driver-utils/CHANGELOG.md +++ b/packages/loader/driver-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/driver-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/loader/test-loader-utils/CHANGELOG.md b/packages/loader/test-loader-utils/CHANGELOG.md index 28507877684..6d270ee2b6c 100644 --- a/packages/loader/test-loader-utils/CHANGELOG.md +++ b/packages/loader/test-loader-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-private/test-loader-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/runtime/container-runtime-definitions/CHANGELOG.md b/packages/runtime/container-runtime-definitions/CHANGELOG.md index 2e476d16d69..7f8e9dc1cb4 100644 --- a/packages/runtime/container-runtime-definitions/CHANGELOG.md +++ b/packages/runtime/container-runtime-definitions/CHANGELOG.md @@ -1,5 +1,23 @@ # @fluidframework/container-runtime-definitions +## 2.10.0 + +### Minor Changes + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 Dependency updates only. diff --git a/packages/runtime/container-runtime/CHANGELOG.md b/packages/runtime/container-runtime/CHANGELOG.md index e53b1494bbe..f7c198f4506 100644 --- a/packages/runtime/container-runtime/CHANGELOG.md +++ b/packages/runtime/container-runtime/CHANGELOG.md @@ -1,5 +1,95 @@ # @fluidframework/container-runtime +## 2.10.0 + +### Minor Changes + +- "Remove `IFluidParentContext.ensureNoDataModelChanges` and its implementations ([#22842](https://github.com/microsoft/FluidFramework/pull/22842)) [3aff19a462](https://github.com/microsoft/FluidFramework/commit/3aff19a4622a242e906286c14dfcfa6523175132) + + - `IFluidParentContext.ensureNoDataModelChanges` has been removed. [prior deprecation commit](https://github.com/microsoft/FluidFramework/commit/c9d156264bdfa211a3075bdf29cde442ecea234c) + - `MockFluidDataStoreContext.ensureNoDataModelChanges` has also been removed. + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + +- Enable Synchronous Child Datastore Creation ([#22962](https://github.com/microsoft/FluidFramework/pull/22962)) [67b5e4dca8](https://github.com/microsoft/FluidFramework/commit/67b5e4dca8ae7ae2b2878ecb289e08624f467129) + + ## Overview + + This feature introduces a new pattern for creating datastores synchronously within the Fluid Framework. It allows for the synchronous creation of a child datastore from an existing datastore, provided that the child datastore is available synchronously via the existing datastore's registry and that the child's factory supports synchronous creation. This method also ensures strong typing for the consumer. + + In this context, "child" refers specifically to the organization of factories and registries, not to any hierarchical or hosting relationship between datastores. The parent datastore does not control the runtime behaviors of the child datastore beyond its creation. + + The synchronous creation of child datastores enhances the flexibility of datastore management within the Fluid Framework. It ensures type safety and provides a different way to manage datastores within a container. However, it is important to consider the overhead associated with datastores, as they are stored, summarized, garbage collected, loaded, and referenced independently. This overhead should be justified by the scenario's requirements. + + Datastores offer increased capabilities, such as the ability to reference them via handles, allowing multiple references to exist and enabling those references to be moved, swapped, or changed. Additionally, datastores are garbage collected after becoming unreferenced, which can simplify final cleanup across clients. This is in contrast to subdirectories in a shared directory, which do not have native capabilities for referencing or garbage collection but are very low overhead to create. + + Synchronous creation relies on both the factory and the datastore to support it. This means that asynchronous operations, such as resolving handles, some browser API calls, consensus-based operations, or other asynchronous tasks, cannot be performed during the creation flow. Therefore, synchronous child datastore creation is best limited to scenarios where the existing asynchronous process cannot be used, such as when a new datastore must be created in direct response to synchronous user input. + + ## Key Benefits + + - **Synchronous Creation**: Allows for the immediate creation of child datastores without waiting for asynchronous operations. + - **Strong Typing**: Ensures type safety and better developer experience by leveraging TypeScript's type system. + + ## Use Cases + + ### Example 1: Creating a Child Datastore + + In this example, we demonstrate how to support creating a child datastore synchronously from a parent datastore. + + ```typescript + /** + * This is the parent DataObject, which is also a datastore. It has a + * synchronous method to create child datastores, which could be called + * in response to synchronous user input, like a key press. + */ + class ParentDataObject extends DataObject { + get ParentDataObject() { + return this; + } + protected override async initializingFirstTime(): Promise { + // create synchronously during initialization + this.createChild("parentCreation"); + } + + createChild(name: string): ChildDataStore { + assert( + this.context.createChildDataStore !== undefined, + "this.context.createChildDataStore", + ); + // creates a detached context with a factory who's package path is the same + // as the current datastore, but with another copy of its own type. + const { entrypoint } = this.context.createChildDataStore( + ChildDataStoreFactory.instance, + ); + const dir = this.root.createSubDirectory("children"); + dir.set(name, entrypoint.handle); + entrypoint.setProperty("childValue", name); + + return entrypoint; + } + + getChild(name: string): IFluidHandle | undefined { + const dir = this.root.getSubDirectory("children"); + return dir?.get>(name); + } + } + ``` + + For a complete example see the follow test: + https://github.com/microsoft/FluidFramework/blob/main/packages/test/local-server-tests/src/test/synchronousDataStoreCreation.spec.ts + ## 2.5.0 ### Minor Changes diff --git a/packages/runtime/datastore-definitions/CHANGELOG.md b/packages/runtime/datastore-definitions/CHANGELOG.md index 4e458dad265..7c6d0d466c2 100644 --- a/packages/runtime/datastore-definitions/CHANGELOG.md +++ b/packages/runtime/datastore-definitions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/datastore-definitions +## 2.10.0 + +Dependency updates only. + ## 2.5.0 ### Minor Changes diff --git a/packages/runtime/datastore/CHANGELOG.md b/packages/runtime/datastore/CHANGELOG.md index b053b8ba50a..18246f52753 100644 --- a/packages/runtime/datastore/CHANGELOG.md +++ b/packages/runtime/datastore/CHANGELOG.md @@ -1,5 +1,23 @@ # @fluidframework/datastore +## 2.10.0 + +### Minor Changes + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 Dependency updates only. diff --git a/packages/runtime/id-compressor/CHANGELOG.md b/packages/runtime/id-compressor/CHANGELOG.md index 28c3ebefdaf..dd8f4e99ffa 100644 --- a/packages/runtime/id-compressor/CHANGELOG.md +++ b/packages/runtime/id-compressor/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/id-compressor +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/runtime/runtime-definitions/CHANGELOG.md b/packages/runtime/runtime-definitions/CHANGELOG.md index 04c143e6cfd..55a46de5642 100644 --- a/packages/runtime/runtime-definitions/CHANGELOG.md +++ b/packages/runtime/runtime-definitions/CHANGELOG.md @@ -1,5 +1,99 @@ # @fluidframework/runtime-definitions +## 2.10.0 + +### Minor Changes + +- Changes to the batchBegin and batchEnd events on ContainerRuntime ([#22791](https://github.com/microsoft/FluidFramework/pull/22791)) [d252af539a](https://github.com/microsoft/FluidFramework/commit/d252af539afc2b44d05db35cb94b4351b75d9432) + + The 'batchBegin'/'batchEnd' events on ContainerRuntime indicate when a batch is beginning or finishing being processed. The `contents` property on the event argument `op` is not useful or relevant when reasoning over incoming changes at the batch level. Accordingly, it has been removed from the `op` event argument. + +- "Remove `IFluidParentContext.ensureNoDataModelChanges` and its implementations ([#22842](https://github.com/microsoft/FluidFramework/pull/22842)) [3aff19a462](https://github.com/microsoft/FluidFramework/commit/3aff19a4622a242e906286c14dfcfa6523175132) + + - `IFluidParentContext.ensureNoDataModelChanges` has been removed. [prior deprecation commit](https://github.com/microsoft/FluidFramework/commit/c9d156264bdfa211a3075bdf29cde442ecea234c) + - `MockFluidDataStoreContext.ensureNoDataModelChanges` has also been removed. + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + +- Enable Synchronous Child Datastore Creation ([#22962](https://github.com/microsoft/FluidFramework/pull/22962)) [67b5e4dca8](https://github.com/microsoft/FluidFramework/commit/67b5e4dca8ae7ae2b2878ecb289e08624f467129) + + ## Overview + + This feature introduces a new pattern for creating datastores synchronously within the Fluid Framework. It allows for the synchronous creation of a child datastore from an existing datastore, provided that the child datastore is available synchronously via the existing datastore's registry and that the child's factory supports synchronous creation. This method also ensures strong typing for the consumer. + + In this context, "child" refers specifically to the organization of factories and registries, not to any hierarchical or hosting relationship between datastores. The parent datastore does not control the runtime behaviors of the child datastore beyond its creation. + + The synchronous creation of child datastores enhances the flexibility of datastore management within the Fluid Framework. It ensures type safety and provides a different way to manage datastores within a container. However, it is important to consider the overhead associated with datastores, as they are stored, summarized, garbage collected, loaded, and referenced independently. This overhead should be justified by the scenario's requirements. + + Datastores offer increased capabilities, such as the ability to reference them via handles, allowing multiple references to exist and enabling those references to be moved, swapped, or changed. Additionally, datastores are garbage collected after becoming unreferenced, which can simplify final cleanup across clients. This is in contrast to subdirectories in a shared directory, which do not have native capabilities for referencing or garbage collection but are very low overhead to create. + + Synchronous creation relies on both the factory and the datastore to support it. This means that asynchronous operations, such as resolving handles, some browser API calls, consensus-based operations, or other asynchronous tasks, cannot be performed during the creation flow. Therefore, synchronous child datastore creation is best limited to scenarios where the existing asynchronous process cannot be used, such as when a new datastore must be created in direct response to synchronous user input. + + ## Key Benefits + + - **Synchronous Creation**: Allows for the immediate creation of child datastores without waiting for asynchronous operations. + - **Strong Typing**: Ensures type safety and better developer experience by leveraging TypeScript's type system. + + ## Use Cases + + ### Example 1: Creating a Child Datastore + + In this example, we demonstrate how to support creating a child datastore synchronously from a parent datastore. + + ```typescript + /** + * This is the parent DataObject, which is also a datastore. It has a + * synchronous method to create child datastores, which could be called + * in response to synchronous user input, like a key press. + */ + class ParentDataObject extends DataObject { + get ParentDataObject() { + return this; + } + protected override async initializingFirstTime(): Promise { + // create synchronously during initialization + this.createChild("parentCreation"); + } + + createChild(name: string): ChildDataStore { + assert( + this.context.createChildDataStore !== undefined, + "this.context.createChildDataStore", + ); + // creates a detached context with a factory who's package path is the same + // as the current datastore, but with another copy of its own type. + const { entrypoint } = this.context.createChildDataStore( + ChildDataStoreFactory.instance, + ); + const dir = this.root.createSubDirectory("children"); + dir.set(name, entrypoint.handle); + entrypoint.setProperty("childValue", name); + + return entrypoint; + } + + getChild(name: string): IFluidHandle | undefined { + const dir = this.root.getSubDirectory("children"); + return dir?.get>(name); + } + } + ``` + + For a complete example see the follow test: + https://github.com/microsoft/FluidFramework/blob/main/packages/test/local-server-tests/src/test/synchronousDataStoreCreation.spec.ts + ## 2.5.0 ### Minor Changes diff --git a/packages/runtime/runtime-utils/CHANGELOG.md b/packages/runtime/runtime-utils/CHANGELOG.md index df732233922..5629a895771 100644 --- a/packages/runtime/runtime-utils/CHANGELOG.md +++ b/packages/runtime/runtime-utils/CHANGELOG.md @@ -1,5 +1,27 @@ # @fluidframework/runtime-utils +## 2.10.0 + +### Minor Changes + +- New compareFluidHandle function for comparing FluidHandles ([#22997](https://github.com/microsoft/FluidFramework/pull/22997)) [8d470085fb](https://github.com/microsoft/FluidFramework/commit/8d470085fb41a84212a993a1ebbbf903fd4f16b6) + + The new `compareFluidHandle` function has been added to allow comparing handles without having to inspect their internals. + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 Dependency updates only. diff --git a/packages/runtime/test-runtime-utils/CHANGELOG.md b/packages/runtime/test-runtime-utils/CHANGELOG.md index 693e67d8144..aadd8d6d347 100644 --- a/packages/runtime/test-runtime-utils/CHANGELOG.md +++ b/packages/runtime/test-runtime-utils/CHANGELOG.md @@ -1,5 +1,28 @@ # @fluidframework/test-runtime-utils +## 2.10.0 + +### Minor Changes + +- "Remove `IFluidParentContext.ensureNoDataModelChanges` and its implementations ([#22842](https://github.com/microsoft/FluidFramework/pull/22842)) [3aff19a462](https://github.com/microsoft/FluidFramework/commit/3aff19a4622a242e906286c14dfcfa6523175132) + + - `IFluidParentContext.ensureNoDataModelChanges` has been removed. [prior deprecation commit](https://github.com/microsoft/FluidFramework/commit/c9d156264bdfa211a3075bdf29cde442ecea234c) + - `MockFluidDataStoreContext.ensureNoDataModelChanges` has also been removed. + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 ### Minor Changes diff --git a/packages/service-clients/azure-client/CHANGELOG.md b/packages/service-clients/azure-client/CHANGELOG.md index 4f7fdaa1d21..c3ab09bdb38 100644 --- a/packages/service-clients/azure-client/CHANGELOG.md +++ b/packages/service-clients/azure-client/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/azure-client +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/service-clients/end-to-end-tests/azure-client/CHANGELOG.md b/packages/service-clients/end-to-end-tests/azure-client/CHANGELOG.md index c56bf91b38f..4e3321b4354 100644 --- a/packages/service-clients/end-to-end-tests/azure-client/CHANGELOG.md +++ b/packages/service-clients/end-to-end-tests/azure-client/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/azure-end-to-end-tests +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/service-clients/end-to-end-tests/odsp-client/CHANGELOG.md b/packages/service-clients/end-to-end-tests/odsp-client/CHANGELOG.md index 356cbadf67d..dbacda8a11f 100644 --- a/packages/service-clients/end-to-end-tests/odsp-client/CHANGELOG.md +++ b/packages/service-clients/end-to-end-tests/odsp-client/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/odsp-end-to-end-tests +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/service-clients/odsp-client/CHANGELOG.md b/packages/service-clients/odsp-client/CHANGELOG.md index e44140f336f..5915cff501d 100644 --- a/packages/service-clients/odsp-client/CHANGELOG.md +++ b/packages/service-clients/odsp-client/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/odsp-client +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/service-clients/tinylicious-client/CHANGELOG.md b/packages/service-clients/tinylicious-client/CHANGELOG.md index 798cefeb1e3..67d04b6e67b 100644 --- a/packages/service-clients/tinylicious-client/CHANGELOG.md +++ b/packages/service-clients/tinylicious-client/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/tinylicious-client +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/functional-tests/CHANGELOG.md b/packages/test/functional-tests/CHANGELOG.md index 6d87748c92e..be89eb6b52b 100644 --- a/packages/test/functional-tests/CHANGELOG.md +++ b/packages/test/functional-tests/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/functional-tests +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/local-server-tests/CHANGELOG.md b/packages/test/local-server-tests/CHANGELOG.md index 75c9d52c305..b0399fa792d 100644 --- a/packages/test/local-server-tests/CHANGELOG.md +++ b/packages/test/local-server-tests/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/local-server-tests +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/mocha-test-setup/CHANGELOG.md b/packages/test/mocha-test-setup/CHANGELOG.md index 7b6187f3abf..cfde37f1dce 100644 --- a/packages/test/mocha-test-setup/CHANGELOG.md +++ b/packages/test/mocha-test-setup/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/mocha-test-setup +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/snapshots/CHANGELOG.md b/packages/test/snapshots/CHANGELOG.md index 14e0ae9ab2d..91cf82dcc21 100644 --- a/packages/test/snapshots/CHANGELOG.md +++ b/packages/test/snapshots/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/test-snapshots +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/stochastic-test-utils/CHANGELOG.md b/packages/test/stochastic-test-utils/CHANGELOG.md index 7d4213e0fcb..5324f55bc0a 100644 --- a/packages/test/stochastic-test-utils/CHANGELOG.md +++ b/packages/test/stochastic-test-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-private/stochastic-test-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/test-driver-definitions/CHANGELOG.md b/packages/test/test-driver-definitions/CHANGELOG.md index 996e35a22ce..43fb2b07764 100644 --- a/packages/test/test-driver-definitions/CHANGELOG.md +++ b/packages/test/test-driver-definitions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/test-driver-definitions +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/test-drivers/CHANGELOG.md b/packages/test/test-drivers/CHANGELOG.md index 1e506a2b48b..3bd9fd65dcf 100644 --- a/packages/test/test-drivers/CHANGELOG.md +++ b/packages/test/test-drivers/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-private/test-drivers +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/test-end-to-end-tests/CHANGELOG.md b/packages/test/test-end-to-end-tests/CHANGELOG.md index 3c3c3d1d7f9..0a611d908aa 100644 --- a/packages/test/test-end-to-end-tests/CHANGELOG.md +++ b/packages/test/test-end-to-end-tests/CHANGELOG.md @@ -1,5 +1,23 @@ # @fluid-private/test-end-to-end-tests +## 2.10.0 + +### Minor Changes + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/test-pairwise-generator/CHANGELOG.md b/packages/test/test-pairwise-generator/CHANGELOG.md index 437506df34f..e75901464da 100644 --- a/packages/test/test-pairwise-generator/CHANGELOG.md +++ b/packages/test/test-pairwise-generator/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-private/test-pairwise-generator +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/test-service-load/CHANGELOG.md b/packages/test/test-service-load/CHANGELOG.md index f49a2eb7f98..60d290a5b7b 100644 --- a/packages/test/test-service-load/CHANGELOG.md +++ b/packages/test/test-service-load/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/test-service-load +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/test-utils/CHANGELOG.md b/packages/test/test-utils/CHANGELOG.md index af691cf3045..5588ee4baff 100644 --- a/packages/test/test-utils/CHANGELOG.md +++ b/packages/test/test-utils/CHANGELOG.md @@ -1,5 +1,23 @@ # @fluidframework/test-utils +## 2.10.0 + +### Minor Changes + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 Dependency updates only. diff --git a/packages/test/test-version-utils/CHANGELOG.md b/packages/test/test-version-utils/CHANGELOG.md index 52f2b0699a2..826e57d9ba2 100644 --- a/packages/test/test-version-utils/CHANGELOG.md +++ b/packages/test/test-version-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-private/test-version-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/tools/changelog-generator-wrapper/CHANGELOG.md b/packages/tools/changelog-generator-wrapper/CHANGELOG.md index f5145542b32..f09afb782f8 100644 --- a/packages/tools/changelog-generator-wrapper/CHANGELOG.md +++ b/packages/tools/changelog-generator-wrapper/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-private/changelog-generator-wrapper +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/tools/devtools/devtools-browser-extension/CHANGELOG.md b/packages/tools/devtools/devtools-browser-extension/CHANGELOG.md index 904b8ace830..8bbbaa753ad 100644 --- a/packages/tools/devtools/devtools-browser-extension/CHANGELOG.md +++ b/packages/tools/devtools/devtools-browser-extension/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/devtools-browser-extension +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/tools/devtools/devtools-core/CHANGELOG.md b/packages/tools/devtools/devtools-core/CHANGELOG.md index 23df62c0fac..eb80d47c036 100644 --- a/packages/tools/devtools/devtools-core/CHANGELOG.md +++ b/packages/tools/devtools/devtools-core/CHANGELOG.md @@ -1,5 +1,23 @@ # @fluidframework/devtools-core +## 2.10.0 + +### Minor Changes + +- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5) + + The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`. + + `IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called. + + #### Alternatives + + - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)` + - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`. + - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`. + ## 2.5.0 Dependency updates only. diff --git a/packages/tools/devtools/devtools-example/CHANGELOG.md b/packages/tools/devtools/devtools-example/CHANGELOG.md index 3b255c55651..0e5bb3e01df 100644 --- a/packages/tools/devtools/devtools-example/CHANGELOG.md +++ b/packages/tools/devtools/devtools-example/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/devtools-example +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/tools/devtools/devtools-view/CHANGELOG.md b/packages/tools/devtools/devtools-view/CHANGELOG.md index dfd796abf16..ece9d5050db 100644 --- a/packages/tools/devtools/devtools-view/CHANGELOG.md +++ b/packages/tools/devtools/devtools-view/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/devtools-view +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/tools/devtools/devtools/CHANGELOG.md b/packages/tools/devtools/devtools/CHANGELOG.md index 36256bd181d..01b08c3a39e 100644 --- a/packages/tools/devtools/devtools/CHANGELOG.md +++ b/packages/tools/devtools/devtools/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/devtools +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/tools/fetch-tool/CHANGELOG.md b/packages/tools/fetch-tool/CHANGELOG.md index 23142b0c1e8..c6e01978b24 100644 --- a/packages/tools/fetch-tool/CHANGELOG.md +++ b/packages/tools/fetch-tool/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-tools/fetch-tool +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/tools/fluid-runner/CHANGELOG.md b/packages/tools/fluid-runner/CHANGELOG.md index 61f5d7e13bd..47b5b467966 100644 --- a/packages/tools/fluid-runner/CHANGELOG.md +++ b/packages/tools/fluid-runner/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/fluid-runner +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/tools/replay-tool/CHANGELOG.md b/packages/tools/replay-tool/CHANGELOG.md index 09f3ccdbeca..5cf932abd9c 100644 --- a/packages/tools/replay-tool/CHANGELOG.md +++ b/packages/tools/replay-tool/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/replay-tool +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/utils/odsp-doclib-utils/CHANGELOG.md b/packages/utils/odsp-doclib-utils/CHANGELOG.md index 4947b4aa86d..66307f8772e 100644 --- a/packages/utils/odsp-doclib-utils/CHANGELOG.md +++ b/packages/utils/odsp-doclib-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/odsp-doclib-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/utils/telemetry-utils/CHANGELOG.md b/packages/utils/telemetry-utils/CHANGELOG.md index f7406bcca42..13c7cd8b335 100644 --- a/packages/utils/telemetry-utils/CHANGELOG.md +++ b/packages/utils/telemetry-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/telemetry-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/packages/utils/tool-utils/CHANGELOG.md b/packages/utils/tool-utils/CHANGELOG.md index e13246adc64..6ed298a92a5 100644 --- a/packages/utils/tool-utils/CHANGELOG.md +++ b/packages/utils/tool-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/tool-utils +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only. diff --git a/tools/markdown-magic/CHANGELOG.md b/tools/markdown-magic/CHANGELOG.md index 2acc6502870..9e43aec85ee 100644 --- a/tools/markdown-magic/CHANGELOG.md +++ b/tools/markdown-magic/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-tools/markdown-magic +## 2.10.0 + +Dependency updates only. + ## 2.5.0 Dependency updates only.