diff --git a/.changeset/afraid-rice-feel.md b/.changeset/afraid-rice-feel.md deleted file mode 100644 index e30f21219f3f..000000000000 --- a/.changeset/afraid-rice-feel.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"@fluidframework/tree": minor -"fluid-framework": minor -"__section": tree ---- -TreeAlpha.create now accepts unhydrated nodes - -[TreeAlpha.create](https://fluidframework.com/docs/api/fluid-framework/treealpha-interface#create-methodsignature) now accepts [unhydrated](https://fluidframework.com/docs/api/fluid-framework/unhydrated-typealias) nodes. -`TreeAlpha.create`'s documentation has been updated to clarify that this is supported. - -Additionally `TreeAlpha.create` no longer throws a "Tree does not conform to schema" error when given a tree omitting an identifier. -Instead, the identifier behaves like it would for other ways to build unhydrated nodes: remaining unreadable until hydrated. diff --git a/.changeset/fluffy-donkeys-obey.md b/.changeset/fluffy-donkeys-obey.md deleted file mode 100644 index d3a9eb0f2199..000000000000 --- a/.changeset/fluffy-donkeys-obey.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@fluidframework/presence": minor -"__section": feature -__highlight: true ---- -Presence APIs promoted to beta - -[Presence APIs](https://fluidframework.com/docs/build/presence) are now beta and can be imported via `@fluidframework/presence/beta`. - -Note: `Notifications` are only supported via `/alpha` imports. To access notifications-only workspace support, cast `Presence` to `PresenceWithNotifications`. diff --git a/.changeset/fuzzy-eagles-drum.md b/.changeset/fuzzy-eagles-drum.md deleted file mode 100644 index 3db1040b4f2d..000000000000 --- a/.changeset/fuzzy-eagles-drum.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"fluid-framework": minor -"@fluidframework/tree": minor -"__section": tree ---- -SharedTrees's FluidClientVersion enum (alpha) has been redesigned - -Users of [FluidClientVersion](https://fluidframework.com/docs/api/fluid-framework/fluidclientversion-enum)'s `v2_1`, `v2_2`, and `v2_3` entries should specify `v2_0` instead. -This will result in no functional differences since no code currently opts into any additional functionality based on specifying those versions. -The new approach avoids listing versions which there is currently no reason to select, and thus these options have been removed. -If future work adds support to opt into features which only work starting with some of those versions, they will be re-added at that time. diff --git a/.changeset/gentle-eggs-heal.md b/.changeset/gentle-eggs-heal.md deleted file mode 100644 index 70f0c4e1a888..000000000000 --- a/.changeset/gentle-eggs-heal.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@fluid-experimental/tree-react-api": minor -"__section": feature ---- -New experimental objectIdNumber API - -A new `objectIdNumber` has been added, which is useful when you need an identifier which corresponds to an object identity. -For example: when specifying a React "key" that corresponds to a `TreeNode`. diff --git a/.changeset/lemon-words-pump.md b/.changeset/lemon-words-pump.md deleted file mode 100644 index 942842b66519..000000000000 --- a/.changeset/lemon-words-pump.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -"@fluidframework/tree": minor -"fluid-framework": minor -"__section": tree ---- -ForestTypeExpensiveDebug now validates content against schema - -When opting into using [ForestTypeExpensiveDebug](https://fluidframework.com/docs/api/fluid-framework/#foresttypeexpensivedebug-variable) using [configuredSharedTree](https://fluidframework.com/docs/api/fluid-framework/#configuredsharedtree-function), the tree is now checked against the schema on load and after every edit. -This should help detect and diagnose document corruption bugs. - -```typescript -const DebugSharedTree = configuredSharedTree({ - jsonValidator: typeboxValidator, - // Now detects corrupted documents which are out of schema. - forest: ForestTypeExpensiveDebug, -}); -``` diff --git a/.changeset/old-bees-itch.md b/.changeset/old-bees-itch.md deleted file mode 100644 index 728948ff0e4d..000000000000 --- a/.changeset/old-bees-itch.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -"fluid-framework": minor -"@fluidframework/tree": minor -"__section": tree ---- -The comparePersistedSchema function (alpha) has had its canInitialize parameter removed - -[comparePersistedSchema](https://fluidframework.com/docs/api/tree/#comparepersistedschema-function) has had its `canInitialize` parameter removed. -This parameter was only used to add to the output [SchemaCompatibilityStatus](https://fluidframework.com/docs/api/fluid-framework/schemacompatibilitystatus-interface). -If a full `SchemaCompatibilityStatus` is still desired, the `canInitialize` value can be added to the result: - -```typescript -// old -const result = comparePersistedSchema(a, b, canInitialize); -// new -const result = {...comparePersistedSchema(a, b), canInitialize}; -``` diff --git a/.changeset/public-houses-add.md b/.changeset/public-houses-add.md deleted file mode 100644 index 99368da7fcd9..000000000000 --- a/.changeset/public-houses-add.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@fluidframework/presence": minor -"__section": feature ---- -"getPresence(container: IFluidContainer): Presence" now supported - -You can now use the `getPresence` function to directly acquire `Presence`. In previous releases, you were required to -use `ExperimentalPresenceManager` in container schema and calling `getPresenceViaDataObject`, but that is no longer -required. Both `ExperimentalPresenceManager` and `getPresenceViaDataObject` are now deprecated. diff --git a/.changeset/public-snakes-fetch.md b/.changeset/public-snakes-fetch.md deleted file mode 100644 index 5240268d30b4..000000000000 --- a/.changeset/public-snakes-fetch.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -"@fluidframework/tree": minor -"fluid-framework": minor -"__section": tree ---- -TreeNodes now implicitly generate identifiers on access instead of throwing - -Accessing a defaulted [identifier](https://fluidframework.com/docs/api/fluid-framework/schemafactory-class#identifier-property) on an [Unhydrated](https://fluidframework.com/docs/api/fluid-framework/unhydrated-typealias) `TreeNode` no longer throws a usage error. -Instead, a new UUID is allocated for the identifier and returned. -These UUIDs will be more compressible than random ones, since they all come from a single sequence (starting with a random UUID). -They will not be fully compressed like the identifiers generated after hydration that leverage the document's [IIdCompressor](https://fluidframework.com/docs/api/id-compressor/iidcompressor-interface). - -```typescript -const factory = new SchemaFactory("test"); -class HasIdentifier extends schema.object("A", { id: factory.identifier }) {} -// This used to throw an error: -const id = new HasIdentifier({}).id; - -``` diff --git a/.changeset/tabaxi-fellas-inspire.md b/.changeset/tabaxi-fellas-inspire.md deleted file mode 100644 index 9e48394aca84..000000000000 --- a/.changeset/tabaxi-fellas-inspire.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -"fluid-framework": minor -"@fluidframework/tree": minor -"__section": tree ---- -New TableSchema (alpha) APIs - -A `TableSchema` utility has been added to Shared Tree for managing dynamic, tabular data. -This new `TableSchema` namespace contains APIs for creating column, row, and table [node schema](https://fluidframework.com/docs/api/fluid-framework/treenodeschema-typealias). - -Note: these APIs require the use of [SchemaFactoryAlpha](https://fluidframework.com/docs/api/fluid-framework/schemafactoryalpha-class). - -> [!WARNING] -> These APIs are in preview and are subject to change. -> Until these APIs have stabilized, it is not recommended to use them in production code. -> There may be breaking changes to these APIs and their underlying data format. -> Using these APIs in production code may result in data loss or corruption. - -#### Creating a table - -You can craft a table schema with `TableSchema.table`. -This includes providing a schema for the cells that will appear in the table: - -```typescript -class MyTable extends TableSchema.table({ - schemaFactory, - cell: schemaFactory.string, -}) {} - -const table = new MyTable({ - columns: [{ id: "column-0" }], - rows: [{ id: "row-0", cells: { "column-0": "Hello world!" } }], -}); -``` - -#### Creating a table with custom column and row schema - -To associate additional data with your rows or columns, generate custom row and column schema using `TableSchema.column` and `TableSchema.row`. -These schema can then be provided to `TableSchema.table`: - -```typescript -class MyColumn extends TableSchema.column({ - schemaFactory, - cell: Cell, - props: schemaFactory.object("TableColumnProps", { - label: schemaFactory.string, - }), -}) {} - -class MyRow extends TableSchema.row({ - schemaFactory, - cell: Cell, -}) {} - -class MyTable extends TableSchema.table({ - schemaFactory, - cell: Cell, - column: MyColumn, - row: MyRow, -}) {} - -const table = new MyTable({ - columns: [ - new MyColumn({ props: { label: "Entry" } }), - new MyColumn({ props: { label: "Date" } }), - new MyColumn({ props: { label: "Amount" } }), - ], - rows: [], -}); -``` - -#### Interacting with the table - -Table trees created using `TableSchema` offer various APIs to make working with tabular data easy. -These include: - -- Insertion and removal of columns, rows, and cells. -- Cell access by column/row. - -```typescript -// Create an empty table -const table = MyTable.empty(); - -const column0 = new MyColumn({ - props: { label: "Column 0" }, -}); - -// Append a column to the end of the table. -table.insertColumn({ - column: column0, -}); - -const rows = [ - new MyRow({ cells: { } }), - new MyRow({ cells: { } }), -]; - -// Insert rows at the beginning of the table. -table.insertRows({ - index: 0, - rows, -}); - -// Set cell at row 0, column 0. -table.setCell({ - key: { - column: column0, - row: rows[0], - }, - cell: "Hello", -}); - -// Set cell at row 1, column 0. -table.setCell({ - key: { - column: column0, - row: rows[1], - }, - cell: "World", -}); - -// Remove the first row. -// Note: this will also remove the row's cell. -table.removeRow(rows[0]); - -// Remove the column. -// Note: this will *not* remove the remaining cell under this column. -table.removeColumn(column0); -``` - -#### Listening for changes - -Listening for changes to table trees behaves just like it would for any other nodes in a Shared Tree (see [here](https://fluidframework.com/docs/data-structures/tree/events) for more details). - -The most straightforward option is to listen for any changes to the table node and its descendants. -For example: - -```typescript -class Cell extends schemaFactory.object("TableCell", { - value: schemaFactory.string, -}) {} - -class Table extends TableSchema.table({ - schemaFactory, - cell: Cell, -}) {} - -const table = new Table({ - columns: [{ id: "column-0" }], - rows: [{ id: "row-0", cells: {} }], -}); - -// Listen for any changes to the table and its children. -// The "treeChanged" event will fire when the `table` node or any of its descendants change. -Tree.on(table, "treeChanged", () => { - // Respond to the change. -}); -``` - -If you need more granular eventing to meet your performance needs, that is possible as well. -For example, if you wish to know when the table's list of rows changes, you could do the following: - -```typescript -class Cell extends schemaFactory.object("TableCell", { - value: schemaFactory.string, -}) {} - -class Table extends TableSchema.table({ - schemaFactory, - cell: Cell, -}) {} - -const table = new Table({ - columns: [{ id: "column-0" }], - rows: [{ id: "row-0", cells: {} }], -}); - -// Listen for any changes to the list of rows. -// The "nodeChanged" event will fire only when the `rows` node itself changes (i.e., its own properties change). -// In this case, the event will fire when a row is added or removed, or the order of the list is changed. -// But it won't fire when a row's properties change, or when the row's cells change, etc. -Tree.on(table.rows, "nodeChanged", () => { - // Respond to the change. -}); -``` - -#### Limitations - -##### Orphaned cells - -Cells in the table may become "orphaned." -That is, it is possible to enter a state where one or more rows contain cells with no corresponding column. -To reduce the likelihood of this, you can manually remove corresponding cells when removing columns. - -For example: - -```typescript -// Remove column1 and all of its cells. -// The "transaction" method will ensure that all changes are applied atomically. -Tree.runTransaction(table, () => { - // Remove column1 - table.removeColumn(column1); - - // Remove the cell at column1 for each row. - for (const row of table.rows) { - table.removeCell({ - column: column1, - row, - }); - } -}); -``` - -> [!WARNING] -> Note that even with the above precaution, it is possible to enter such an orphaned cell state via the merging of edits. -> For example: one client might add a row while another concurrently removes a column, orphaning the cell where the column and row intersected. diff --git a/.changeset/tough-parts-kick.md b/.changeset/tough-parts-kick.md deleted file mode 100644 index 19be9103a3ba..000000000000 --- a/.changeset/tough-parts-kick.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@fluidframework/tree": minor -"__section": feature ---- -New TreeAlpha.key2 API - -The `TreeAlpha.key2` method is meant to eventually replace the public `Tree.key` method. -This new method returns `undefined` in the case where there is a root node. diff --git a/.changeset/tricky-shrimps-hunt.md b/.changeset/tricky-shrimps-hunt.md deleted file mode 100644 index abcc7a8d07cd..000000000000 --- a/.changeset/tricky-shrimps-hunt.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -"fluid-framework": minor -"@fluidframework/tree": minor -"__section": feature ---- -New TreeAlpha identifier APIs for converting, retrieving, and generating identifiers - -#### TreeAlpha.identifier - -You can retrieve the long identifier with `TreeAlpha.identifier(node)`, where `node` is a `TreeNode`. The long identifier is a stable, compressible UUID generated by the tree. -In cases where the node does not yet have an identifier assigned, this will return `undefined`. -These cases include: -- The node does not contain an identifier field. -- The node is a non-hydrated node with a user provided identifier. Note that if it is a non-hydrated node without an identifier provided, it will throw an error. - -#### TreeAlpha.identifier.shorten - -You can shorten a long identifier with `TreeAlpha.identifier.shorten(branch, identifier)`, where `branch` is a `TreeBranch`, and `identifier` is a `string`. -If the method returns a valid short identifier, this identifier can be passed into `TreeAlpha.identifier.lengthen` -to get the original valid long `identifier` back. -In the cases where it's not possible to shorten the `identifier`, it will return `undefined`. -These cases include: - -- A compressible long identifier, but it is unrecognized by the tree that the node belongs to. This can occur if the identifier is not generated from the tree. -- An identifier which is not compressible by the tree. This can occur if the node's identifier was a user provided string. - -#### TreeAlpha.identifier.lengthen - -You can lengthen a short identifier with `TreeAlpha.identifier.lengthen(branch, identifier)`, where `branch` is a `TreeBranch`, and `identifier` is a `number`. -If the method returns a valid long identifier, this identifier can be passed into `TreeAlpha.identifier.shorten` to get the original `identifier` back. -In the cases where it's not possible to lengthen the `identifier`, this method will throw an error. -These cases include: - -- An unrecognized short identifier. This can occur if the identifier is not generated from the tree. - -#### TreeAlpha.identifier.getShort - -You can retrieve the short identifier from a node with `TreeAlpha.identifier.getShort(node)` where `node` is a `TreeNode`. -If it is not possible to retrieve the short identifier, it will return `undefined` - -##### Example for a node with valid identifier - -```typescript -// This will retrieve the short identifier from the node. -const shortIdentifier = TreeAlpha.identifier.getShort(nodeWithValidIdentifier) -``` - -##### Examples for when you get undefined - -In cases where the node provided does not contain an identifier that is recognized or compressible by the tree that the node belongs to, this method will return undefined. -This will occur in the following cases: - -- The node is an non-hydrated node with a user provided identifier. Note that if it is an non-hydrated node without an identifier provided, it will throw an error. -- The node does not contain an identifier field. -- The node contains a compressible long identifier, but it is unrecognized by the tree that the node belongs to. This can occur if the identifier is not generated from the tree. -- The node contains an identifier which is not compressible by its id compressor. This can occur if the node's identifier was a user provided string. - -```typescript -// This will return undefined -const shortIdentifier = TreeAlpha.identifier.getShort(node) -``` - -#### TreeAlpha.identifier.create - -You can create a long identifier from a branch with `TreeAlpha.identifier.create(branch)` where `branch` is a `TreeBranch`. - -```typescript -const createdIdentifier = TreeAlpha.identifier.create(branch) -``` diff --git a/azure/packages/azure-local-service/CHANGELOG.md b/azure/packages/azure-local-service/CHANGELOG.md index 468b9657ce64..ab0fb97104f1 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/azure/packages/azure-service-utils/CHANGELOG.md b/azure/packages/azure-service-utils/CHANGELOG.md index f74f29992d85..bd0d07d3925c 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/ai-collab/CHANGELOG.md b/examples/apps/ai-collab/CHANGELOG.md index 4263302d83e0..c2b751b24ee8 100644 --- a/examples/apps/ai-collab/CHANGELOG.md +++ b/examples/apps/ai-collab/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/ai-collab +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/attributable-map/CHANGELOG.md b/examples/apps/attributable-map/CHANGELOG.md index d7e245dc4973..4936eb16cb60 100644 --- a/examples/apps/attributable-map/CHANGELOG.md +++ b/examples/apps/attributable-map/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/attributable-map +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/blobs/CHANGELOG.md b/examples/apps/blobs/CHANGELOG.md index 7be84c88a7be..274d39c1227f 100644 --- a/examples/apps/blobs/CHANGELOG.md +++ b/examples/apps/blobs/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/blobs +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/collaborative-textarea/CHANGELOG.md b/examples/apps/collaborative-textarea/CHANGELOG.md index 02f712ba91af..390c5bc746ec 100644 --- a/examples/apps/collaborative-textarea/CHANGELOG.md +++ b/examples/apps/collaborative-textarea/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/collaborative-textarea +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/contact-collection/CHANGELOG.md b/examples/apps/contact-collection/CHANGELOG.md index 34fd2bdddbba..37c899803bff 100644 --- a/examples/apps/contact-collection/CHANGELOG.md +++ b/examples/apps/contact-collection/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/contact-collection +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/data-object-grid/CHANGELOG.md b/examples/apps/data-object-grid/CHANGELOG.md index 052e70d60634..0b2c8dd9040d 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/presence-tracker/CHANGELOG.md b/examples/apps/presence-tracker/CHANGELOG.md index 1aaf9e3e4215..52d8c962fc50 100644 --- a/examples/apps/presence-tracker/CHANGELOG.md +++ b/examples/apps/presence-tracker/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/presence-tracker +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/staging/CHANGELOG.md b/examples/apps/staging/CHANGELOG.md index 699bd6c32fde..a16e59b9c14d 100644 --- a/examples/apps/staging/CHANGELOG.md +++ b/examples/apps/staging/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/staging +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/task-selection/CHANGELOG.md b/examples/apps/task-selection/CHANGELOG.md index e9c706859054..30d7f12e866a 100644 --- a/examples/apps/task-selection/CHANGELOG.md +++ b/examples/apps/task-selection/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/task-selection +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/tree-cli-app/CHANGELOG.md b/examples/apps/tree-cli-app/CHANGELOG.md index f5bf27adca92..f257776bc049 100644 --- a/examples/apps/tree-cli-app/CHANGELOG.md +++ b/examples/apps/tree-cli-app/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/tree-cli-app +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/apps/tree-comparison/CHANGELOG.md b/examples/apps/tree-comparison/CHANGELOG.md index b698e3840737..eb854b26b027 100644 --- a/examples/apps/tree-comparison/CHANGELOG.md +++ b/examples/apps/tree-comparison/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/tree-comparison +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/benchmarks/bubblebench/baseline/CHANGELOG.md b/examples/benchmarks/bubblebench/baseline/CHANGELOG.md index 04e85d2366fe..bc2c1390b657 100644 --- a/examples/benchmarks/bubblebench/baseline/CHANGELOG.md +++ b/examples/benchmarks/bubblebench/baseline/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/bubblebench-baseline +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/benchmarks/bubblebench/common/CHANGELOG.md b/examples/benchmarks/bubblebench/common/CHANGELOG.md index 7884b9245c66..4c78387a813d 100644 --- a/examples/benchmarks/bubblebench/common/CHANGELOG.md +++ b/examples/benchmarks/bubblebench/common/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/bubblebench-common +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/benchmarks/bubblebench/experimental-tree/CHANGELOG.md b/examples/benchmarks/bubblebench/experimental-tree/CHANGELOG.md index 5ad3be32970d..8b843a7ca36e 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/benchmarks/bubblebench/ot/CHANGELOG.md b/examples/benchmarks/bubblebench/ot/CHANGELOG.md index dd2fe7a64ed2..bcce5e3038ee 100644 --- a/examples/benchmarks/bubblebench/ot/CHANGELOG.md +++ b/examples/benchmarks/bubblebench/ot/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/bubblebench-ot +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/benchmarks/bubblebench/shared-tree/CHANGELOG.md b/examples/benchmarks/bubblebench/shared-tree/CHANGELOG.md index 447de9d8e1f5..b33fd056ec1c 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/benchmarks/odspsnapshotfetch-perftestapp/CHANGELOG.md b/examples/benchmarks/odspsnapshotfetch-perftestapp/CHANGELOG.md index 56dca75f6115..18335f3179c3 100644 --- a/examples/benchmarks/odspsnapshotfetch-perftestapp/CHANGELOG.md +++ b/examples/benchmarks/odspsnapshotfetch-perftestapp/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/odspsnapshotfetch-perftestapp +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/benchmarks/tablebench/CHANGELOG.md b/examples/benchmarks/tablebench/CHANGELOG.md index bd37e78e6670..fd2eb3d727a1 100644 --- a/examples/benchmarks/tablebench/CHANGELOG.md +++ b/examples/benchmarks/tablebench/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/tablebench +## 2.41.0 + +Dependency updates only. + ## 2.40.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 69ee642607a7..1cc041c0476d 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/canvas/CHANGELOG.md b/examples/data-objects/canvas/CHANGELOG.md index 45270c3efea7..134f7ee40579 100644 --- a/examples/data-objects/canvas/CHANGELOG.md +++ b/examples/data-objects/canvas/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/canvas +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/clicker/CHANGELOG.md b/examples/data-objects/clicker/CHANGELOG.md index 3db41e6b2c34..ff9e6a9bf96a 100644 --- a/examples/data-objects/clicker/CHANGELOG.md +++ b/examples/data-objects/clicker/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/clicker +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/codemirror/CHANGELOG.md b/examples/data-objects/codemirror/CHANGELOG.md index c4faa9a38ac7..3dbadff67206 100644 --- a/examples/data-objects/codemirror/CHANGELOG.md +++ b/examples/data-objects/codemirror/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/codemirror +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/diceroller/CHANGELOG.md b/examples/data-objects/diceroller/CHANGELOG.md index 3aa3c863ad23..b0bc6e2eebe0 100644 --- a/examples/data-objects/diceroller/CHANGELOG.md +++ b/examples/data-objects/diceroller/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/diceroller +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/inventory-app/CHANGELOG.md b/examples/data-objects/inventory-app/CHANGELOG.md index e9ba55cfdc97..24515bf0f733 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/monaco/CHANGELOG.md b/examples/data-objects/monaco/CHANGELOG.md index 57a2acec882e..8e842e1f3408 100644 --- a/examples/data-objects/monaco/CHANGELOG.md +++ b/examples/data-objects/monaco/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/monaco +## 2.41.0 + +Dependency updates only. + ## 2.40.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 82bd5fd18497..ff2464fad585 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.41.0 + +Dependency updates only. + ## 2.40.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 c373f60951ae..21ed2ec8ea22 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/multiview/container/CHANGELOG.md b/examples/data-objects/multiview/container/CHANGELOG.md index 21a8057f5add..3b3fe7d34b03 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.41.0 + +Dependency updates only. + ## 2.40.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 bd51d3a5e99c..bfe497f93fb0 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/multiview/interface/CHANGELOG.md b/examples/data-objects/multiview/interface/CHANGELOG.md index 5b146f9c6829..7b498710d27d 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.41.0 + +Dependency updates only. + ## 2.40.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 be3a0af635ec..71ceef63752e 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.41.0 + +Dependency updates only. + ## 2.40.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 5ca5daccb407..4af3c2b7938f 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.41.0 + +Dependency updates only. + ## 2.40.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 16312ac369c6..d7241151a4cd 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/prosemirror/CHANGELOG.md b/examples/data-objects/prosemirror/CHANGELOG.md index 2b5a8f4d2a63..cdb20bba39e7 100644 --- a/examples/data-objects/prosemirror/CHANGELOG.md +++ b/examples/data-objects/prosemirror/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/prosemirror +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/smde/CHANGELOG.md b/examples/data-objects/smde/CHANGELOG.md index 468c5210bcfb..5ec4379ce348 100644 --- a/examples/data-objects/smde/CHANGELOG.md +++ b/examples/data-objects/smde/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/smde +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/table-document/CHANGELOG.md b/examples/data-objects/table-document/CHANGELOG.md index 24d18d401247..d32bf4295a16 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/table-tree/CHANGELOG.md b/examples/data-objects/table-tree/CHANGELOG.md index a5e1045e6a51..dc86c598a01e 100644 --- a/examples/data-objects/table-tree/CHANGELOG.md +++ b/examples/data-objects/table-tree/CHANGELOG.md @@ -1,3 +1,7 @@ # @fluid-example/table-tree +## 2.41.0 + +Dependency updates only. + ## 2.40.0 diff --git a/examples/data-objects/todo/CHANGELOG.md b/examples/data-objects/todo/CHANGELOG.md index ed091782d32b..662aa13ed252 100644 --- a/examples/data-objects/todo/CHANGELOG.md +++ b/examples/data-objects/todo/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/todo +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/data-objects/webflow/CHANGELOG.md b/examples/data-objects/webflow/CHANGELOG.md index 9348cf942fb5..dc8a670dc908 100644 --- a/examples/data-objects/webflow/CHANGELOG.md +++ b/examples/data-objects/webflow/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/webflow +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/external-data/CHANGELOG.md b/examples/external-data/CHANGELOG.md index fcb16e2b898c..79fc1cc488ec 100644 --- a/examples/external-data/CHANGELOG.md +++ b/examples/external-data/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/app-integration-external-data +## 2.41.0 + +Dependency updates only. + ## 2.40.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 18135536aeb5..52f22967d896 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.41.0 + +Dependency updates only. + ## 2.40.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 33889f1126de..e60b0dbf7286 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/utils/bundle-size-tests/CHANGELOG.md b/examples/utils/bundle-size-tests/CHANGELOG.md index 90642c046bea..de68d9a36ef7 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/utils/example-utils/CHANGELOG.md b/examples/utils/example-utils/CHANGELOG.md index 1e989f8702e7..f31dd02efe96 100644 --- a/examples/utils/example-utils/CHANGELOG.md +++ b/examples/utils/example-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/example-utils +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/utils/import-testing/CHANGELOG.md b/examples/utils/import-testing/CHANGELOG.md index c0dca76b8e32..c6465bcb019f 100644 --- a/examples/utils/import-testing/CHANGELOG.md +++ b/examples/utils/import-testing/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/import-testing +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/utils/migration-tools/CHANGELOG.md b/examples/utils/migration-tools/CHANGELOG.md index 101add7bb697..e03b270e3e16 100644 --- a/examples/utils/migration-tools/CHANGELOG.md +++ b/examples/utils/migration-tools/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-example/migration-tools +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/utils/webpack-fluid-loader/CHANGELOG.md b/examples/utils/webpack-fluid-loader/CHANGELOG.md index 14203046a0c2..fe5d132eb0bc 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.41.0 + +Dependency updates only. + ## 2.40.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 639af3556743..aaf3b51ae9f6 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/version-migration/same-container/CHANGELOG.md b/examples/version-migration/same-container/CHANGELOG.md index ec4496679ad5..918545e97134 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/version-migration/separate-container/CHANGELOG.md b/examples/version-migration/separate-container/CHANGELOG.md index 2fed90ca84a1..dec8074aa410 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/version-migration/tree-shim/CHANGELOG.md b/examples/version-migration/tree-shim/CHANGELOG.md index 58f10cdad9ca..4079941ce7c4 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/view-integration/container-views/CHANGELOG.md b/examples/view-integration/container-views/CHANGELOG.md index 0e1333637e1e..0db2187b5630 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/examples/view-integration/external-views/CHANGELOG.md b/examples/view-integration/external-views/CHANGELOG.md index a0328e4437c5..da98f9aa281d 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.41.0 + +Dependency updates only. + ## 2.40.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 5aa062bcfdd9..b6b2b30bf6aa 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/PropertyDDS/packages/property-changeset/CHANGELOG.md b/experimental/PropertyDDS/packages/property-changeset/CHANGELOG.md index 959c1cdb0fcb..dbf850d107ea 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/PropertyDDS/packages/property-common/CHANGELOG.md b/experimental/PropertyDDS/packages/property-common/CHANGELOG.md index 585f03de817a..1956e1a42ee1 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.41.0 + +Dependency updates only. + ## 2.40.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 29ca71a18094..154884049fe7 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/PropertyDDS/packages/property-dds/CHANGELOG.md b/experimental/PropertyDDS/packages/property-dds/CHANGELOG.md index d478ea9d1140..3df0b046865e 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/PropertyDDS/packages/property-properties/CHANGELOG.md b/experimental/PropertyDDS/packages/property-properties/CHANGELOG.md index 757e5f0b424a..d0731aa31f6e 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/dds/attributable-map/CHANGELOG.md b/experimental/dds/attributable-map/CHANGELOG.md index f793e81e648b..c825e7f8252f 100644 --- a/experimental/dds/attributable-map/CHANGELOG.md +++ b/experimental/dds/attributable-map/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/attributable-map +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/dds/ot/ot/CHANGELOG.md b/experimental/dds/ot/ot/CHANGELOG.md index 25f2a093c961..e162eab11df4 100644 --- a/experimental/dds/ot/ot/CHANGELOG.md +++ b/experimental/dds/ot/ot/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/ot +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/dds/ot/sharejs/json1/CHANGELOG.md b/experimental/dds/ot/sharejs/json1/CHANGELOG.md index c296f254250b..10f4bb557d1b 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/dds/sequence-deprecated/CHANGELOG.md b/experimental/dds/sequence-deprecated/CHANGELOG.md index 20ee0c1f196e..d95e42a1cb35 100644 --- a/experimental/dds/sequence-deprecated/CHANGELOG.md +++ b/experimental/dds/sequence-deprecated/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/sequence-deprecated +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/dds/tree/CHANGELOG.md b/experimental/dds/tree/CHANGELOG.md index 8a40676eb250..e2c671af1e53 100644 --- a/experimental/dds/tree/CHANGELOG.md +++ b/experimental/dds/tree/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/tree +## 2.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/experimental/framework/data-objects/CHANGELOG.md b/experimental/framework/data-objects/CHANGELOG.md index 1147c77d9637..d5bb056e5d29 100644 --- a/experimental/framework/data-objects/CHANGELOG.md +++ b/experimental/framework/data-objects/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/data-objects +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/framework/last-edited/CHANGELOG.md b/experimental/framework/last-edited/CHANGELOG.md index 2bd68e6f653f..37266b09aeef 100644 --- a/experimental/framework/last-edited/CHANGELOG.md +++ b/experimental/framework/last-edited/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/last-edited +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/experimental/framework/tree-react-api/CHANGELOG.md b/experimental/framework/tree-react-api/CHANGELOG.md index 5950114dc52c..520c8a35f657 100644 --- a/experimental/framework/tree-react-api/CHANGELOG.md +++ b/experimental/framework/tree-react-api/CHANGELOG.md @@ -1,5 +1,14 @@ # @fluid-experimental/tree-react-api +## 2.41.0 + +### Minor Changes + +- New experimental objectIdNumber API ([#21115](https://github.com/microsoft/FluidFramework/pull/21115)) [df2f139be8](https://github.com/microsoft/FluidFramework/commit/df2f139be8e8145d5eea313814cd6d35018cacee) + + A new `objectIdNumber` has been added, which is useful when you need an identifier which corresponds to an object identity. + For example: when specifying a React "key" that corresponds to a `TreeNode`. + ## 2.40.0 Dependency updates only. diff --git a/packages/common/client-utils/CHANGELOG.md b/packages/common/client-utils/CHANGELOG.md index 676b3f146424..cbd21f094084 100644 --- a/packages/common/client-utils/CHANGELOG.md +++ b/packages/common/client-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/client-utils +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/common/container-definitions/CHANGELOG.md b/packages/common/container-definitions/CHANGELOG.md index bc2aa86a230a..d7eb6231063a 100644 --- a/packages/common/container-definitions/CHANGELOG.md +++ b/packages/common/container-definitions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/container-definitions +## 2.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/common/core-interfaces/CHANGELOG.md b/packages/common/core-interfaces/CHANGELOG.md index 6ba0132c8a53..a713009a88f7 100644 --- a/packages/common/core-interfaces/CHANGELOG.md +++ b/packages/common/core-interfaces/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/core-interfaces +## 2.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/common/core-utils/CHANGELOG.md b/packages/common/core-utils/CHANGELOG.md index efbdb5e0285e..f2590465055d 100644 --- a/packages/common/core-utils/CHANGELOG.md +++ b/packages/common/core-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/core-utils +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/common/driver-definitions/CHANGELOG.md b/packages/common/driver-definitions/CHANGELOG.md index e467ef0f3b58..3558957dd25e 100644 --- a/packages/common/driver-definitions/CHANGELOG.md +++ b/packages/common/driver-definitions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/driver-definitions +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/cell/CHANGELOG.md b/packages/dds/cell/CHANGELOG.md index 7428d6e32815..2c8ecf8df62b 100644 --- a/packages/dds/cell/CHANGELOG.md +++ b/packages/dds/cell/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/cell +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/counter/CHANGELOG.md b/packages/dds/counter/CHANGELOG.md index fb998c5b5427..3fd14a08d92d 100644 --- a/packages/dds/counter/CHANGELOG.md +++ b/packages/dds/counter/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/counter +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/ink/CHANGELOG.md b/packages/dds/ink/CHANGELOG.md index 622f1c86770b..e3a5eda6a93a 100644 --- a/packages/dds/ink/CHANGELOG.md +++ b/packages/dds/ink/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/ink +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/legacy-dds/CHANGELOG.md b/packages/dds/legacy-dds/CHANGELOG.md new file mode 100644 index 000000000000..d359c8755523 --- /dev/null +++ b/packages/dds/legacy-dds/CHANGELOG.md @@ -0,0 +1,5 @@ +# @fluid-private/legacy-dds + +## 2.41.0 + +New package. diff --git a/packages/dds/map/CHANGELOG.md b/packages/dds/map/CHANGELOG.md index 3476e52e0e5b..2336e29ec89c 100644 --- a/packages/dds/map/CHANGELOG.md +++ b/packages/dds/map/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/map +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/matrix/CHANGELOG.md b/packages/dds/matrix/CHANGELOG.md index ed6eddf9a155..7251b8603cd3 100644 --- a/packages/dds/matrix/CHANGELOG.md +++ b/packages/dds/matrix/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/matrix +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/merge-tree/CHANGELOG.md b/packages/dds/merge-tree/CHANGELOG.md index 318d820ca0ff..520bf089272d 100644 --- a/packages/dds/merge-tree/CHANGELOG.md +++ b/packages/dds/merge-tree/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/merge-tree +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/ordered-collection/CHANGELOG.md b/packages/dds/ordered-collection/CHANGELOG.md index 0bef1273fe25..abdba53e1854 100644 --- a/packages/dds/ordered-collection/CHANGELOG.md +++ b/packages/dds/ordered-collection/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/ordered-collection +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/pact-map/CHANGELOG.md b/packages/dds/pact-map/CHANGELOG.md index e732a6c443da..6d8ffc1de884 100644 --- a/packages/dds/pact-map/CHANGELOG.md +++ b/packages/dds/pact-map/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/pact-map +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/register-collection/CHANGELOG.md b/packages/dds/register-collection/CHANGELOG.md index ee6289bbbe5f..c19ade82a0d2 100644 --- a/packages/dds/register-collection/CHANGELOG.md +++ b/packages/dds/register-collection/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/register-collection +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/sequence/CHANGELOG.md b/packages/dds/sequence/CHANGELOG.md index 2e6b1ef8305a..baaaa916ca81 100644 --- a/packages/dds/sequence/CHANGELOG.md +++ b/packages/dds/sequence/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/sequence +## 2.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/dds/shared-object-base/CHANGELOG.md b/packages/dds/shared-object-base/CHANGELOG.md index e921e4df0583..bcf12885aab7 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.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/dds/shared-summary-block/CHANGELOG.md b/packages/dds/shared-summary-block/CHANGELOG.md index 1e409274ea0c..bdc7d2355d12 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/task-manager/CHANGELOG.md b/packages/dds/task-manager/CHANGELOG.md index f704c7eed37d..e0fe8c38e121 100644 --- a/packages/dds/task-manager/CHANGELOG.md +++ b/packages/dds/task-manager/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/task-manager +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/dds/test-dds-utils/CHANGELOG.md b/packages/dds/test-dds-utils/CHANGELOG.md index 2c3818504879..dc079b16ebd9 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.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/dds/tree/CHANGELOG.md b/packages/dds/tree/CHANGELOG.md index a198788823bc..17d3a5d5a7a1 100644 --- a/packages/dds/tree/CHANGELOG.md +++ b/packages/dds/tree/CHANGELOG.md @@ -1,5 +1,346 @@ # @fluidframework/tree +## 2.41.0 + +### Minor Changes + +- TreeAlpha.create now accepts unhydrated nodes ([#24629](https://github.com/microsoft/FluidFramework/pull/24629)) [e63af87aeb](https://github.com/microsoft/FluidFramework/commit/e63af87aeb7ece1ff0969027904c3b18f122d2d1) + + [TreeAlpha.create](https://fluidframework.com/docs/api/fluid-framework/treealpha-interface#create-methodsignature) now accepts [unhydrated](https://fluidframework.com/docs/api/fluid-framework/unhydrated-typealias) nodes. + `TreeAlpha.create`'s documentation has been updated to clarify that this is supported. + + Additionally `TreeAlpha.create` no longer throws a "Tree does not conform to schema" error when given a tree omitting an identifier. + Instead, the identifier behaves like it would for other ways to build unhydrated nodes: remaining unreadable until hydrated. + +- SharedTrees's FluidClientVersion enum (alpha) has been redesigned ([#24638](https://github.com/microsoft/FluidFramework/pull/24638)) [5f3b9d7b7d](https://github.com/microsoft/FluidFramework/commit/5f3b9d7b7d12307d89cbd4b88f5e2d6e1833680d) + + Users of [FluidClientVersion](https://fluidframework.com/docs/api/fluid-framework/fluidclientversion-enum)'s `v2_1`, `v2_2`, and `v2_3` entries should specify `v2_0` instead. + This will result in no functional differences since no code currently opts into any additional functionality based on specifying those versions. + The new approach avoids listing versions which there is currently no reason to select, and thus these options have been removed. + If future work adds support to opt into features which only work starting with some of those versions, they will be re-added at that time. + +- ForestTypeExpensiveDebug now validates content against schema ([#24658](https://github.com/microsoft/FluidFramework/pull/24658)) [9d600aae88](https://github.com/microsoft/FluidFramework/commit/9d600aae88b9045392067719638258ea7407c2eb) + + When opting into using [ForestTypeExpensiveDebug](https://fluidframework.com/docs/api/fluid-framework/#foresttypeexpensivedebug-variable) using [configuredSharedTree](https://fluidframework.com/docs/api/fluid-framework/#configuredsharedtree-function), the tree is now checked against the schema on load and after every edit. + This should help detect and diagnose document corruption bugs. + + ```typescript + const DebugSharedTree = configuredSharedTree({ + jsonValidator: typeboxValidator, + // Now detects corrupted documents which are out of schema. + forest: ForestTypeExpensiveDebug, + }); + ``` + +- The comparePersistedSchema function (alpha) has had its canInitialize parameter removed ([#24606](https://github.com/microsoft/FluidFramework/pull/24606)) [d083a1780a](https://github.com/microsoft/FluidFramework/commit/d083a1780a1db74a922cbfb451d23ab932c0eb32) + + [comparePersistedSchema](https://fluidframework.com/docs/api/tree/#comparepersistedschema-function) has had its `canInitialize` parameter removed. + This parameter was only used to add to the output [SchemaCompatibilityStatus](https://fluidframework.com/docs/api/fluid-framework/schemacompatibilitystatus-interface). + If a full `SchemaCompatibilityStatus` is still desired, the `canInitialize` value can be added to the result: + + ```typescript + // old + const result = comparePersistedSchema(a, b, canInitialize); + // new + const result = { ...comparePersistedSchema(a, b), canInitialize }; + ``` + +- TreeNodes now implicitly generate identifiers on access instead of throwing ([#24665](https://github.com/microsoft/FluidFramework/pull/24665)) [cd5976b959](https://github.com/microsoft/FluidFramework/commit/cd5976b959d6b7a5259e3bb9ef816f842724bc6e) + + Accessing a defaulted [identifier](https://fluidframework.com/docs/api/fluid-framework/schemafactory-class#identifier-property) on an [Unhydrated](https://fluidframework.com/docs/api/fluid-framework/unhydrated-typealias) `TreeNode` no longer throws a usage error. + Instead, a new UUID is allocated for the identifier and returned. + These UUIDs will be more compressible than random ones, since they all come from a single sequence (starting with a random UUID). + They will not be fully compressed like the identifiers generated after hydration that leverage the document's [IIdCompressor](https://fluidframework.com/docs/api/id-compressor/iidcompressor-interface). + + ```typescript + const factory = new SchemaFactory("test"); + class HasIdentifier extends schema.object("A", { id: factory.identifier }) {} + // This used to throw an error: + const id = new HasIdentifier({}).id; + ``` + +- New TableSchema (alpha) APIs ([#24579](https://github.com/microsoft/FluidFramework/pull/24579)) [e565f6838b](https://github.com/microsoft/FluidFramework/commit/e565f6838b31d3e777da942c806606575123f6d6) + + A `TableSchema` utility has been added to Shared Tree for managing dynamic, tabular data. + This new `TableSchema` namespace contains APIs for creating column, row, and table [node schema](https://fluidframework.com/docs/api/fluid-framework/treenodeschema-typealias). + + Note: these APIs require the use of [SchemaFactoryAlpha](https://fluidframework.com/docs/api/fluid-framework/schemafactoryalpha-class). + + > [!WARNING] + > These APIs are in preview and are subject to change. + > Until these APIs have stabilized, it is not recommended to use them in production code. + > There may be breaking changes to these APIs and their underlying data format. + > Using these APIs in production code may result in data loss or corruption. + + #### Creating a table + + You can craft a table schema with `TableSchema.table`. + This includes providing a schema for the cells that will appear in the table: + + ```typescript + class MyTable extends TableSchema.table({ + schemaFactory, + cell: schemaFactory.string, + }) {} + + const table = new MyTable({ + columns: [{ id: "column-0" }], + rows: [{ id: "row-0", cells: { "column-0": "Hello world!" } }], + }); + ``` + + #### Creating a table with custom column and row schema + + To associate additional data with your rows or columns, generate custom row and column schema using `TableSchema.column` and `TableSchema.row`. + These schema can then be provided to `TableSchema.table`: + + ```typescript + class MyColumn extends TableSchema.column({ + schemaFactory, + cell: Cell, + props: schemaFactory.object("TableColumnProps", { + label: schemaFactory.string, + }), + }) {} + + class MyRow extends TableSchema.row({ + schemaFactory, + cell: Cell, + }) {} + + class MyTable extends TableSchema.table({ + schemaFactory, + cell: Cell, + column: MyColumn, + row: MyRow, + }) {} + + const table = new MyTable({ + columns: [ + new MyColumn({ props: { label: "Entry" } }), + new MyColumn({ props: { label: "Date" } }), + new MyColumn({ props: { label: "Amount" } }), + ], + rows: [], + }); + ``` + + #### Interacting with the table + + Table trees created using `TableSchema` offer various APIs to make working with tabular data easy. + These include: + + - Insertion and removal of columns, rows, and cells. + - Cell access by column/row. + + ```typescript + // Create an empty table + const table = MyTable.empty(); + + const column0 = new MyColumn({ + props: { label: "Column 0" }, + }); + + // Append a column to the end of the table. + table.insertColumn({ + column: column0, + }); + + const rows = [new MyRow({ cells: {} }), new MyRow({ cells: {} })]; + + // Insert rows at the beginning of the table. + table.insertRows({ + index: 0, + rows, + }); + + // Set cell at row 0, column 0. + table.setCell({ + key: { + column: column0, + row: rows[0], + }, + cell: "Hello", + }); + + // Set cell at row 1, column 0. + table.setCell({ + key: { + column: column0, + row: rows[1], + }, + cell: "World", + }); + + // Remove the first row. + // Note: this will also remove the row's cell. + table.removeRow(rows[0]); + + // Remove the column. + // Note: this will *not* remove the remaining cell under this column. + table.removeColumn(column0); + ``` + + #### Listening for changes + + Listening for changes to table trees behaves just like it would for any other nodes in a Shared Tree (see [here](https://fluidframework.com/docs/data-structures/tree/events) for more details). + + The most straightforward option is to listen for any changes to the table node and its descendants. + For example: + + ```typescript + class Cell extends schemaFactory.object("TableCell", { + value: schemaFactory.string, + }) {} + + class Table extends TableSchema.table({ + schemaFactory, + cell: Cell, + }) {} + + const table = new Table({ + columns: [{ id: "column-0" }], + rows: [{ id: "row-0", cells: {} }], + }); + + // Listen for any changes to the table and its children. + // The "treeChanged" event will fire when the `table` node or any of its descendants change. + Tree.on(table, "treeChanged", () => { + // Respond to the change. + }); + ``` + + If you need more granular eventing to meet your performance needs, that is possible as well. + For example, if you wish to know when the table's list of rows changes, you could do the following: + + ```typescript + class Cell extends schemaFactory.object("TableCell", { + value: schemaFactory.string, + }) {} + + class Table extends TableSchema.table({ + schemaFactory, + cell: Cell, + }) {} + + const table = new Table({ + columns: [{ id: "column-0" }], + rows: [{ id: "row-0", cells: {} }], + }); + + // Listen for any changes to the list of rows. + // The "nodeChanged" event will fire only when the `rows` node itself changes (i.e., its own properties change). + // In this case, the event will fire when a row is added or removed, or the order of the list is changed. + // But it won't fire when a row's properties change, or when the row's cells change, etc. + Tree.on(table.rows, "nodeChanged", () => { + // Respond to the change. + }); + ``` + + #### Limitations + + ##### Orphaned cells + + Cells in the table may become "orphaned." + That is, it is possible to enter a state where one or more rows contain cells with no corresponding column. + To reduce the likelihood of this, you can manually remove corresponding cells when removing columns. + + For example: + + ```typescript + // Remove column1 and all of its cells. + // The "transaction" method will ensure that all changes are applied atomically. + Tree.runTransaction(table, () => { + // Remove column1 + table.removeColumn(column1); + + // Remove the cell at column1 for each row. + for (const row of table.rows) { + table.removeCell({ + column: column1, + row, + }); + } + }); + ``` + + > [!WARNING] + > Note that even with the above precaution, it is possible to enter such an orphaned cell state via the merging of edits. + > For example: one client might add a row while another concurrently removes a column, orphaning the cell where the column and row intersected. + +- New TreeAlpha.key2 API ([#24623](https://github.com/microsoft/FluidFramework/pull/24623)) [0ddd6b030b](https://github.com/microsoft/FluidFramework/commit/0ddd6b030bf21ef2f315b84e428954ecfe951728) + + The `TreeAlpha.key2` method is meant to eventually replace the public `Tree.key` method. + This new method returns `undefined` in the case where there is a root node. + +- New TreeAlpha identifier APIs for converting, retrieving, and generating identifiers ([#24218](https://github.com/microsoft/FluidFramework/pull/24218)) [e5b2882132](https://github.com/microsoft/FluidFramework/commit/e5b28821323566112096f05805281b8d5321077d) + + #### TreeAlpha.identifier + + You can retrieve the long identifier with `TreeAlpha.identifier(node)`, where `node` is a `TreeNode`. The long identifier is a stable, compressible UUID generated by the tree. + In cases where the node does not yet have an identifier assigned, this will return `undefined`. + These cases include: + + - The node does not contain an identifier field. + - The node is a non-hydrated node with a user provided identifier. Note that if it is a non-hydrated node without an identifier provided, it will throw an error. + + #### TreeAlpha.identifier.shorten + + You can shorten a long identifier with `TreeAlpha.identifier.shorten(branch, identifier)`, where `branch` is a `TreeBranch`, and `identifier` is a `string`. + If the method returns a valid short identifier, this identifier can be passed into `TreeAlpha.identifier.lengthen` + to get the original valid long `identifier` back. + In the cases where it's not possible to shorten the `identifier`, it will return `undefined`. + These cases include: + + - A compressible long identifier, but it is unrecognized by the tree that the node belongs to. This can occur if the identifier is not generated from the tree. + - An identifier which is not compressible by the tree. This can occur if the node's identifier was a user provided string. + + #### TreeAlpha.identifier.lengthen + + You can lengthen a short identifier with `TreeAlpha.identifier.lengthen(branch, identifier)`, where `branch` is a `TreeBranch`, and `identifier` is a `number`. + If the method returns a valid long identifier, this identifier can be passed into `TreeAlpha.identifier.shorten` to get the original `identifier` back. + In the cases where it's not possible to lengthen the `identifier`, this method will throw an error. + These cases include: + + - An unrecognized short identifier. This can occur if the identifier is not generated from the tree. + + #### TreeAlpha.identifier.getShort + + You can retrieve the short identifier from a node with `TreeAlpha.identifier.getShort(node)` where `node` is a `TreeNode`. + If it is not possible to retrieve the short identifier, it will return `undefined` + + ##### Example for a node with valid identifier + + ```typescript + // This will retrieve the short identifier from the node. + const shortIdentifier = TreeAlpha.identifier.getShort( + nodeWithValidIdentifier, + ); + ``` + + ##### Examples for when you get undefined + + In cases where the node provided does not contain an identifier that is recognized or compressible by the tree that the node belongs to, this method will return undefined. + This will occur in the following cases: + + - The node is an non-hydrated node with a user provided identifier. Note that if it is an non-hydrated node without an identifier provided, it will throw an error. + - The node does not contain an identifier field. + - The node contains a compressible long identifier, but it is unrecognized by the tree that the node belongs to. This can occur if the identifier is not generated from the tree. + - The node contains an identifier which is not compressible by its id compressor. This can occur if the node's identifier was a user provided string. + + ```typescript + // This will return undefined + const shortIdentifier = TreeAlpha.identifier.getShort(node); + ``` + + #### TreeAlpha.identifier.create + + You can create a long identifier from a branch with `TreeAlpha.identifier.create(branch)` where `branch` is a `TreeBranch`. + + ```typescript + const createdIdentifier = TreeAlpha.identifier.create(branch); + ``` + ## 2.40.0 ### Minor Changes diff --git a/packages/drivers/debugger/CHANGELOG.md b/packages/drivers/debugger/CHANGELOG.md index 6bc0faf8559e..7f974a94cc07 100644 --- a/packages/drivers/debugger/CHANGELOG.md +++ b/packages/drivers/debugger/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/debugger +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/driver-base/CHANGELOG.md b/packages/drivers/driver-base/CHANGELOG.md index fc32798395a1..90258feb12c3 100644 --- a/packages/drivers/driver-base/CHANGELOG.md +++ b/packages/drivers/driver-base/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/driver-base +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/driver-web-cache/CHANGELOG.md b/packages/drivers/driver-web-cache/CHANGELOG.md index bd2a2ac7870c..57c2b4cc404f 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/file-driver/CHANGELOG.md b/packages/drivers/file-driver/CHANGELOG.md index ecc420bc15d5..b9e26469a1ba 100644 --- a/packages/drivers/file-driver/CHANGELOG.md +++ b/packages/drivers/file-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/file-driver +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/local-driver/CHANGELOG.md b/packages/drivers/local-driver/CHANGELOG.md index 35a5b8acfe61..718b9d8955b7 100644 --- a/packages/drivers/local-driver/CHANGELOG.md +++ b/packages/drivers/local-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/local-driver +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/odsp-driver-definitions/CHANGELOG.md b/packages/drivers/odsp-driver-definitions/CHANGELOG.md index 40fffab6def4..18f7e050711d 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/odsp-driver/CHANGELOG.md b/packages/drivers/odsp-driver/CHANGELOG.md index cb9a75832de1..a16207c5e08c 100644 --- a/packages/drivers/odsp-driver/CHANGELOG.md +++ b/packages/drivers/odsp-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/odsp-driver +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/odsp-urlResolver/CHANGELOG.md b/packages/drivers/odsp-urlResolver/CHANGELOG.md index acf15fa4fb10..6bdef45b7bf8 100644 --- a/packages/drivers/odsp-urlResolver/CHANGELOG.md +++ b/packages/drivers/odsp-urlResolver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/odsp-urlresolver +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/replay-driver/CHANGELOG.md b/packages/drivers/replay-driver/CHANGELOG.md index 993223fdbfb2..1a86f2663070 100644 --- a/packages/drivers/replay-driver/CHANGELOG.md +++ b/packages/drivers/replay-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/replay-driver +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/routerlicious-driver/CHANGELOG.md b/packages/drivers/routerlicious-driver/CHANGELOG.md index ff60a9982f0d..75f79f968459 100644 --- a/packages/drivers/routerlicious-driver/CHANGELOG.md +++ b/packages/drivers/routerlicious-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/routerlicious-driver +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/routerlicious-urlResolver/CHANGELOG.md b/packages/drivers/routerlicious-urlResolver/CHANGELOG.md index 40a0528d6a80..390f4e1236fd 100644 --- a/packages/drivers/routerlicious-urlResolver/CHANGELOG.md +++ b/packages/drivers/routerlicious-urlResolver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/routerlicious-urlresolver +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/drivers/tinylicious-driver/CHANGELOG.md b/packages/drivers/tinylicious-driver/CHANGELOG.md index a86e99f48914..efab797c8121 100644 --- a/packages/drivers/tinylicious-driver/CHANGELOG.md +++ b/packages/drivers/tinylicious-driver/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/tinylicious-driver +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/agent-scheduler/CHANGELOG.md b/packages/framework/agent-scheduler/CHANGELOG.md index 2894dbe033f7..32db4501a4db 100644 --- a/packages/framework/agent-scheduler/CHANGELOG.md +++ b/packages/framework/agent-scheduler/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/agent-scheduler +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/ai-collab/CHANGELOG.md b/packages/framework/ai-collab/CHANGELOG.md index 2af0b2535951..a5d6f9f2cafb 100644 --- a/packages/framework/ai-collab/CHANGELOG.md +++ b/packages/framework/ai-collab/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/ai-collab +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/aqueduct/CHANGELOG.md b/packages/framework/aqueduct/CHANGELOG.md index 10159bc4c18e..3f9055f678ae 100644 --- a/packages/framework/aqueduct/CHANGELOG.md +++ b/packages/framework/aqueduct/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/aqueduct +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/attributor/CHANGELOG.md b/packages/framework/attributor/CHANGELOG.md index 9b19a13cec37..e4da811cb07f 100644 --- a/packages/framework/attributor/CHANGELOG.md +++ b/packages/framework/attributor/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-experimental/attributor +## 2.41.0 + +Dependency updates only. + ## 2.40.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 8c7eedc95ae2..02da0965a4bf 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.41.0 + +Dependency updates only. + ## 2.40.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 96a6ff2eb316..1c7c7b2d7b3c 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/data-object-base/CHANGELOG.md b/packages/framework/data-object-base/CHANGELOG.md index ca27710b5623..44092f59e7f6 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/dds-interceptions/CHANGELOG.md b/packages/framework/dds-interceptions/CHANGELOG.md index 6ac7ce3e47b2..c229ed9ac470 100644 --- a/packages/framework/dds-interceptions/CHANGELOG.md +++ b/packages/framework/dds-interceptions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/dds-interceptions +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/fluid-framework/CHANGELOG.md b/packages/framework/fluid-framework/CHANGELOG.md index ca63241469bb..53469cb6babd 100644 --- a/packages/framework/fluid-framework/CHANGELOG.md +++ b/packages/framework/fluid-framework/CHANGELOG.md @@ -1,5 +1,341 @@ # fluid-framework +## 2.41.0 + +### Minor Changes + +- TreeAlpha.create now accepts unhydrated nodes ([#24629](https://github.com/microsoft/FluidFramework/pull/24629)) [e63af87aeb](https://github.com/microsoft/FluidFramework/commit/e63af87aeb7ece1ff0969027904c3b18f122d2d1) + + [TreeAlpha.create](https://fluidframework.com/docs/api/fluid-framework/treealpha-interface#create-methodsignature) now accepts [unhydrated](https://fluidframework.com/docs/api/fluid-framework/unhydrated-typealias) nodes. + `TreeAlpha.create`'s documentation has been updated to clarify that this is supported. + + Additionally `TreeAlpha.create` no longer throws a "Tree does not conform to schema" error when given a tree omitting an identifier. + Instead, the identifier behaves like it would for other ways to build unhydrated nodes: remaining unreadable until hydrated. + +- SharedTrees's FluidClientVersion enum (alpha) has been redesigned ([#24638](https://github.com/microsoft/FluidFramework/pull/24638)) [5f3b9d7b7d](https://github.com/microsoft/FluidFramework/commit/5f3b9d7b7d12307d89cbd4b88f5e2d6e1833680d) + + Users of [FluidClientVersion](https://fluidframework.com/docs/api/fluid-framework/fluidclientversion-enum)'s `v2_1`, `v2_2`, and `v2_3` entries should specify `v2_0` instead. + This will result in no functional differences since no code currently opts into any additional functionality based on specifying those versions. + The new approach avoids listing versions which there is currently no reason to select, and thus these options have been removed. + If future work adds support to opt into features which only work starting with some of those versions, they will be re-added at that time. + +- ForestTypeExpensiveDebug now validates content against schema ([#24658](https://github.com/microsoft/FluidFramework/pull/24658)) [9d600aae88](https://github.com/microsoft/FluidFramework/commit/9d600aae88b9045392067719638258ea7407c2eb) + + When opting into using [ForestTypeExpensiveDebug](https://fluidframework.com/docs/api/fluid-framework/#foresttypeexpensivedebug-variable) using [configuredSharedTree](https://fluidframework.com/docs/api/fluid-framework/#configuredsharedtree-function), the tree is now checked against the schema on load and after every edit. + This should help detect and diagnose document corruption bugs. + + ```typescript + const DebugSharedTree = configuredSharedTree({ + jsonValidator: typeboxValidator, + // Now detects corrupted documents which are out of schema. + forest: ForestTypeExpensiveDebug, + }); + ``` + +- The comparePersistedSchema function (alpha) has had its canInitialize parameter removed ([#24606](https://github.com/microsoft/FluidFramework/pull/24606)) [d083a1780a](https://github.com/microsoft/FluidFramework/commit/d083a1780a1db74a922cbfb451d23ab932c0eb32) + + [comparePersistedSchema](https://fluidframework.com/docs/api/tree/#comparepersistedschema-function) has had its `canInitialize` parameter removed. + This parameter was only used to add to the output [SchemaCompatibilityStatus](https://fluidframework.com/docs/api/fluid-framework/schemacompatibilitystatus-interface). + If a full `SchemaCompatibilityStatus` is still desired, the `canInitialize` value can be added to the result: + + ```typescript + // old + const result = comparePersistedSchema(a, b, canInitialize); + // new + const result = { ...comparePersistedSchema(a, b), canInitialize }; + ``` + +- TreeNodes now implicitly generate identifiers on access instead of throwing ([#24665](https://github.com/microsoft/FluidFramework/pull/24665)) [cd5976b959](https://github.com/microsoft/FluidFramework/commit/cd5976b959d6b7a5259e3bb9ef816f842724bc6e) + + Accessing a defaulted [identifier](https://fluidframework.com/docs/api/fluid-framework/schemafactory-class#identifier-property) on an [Unhydrated](https://fluidframework.com/docs/api/fluid-framework/unhydrated-typealias) `TreeNode` no longer throws a usage error. + Instead, a new UUID is allocated for the identifier and returned. + These UUIDs will be more compressible than random ones, since they all come from a single sequence (starting with a random UUID). + They will not be fully compressed like the identifiers generated after hydration that leverage the document's [IIdCompressor](https://fluidframework.com/docs/api/id-compressor/iidcompressor-interface). + + ```typescript + const factory = new SchemaFactory("test"); + class HasIdentifier extends schema.object("A", { id: factory.identifier }) {} + // This used to throw an error: + const id = new HasIdentifier({}).id; + ``` + +- New TableSchema (alpha) APIs ([#24579](https://github.com/microsoft/FluidFramework/pull/24579)) [e565f6838b](https://github.com/microsoft/FluidFramework/commit/e565f6838b31d3e777da942c806606575123f6d6) + + A `TableSchema` utility has been added to Shared Tree for managing dynamic, tabular data. + This new `TableSchema` namespace contains APIs for creating column, row, and table [node schema](https://fluidframework.com/docs/api/fluid-framework/treenodeschema-typealias). + + Note: these APIs require the use of [SchemaFactoryAlpha](https://fluidframework.com/docs/api/fluid-framework/schemafactoryalpha-class). + + > [!WARNING] + > These APIs are in preview and are subject to change. + > Until these APIs have stabilized, it is not recommended to use them in production code. + > There may be breaking changes to these APIs and their underlying data format. + > Using these APIs in production code may result in data loss or corruption. + + #### Creating a table + + You can craft a table schema with `TableSchema.table`. + This includes providing a schema for the cells that will appear in the table: + + ```typescript + class MyTable extends TableSchema.table({ + schemaFactory, + cell: schemaFactory.string, + }) {} + + const table = new MyTable({ + columns: [{ id: "column-0" }], + rows: [{ id: "row-0", cells: { "column-0": "Hello world!" } }], + }); + ``` + + #### Creating a table with custom column and row schema + + To associate additional data with your rows or columns, generate custom row and column schema using `TableSchema.column` and `TableSchema.row`. + These schema can then be provided to `TableSchema.table`: + + ```typescript + class MyColumn extends TableSchema.column({ + schemaFactory, + cell: Cell, + props: schemaFactory.object("TableColumnProps", { + label: schemaFactory.string, + }), + }) {} + + class MyRow extends TableSchema.row({ + schemaFactory, + cell: Cell, + }) {} + + class MyTable extends TableSchema.table({ + schemaFactory, + cell: Cell, + column: MyColumn, + row: MyRow, + }) {} + + const table = new MyTable({ + columns: [ + new MyColumn({ props: { label: "Entry" } }), + new MyColumn({ props: { label: "Date" } }), + new MyColumn({ props: { label: "Amount" } }), + ], + rows: [], + }); + ``` + + #### Interacting with the table + + Table trees created using `TableSchema` offer various APIs to make working with tabular data easy. + These include: + + - Insertion and removal of columns, rows, and cells. + - Cell access by column/row. + + ```typescript + // Create an empty table + const table = MyTable.empty(); + + const column0 = new MyColumn({ + props: { label: "Column 0" }, + }); + + // Append a column to the end of the table. + table.insertColumn({ + column: column0, + }); + + const rows = [new MyRow({ cells: {} }), new MyRow({ cells: {} })]; + + // Insert rows at the beginning of the table. + table.insertRows({ + index: 0, + rows, + }); + + // Set cell at row 0, column 0. + table.setCell({ + key: { + column: column0, + row: rows[0], + }, + cell: "Hello", + }); + + // Set cell at row 1, column 0. + table.setCell({ + key: { + column: column0, + row: rows[1], + }, + cell: "World", + }); + + // Remove the first row. + // Note: this will also remove the row's cell. + table.removeRow(rows[0]); + + // Remove the column. + // Note: this will *not* remove the remaining cell under this column. + table.removeColumn(column0); + ``` + + #### Listening for changes + + Listening for changes to table trees behaves just like it would for any other nodes in a Shared Tree (see [here](https://fluidframework.com/docs/data-structures/tree/events) for more details). + + The most straightforward option is to listen for any changes to the table node and its descendants. + For example: + + ```typescript + class Cell extends schemaFactory.object("TableCell", { + value: schemaFactory.string, + }) {} + + class Table extends TableSchema.table({ + schemaFactory, + cell: Cell, + }) {} + + const table = new Table({ + columns: [{ id: "column-0" }], + rows: [{ id: "row-0", cells: {} }], + }); + + // Listen for any changes to the table and its children. + // The "treeChanged" event will fire when the `table` node or any of its descendants change. + Tree.on(table, "treeChanged", () => { + // Respond to the change. + }); + ``` + + If you need more granular eventing to meet your performance needs, that is possible as well. + For example, if you wish to know when the table's list of rows changes, you could do the following: + + ```typescript + class Cell extends schemaFactory.object("TableCell", { + value: schemaFactory.string, + }) {} + + class Table extends TableSchema.table({ + schemaFactory, + cell: Cell, + }) {} + + const table = new Table({ + columns: [{ id: "column-0" }], + rows: [{ id: "row-0", cells: {} }], + }); + + // Listen for any changes to the list of rows. + // The "nodeChanged" event will fire only when the `rows` node itself changes (i.e., its own properties change). + // In this case, the event will fire when a row is added or removed, or the order of the list is changed. + // But it won't fire when a row's properties change, or when the row's cells change, etc. + Tree.on(table.rows, "nodeChanged", () => { + // Respond to the change. + }); + ``` + + #### Limitations + + ##### Orphaned cells + + Cells in the table may become "orphaned." + That is, it is possible to enter a state where one or more rows contain cells with no corresponding column. + To reduce the likelihood of this, you can manually remove corresponding cells when removing columns. + + For example: + + ```typescript + // Remove column1 and all of its cells. + // The "transaction" method will ensure that all changes are applied atomically. + Tree.runTransaction(table, () => { + // Remove column1 + table.removeColumn(column1); + + // Remove the cell at column1 for each row. + for (const row of table.rows) { + table.removeCell({ + column: column1, + row, + }); + } + }); + ``` + + > [!WARNING] + > Note that even with the above precaution, it is possible to enter such an orphaned cell state via the merging of edits. + > For example: one client might add a row while another concurrently removes a column, orphaning the cell where the column and row intersected. + +- New TreeAlpha identifier APIs for converting, retrieving, and generating identifiers ([#24218](https://github.com/microsoft/FluidFramework/pull/24218)) [e5b2882132](https://github.com/microsoft/FluidFramework/commit/e5b28821323566112096f05805281b8d5321077d) + + #### TreeAlpha.identifier + + You can retrieve the long identifier with `TreeAlpha.identifier(node)`, where `node` is a `TreeNode`. The long identifier is a stable, compressible UUID generated by the tree. + In cases where the node does not yet have an identifier assigned, this will return `undefined`. + These cases include: + + - The node does not contain an identifier field. + - The node is a non-hydrated node with a user provided identifier. Note that if it is a non-hydrated node without an identifier provided, it will throw an error. + + #### TreeAlpha.identifier.shorten + + You can shorten a long identifier with `TreeAlpha.identifier.shorten(branch, identifier)`, where `branch` is a `TreeBranch`, and `identifier` is a `string`. + If the method returns a valid short identifier, this identifier can be passed into `TreeAlpha.identifier.lengthen` + to get the original valid long `identifier` back. + In the cases where it's not possible to shorten the `identifier`, it will return `undefined`. + These cases include: + + - A compressible long identifier, but it is unrecognized by the tree that the node belongs to. This can occur if the identifier is not generated from the tree. + - An identifier which is not compressible by the tree. This can occur if the node's identifier was a user provided string. + + #### TreeAlpha.identifier.lengthen + + You can lengthen a short identifier with `TreeAlpha.identifier.lengthen(branch, identifier)`, where `branch` is a `TreeBranch`, and `identifier` is a `number`. + If the method returns a valid long identifier, this identifier can be passed into `TreeAlpha.identifier.shorten` to get the original `identifier` back. + In the cases where it's not possible to lengthen the `identifier`, this method will throw an error. + These cases include: + + - An unrecognized short identifier. This can occur if the identifier is not generated from the tree. + + #### TreeAlpha.identifier.getShort + + You can retrieve the short identifier from a node with `TreeAlpha.identifier.getShort(node)` where `node` is a `TreeNode`. + If it is not possible to retrieve the short identifier, it will return `undefined` + + ##### Example for a node with valid identifier + + ```typescript + // This will retrieve the short identifier from the node. + const shortIdentifier = TreeAlpha.identifier.getShort( + nodeWithValidIdentifier, + ); + ``` + + ##### Examples for when you get undefined + + In cases where the node provided does not contain an identifier that is recognized or compressible by the tree that the node belongs to, this method will return undefined. + This will occur in the following cases: + + - The node is an non-hydrated node with a user provided identifier. Note that if it is an non-hydrated node without an identifier provided, it will throw an error. + - The node does not contain an identifier field. + - The node contains a compressible long identifier, but it is unrecognized by the tree that the node belongs to. This can occur if the identifier is not generated from the tree. + - The node contains an identifier which is not compressible by its id compressor. This can occur if the node's identifier was a user provided string. + + ```typescript + // This will return undefined + const shortIdentifier = TreeAlpha.identifier.getShort(node); + ``` + + #### TreeAlpha.identifier.create + + You can create a long identifier from a branch with `TreeAlpha.identifier.create(branch)` where `branch` is a `TreeBranch`. + + ```typescript + const createdIdentifier = TreeAlpha.identifier.create(branch); + ``` + ## 2.40.0 ### Minor Changes diff --git a/packages/framework/fluid-static/CHANGELOG.md b/packages/framework/fluid-static/CHANGELOG.md index 9cdc9742c217..7a471b64bbd2 100644 --- a/packages/framework/fluid-static/CHANGELOG.md +++ b/packages/framework/fluid-static/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/fluid-static +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/oldest-client-observer/CHANGELOG.md b/packages/framework/oldest-client-observer/CHANGELOG.md index dbb09071e538..c5c3ab25617c 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/presence/CHANGELOG.md b/packages/framework/presence/CHANGELOG.md index f308c082eb33..24479220fb81 100644 --- a/packages/framework/presence/CHANGELOG.md +++ b/packages/framework/presence/CHANGELOG.md @@ -1,5 +1,21 @@ # @fluid-experimental/presence +## 2.41.0 + +### Minor Changes + +- Presence APIs promoted to beta [cc10c102f1](https://github.com/microsoft/FluidFramework/commit/cc10c102f150ca09d7a8b409852a7a0c14f8c2f1) + + [Presence APIs](https://fluidframework.com/docs/build/presence) are now beta and can be imported via `@fluidframework/presence/beta`. + + Note: `Notifications` are only supported via `/alpha` imports. To access notifications-only workspace support, cast `Presence` to `PresenceWithNotifications`. + +- "getPresence(container: IFluidContainer): Presence" now supported ([#24399](https://github.com/microsoft/FluidFramework/pull/24399)) [5c6824a48d](https://github.com/microsoft/FluidFramework/commit/5c6824a48da7dad6cb5911e6b1af02dfaf6382e1) + + You can now use the `getPresence` function to directly acquire `Presence`. In previous releases, you were required to + use `ExperimentalPresenceManager` in container schema and calling `getPresenceViaDataObject`, but that is no longer + required. Both `ExperimentalPresenceManager` and `getPresenceViaDataObject` are now deprecated. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/request-handler/CHANGELOG.md b/packages/framework/request-handler/CHANGELOG.md index bfd765118807..80d38dee2899 100644 --- a/packages/framework/request-handler/CHANGELOG.md +++ b/packages/framework/request-handler/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/request-handler +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/synthesize/CHANGELOG.md b/packages/framework/synthesize/CHANGELOG.md index c335f55c8d21..77a245e02b8c 100644 --- a/packages/framework/synthesize/CHANGELOG.md +++ b/packages/framework/synthesize/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/synthesize +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/framework/undo-redo/CHANGELOG.md b/packages/framework/undo-redo/CHANGELOG.md index a04b045dafd6..d7bbf8e0a59d 100644 --- a/packages/framework/undo-redo/CHANGELOG.md +++ b/packages/framework/undo-redo/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/undo-redo +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/loader/container-loader/CHANGELOG.md b/packages/loader/container-loader/CHANGELOG.md index b67d08d8355d..d22c1a971b12 100644 --- a/packages/loader/container-loader/CHANGELOG.md +++ b/packages/loader/container-loader/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/container-loader +## 2.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/loader/driver-utils/CHANGELOG.md b/packages/loader/driver-utils/CHANGELOG.md index b68b0402401b..42f4f461cc9c 100644 --- a/packages/loader/driver-utils/CHANGELOG.md +++ b/packages/loader/driver-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/driver-utils +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/loader/test-loader-utils/CHANGELOG.md b/packages/loader/test-loader-utils/CHANGELOG.md index 43fda27c09de..3187d2bce6d7 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/runtime/container-runtime-definitions/CHANGELOG.md b/packages/runtime/container-runtime-definitions/CHANGELOG.md index f06d5c8aa442..a1cb294b4a36 100644 --- a/packages/runtime/container-runtime-definitions/CHANGELOG.md +++ b/packages/runtime/container-runtime-definitions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/container-runtime-definitions +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/runtime/container-runtime/CHANGELOG.md b/packages/runtime/container-runtime/CHANGELOG.md index 11752f10be8b..2cea7cdb65f7 100644 --- a/packages/runtime/container-runtime/CHANGELOG.md +++ b/packages/runtime/container-runtime/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/container-runtime +## 2.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/runtime/datastore-definitions/CHANGELOG.md b/packages/runtime/datastore-definitions/CHANGELOG.md index 9775bb2d8bf0..359c07ac4e07 100644 --- a/packages/runtime/datastore-definitions/CHANGELOG.md +++ b/packages/runtime/datastore-definitions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/datastore-definitions +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/runtime/datastore/CHANGELOG.md b/packages/runtime/datastore/CHANGELOG.md index 50cc1ba295f6..1eea08439fb1 100644 --- a/packages/runtime/datastore/CHANGELOG.md +++ b/packages/runtime/datastore/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/datastore +## 2.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/runtime/id-compressor/CHANGELOG.md b/packages/runtime/id-compressor/CHANGELOG.md index e6329be9b5e7..0e9151895067 100644 --- a/packages/runtime/id-compressor/CHANGELOG.md +++ b/packages/runtime/id-compressor/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/id-compressor +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/runtime/runtime-definitions/CHANGELOG.md b/packages/runtime/runtime-definitions/CHANGELOG.md index 3222c3cd5f8c..b3e392e6fd53 100644 --- a/packages/runtime/runtime-definitions/CHANGELOG.md +++ b/packages/runtime/runtime-definitions/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/runtime-definitions +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/runtime/runtime-utils/CHANGELOG.md b/packages/runtime/runtime-utils/CHANGELOG.md index 0f6c049b2a02..df0e30166b0a 100644 --- a/packages/runtime/runtime-utils/CHANGELOG.md +++ b/packages/runtime/runtime-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/runtime-utils +## 2.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/runtime/test-runtime-utils/CHANGELOG.md b/packages/runtime/test-runtime-utils/CHANGELOG.md index 56aab0625341..030d7f916ada 100644 --- a/packages/runtime/test-runtime-utils/CHANGELOG.md +++ b/packages/runtime/test-runtime-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/test-runtime-utils +## 2.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/service-clients/azure-client/CHANGELOG.md b/packages/service-clients/azure-client/CHANGELOG.md index fc5f0c66300b..27a14f9fa5e8 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.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes 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 5e198fc8db44..396888902071 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.41.0 + +Dependency updates only. + ## 2.40.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 70e4859a71cc..33d1d9d82d2c 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/service-clients/odsp-client/CHANGELOG.md b/packages/service-clients/odsp-client/CHANGELOG.md index 0008e30a7fe8..50acfe7fdac3 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/service-clients/tinylicious-client/CHANGELOG.md b/packages/service-clients/tinylicious-client/CHANGELOG.md index 38708baf6a24..b6b6873d4b03 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/functional-tests/CHANGELOG.md b/packages/test/functional-tests/CHANGELOG.md index ace9a2d52470..ed8dabde6334 100644 --- a/packages/test/functional-tests/CHANGELOG.md +++ b/packages/test/functional-tests/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/functional-tests +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/local-server-stress-tests/CHANGELOG.md b/packages/test/local-server-stress-tests/CHANGELOG.md index 5a051a346ccb..c1c5e06b721a 100644 --- a/packages/test/local-server-stress-tests/CHANGELOG.md +++ b/packages/test/local-server-stress-tests/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/local-server-stress-tests +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/local-server-tests/CHANGELOG.md b/packages/test/local-server-tests/CHANGELOG.md index 087873598853..9211564ced2a 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/mocha-test-setup/CHANGELOG.md b/packages/test/mocha-test-setup/CHANGELOG.md index 4e3fd35649b6..b0a218ba647f 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/snapshots/CHANGELOG.md b/packages/test/snapshots/CHANGELOG.md index 799c56322e6c..937711f30ebb 100644 --- a/packages/test/snapshots/CHANGELOG.md +++ b/packages/test/snapshots/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/test-snapshots +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/stochastic-test-utils/CHANGELOG.md b/packages/test/stochastic-test-utils/CHANGELOG.md index a947e6da173d..a70199bfc65f 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/test-driver-definitions/CHANGELOG.md b/packages/test/test-driver-definitions/CHANGELOG.md index 3ac971275d07..72e96044db73 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/test-drivers/CHANGELOG.md b/packages/test/test-drivers/CHANGELOG.md index 1e8d07f01ad5..d7c7b14591bc 100644 --- a/packages/test/test-drivers/CHANGELOG.md +++ b/packages/test/test-drivers/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-private/test-drivers +## 2.41.0 + +Dependency updates only. + ## 2.40.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 65307f4035c5..120b2f5424aa 100644 --- a/packages/test/test-end-to-end-tests/CHANGELOG.md +++ b/packages/test/test-end-to-end-tests/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-private/test-end-to-end-tests +## 2.41.0 + +Dependency updates only. + ## 2.40.0 ### Minor Changes diff --git a/packages/test/test-pairwise-generator/CHANGELOG.md b/packages/test/test-pairwise-generator/CHANGELOG.md index 9fec1083eb88..80cb837033d5 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/test-service-load/CHANGELOG.md b/packages/test/test-service-load/CHANGELOG.md index e9330be7c609..8c81df0ca1d6 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/test-utils/CHANGELOG.md b/packages/test/test-utils/CHANGELOG.md index 65871e9847eb..247c97cb22a8 100644 --- a/packages/test/test-utils/CHANGELOG.md +++ b/packages/test/test-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/test-utils +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/test/test-version-utils/CHANGELOG.md b/packages/test/test-version-utils/CHANGELOG.md index 2b51e699157a..989da3839d4a 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/tools/changelog-generator-wrapper/CHANGELOG.md b/packages/tools/changelog-generator-wrapper/CHANGELOG.md index 807a8b9f567d..540e38a3d45b 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.41.0 + +Dependency updates only. + ## 2.40.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 c7484c6518e3..1e6b6ad7e7b0 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/tools/devtools/devtools-core/CHANGELOG.md b/packages/tools/devtools/devtools-core/CHANGELOG.md index b66a69afc755..968abaea0b7d 100644 --- a/packages/tools/devtools/devtools-core/CHANGELOG.md +++ b/packages/tools/devtools/devtools-core/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/devtools-core +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/tools/devtools/devtools-test-app/CHANGELOG.md b/packages/tools/devtools/devtools-test-app/CHANGELOG.md index 7ce22c7f70cb..7d4e48674e30 100644 --- a/packages/tools/devtools/devtools-test-app/CHANGELOG.md +++ b/packages/tools/devtools/devtools-test-app/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-private/devtools-test-app +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/tools/devtools/devtools-view/CHANGELOG.md b/packages/tools/devtools/devtools-view/CHANGELOG.md index a95689ba2858..2bd940d2a356 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/tools/devtools/devtools/CHANGELOG.md b/packages/tools/devtools/devtools/CHANGELOG.md index e7add893eba3..4b187248fa72 100644 --- a/packages/tools/devtools/devtools/CHANGELOG.md +++ b/packages/tools/devtools/devtools/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/devtools +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/tools/fetch-tool/CHANGELOG.md b/packages/tools/fetch-tool/CHANGELOG.md index 39895a7af61f..fd723d838c7a 100644 --- a/packages/tools/fetch-tool/CHANGELOG.md +++ b/packages/tools/fetch-tool/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-tools/fetch-tool +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/tools/fluid-runner/CHANGELOG.md b/packages/tools/fluid-runner/CHANGELOG.md index 65bd8783168a..0a04a3ecb429 100644 --- a/packages/tools/fluid-runner/CHANGELOG.md +++ b/packages/tools/fluid-runner/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/fluid-runner +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/tools/replay-tool/CHANGELOG.md b/packages/tools/replay-tool/CHANGELOG.md index dad4db1b47a1..ea34bbf66729 100644 --- a/packages/tools/replay-tool/CHANGELOG.md +++ b/packages/tools/replay-tool/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-internal/replay-tool +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/utils/odsp-doclib-utils/CHANGELOG.md b/packages/utils/odsp-doclib-utils/CHANGELOG.md index e334da23e773..a8ca3e1d82ce 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.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/utils/telemetry-utils/CHANGELOG.md b/packages/utils/telemetry-utils/CHANGELOG.md index fa26f3353c00..969d4a26b669 100644 --- a/packages/utils/telemetry-utils/CHANGELOG.md +++ b/packages/utils/telemetry-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/telemetry-utils +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/packages/utils/tool-utils/CHANGELOG.md b/packages/utils/tool-utils/CHANGELOG.md index b8724427c609..68c4947451e4 100644 --- a/packages/utils/tool-utils/CHANGELOG.md +++ b/packages/utils/tool-utils/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluidframework/tool-utils +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only. diff --git a/tools/markdown-magic/CHANGELOG.md b/tools/markdown-magic/CHANGELOG.md index 789d6c013a5d..60da7c656080 100644 --- a/tools/markdown-magic/CHANGELOG.md +++ b/tools/markdown-magic/CHANGELOG.md @@ -1,5 +1,9 @@ # @fluid-tools/markdown-magic +## 2.41.0 + +Dependency updates only. + ## 2.40.0 Dependency updates only.