Skip to content

Commit 31951ec

Browse files
Release notes for 2.51 (#25054)
## Description Release notes for 2.51.
1 parent 099b87b commit 31951ec

File tree

166 files changed

+891
-86
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

166 files changed

+891
-86
lines changed

.changeset/common-moons-open.md

Lines changed: 0 additions & 38 deletions
This file was deleted.

.changeset/dull-ants-proclaim.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changeset/few-trams-divide.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changeset/itchy-feet-help.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

.changeset/sharp-spiders-wonder.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

.changeset/tame-monkeys-boil.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

.changeset/wild-orangutans-sublimate.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

RELEASE_NOTES/2.51.0.md

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
<!-- THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -->
2+
3+
# Fluid Framework v2.51.0
4+
5+
## Contents
6+
7+
- [🚨 Breaking Changes](#-breaking-changes)
8+
- [@fluid-experimental/attributable-map package removed (#25019)](#fluid-experimentalattributable-map-package-removed-25019)
9+
- [🌳 SharedTree DDS Changes](#-sharedtree-dds-changes)
10+
- [Fix adaptEnum's handling of numeric enums (#24957)](#fix-adaptenums-handling-of-numeric-enums-24957)
11+
- ["rootChanged" event is no longer skipped if first change is setting the root to undefined (#24994)](#rootchanged-event-is-no-longer-skipped-if-first-change-is-setting-the-root-to-undefined-24994)
12+
- [Make POJO mode TreeArrayNodes report the array constructor as their constructor (#24988)](#make-pojo-mode-treearraynodes-report-the-array-constructor-as-their-constructor-24988)
13+
- [Legacy API Changes](#legacy-api-changes)
14+
- [New "getSnapshotTree" API on "IChannelStorageService" (#24970)](#new-getsnapshottree-api-on-ichannelstorageservice-24970)
15+
- [New "PureDataObject" implementation "TreeDataObject" added (#25025)](#new-puredataobject-implementation-treedataobject-added-25025)
16+
- [Add API for tree-based root data object (#25030)](#add-api-for-tree-based-root-data-object-25030)
17+
18+
## 🚨 Breaking Changes
19+
20+
### @fluid-experimental/attributable-map package removed ([#25019](https://github.com/microsoft/FluidFramework/issues/25019))
21+
22+
The @fluid-experimental/attributable-map package has been removed without replacement.
23+
24+
#### Change details
25+
26+
Commit: [`c8bbd6d`](https://github.com/microsoft/FluidFramework/commit/c8bbd6d6ecc9b0e9a92710e2a0ce7103ffd57c8b)
27+
28+
Affected packages:
29+
30+
- @fluid-experimental/attributable-map
31+
32+
[⬆️ Table of contents](#contents)
33+
34+
## 🌳 SharedTree DDS Changes
35+
36+
### Fix adaptEnum's handling of numeric enums ([#24957](https://github.com/microsoft/FluidFramework/issues/24957))
37+
38+
Enum entries whose values are numeric get additional properties on TypeScript's generated Enum object. These values were getting treated like enum entries at runtime by `adaptEnum` (`@beta`). This has been fixed and the runtime behavior now matches the types in this case.
39+
40+
If any documents were created with this API which were impacted by this bug and keeping them openable is required, they will need a workaround. Impacted schema using the union from `adaptEnum` can need to be updated to explicitly include the previously erroneously generated schema.
41+
42+
Before:
43+
44+
```typescript
45+
enum Mode {
46+
a = 1,
47+
}
48+
const ModeNodes = adaptEnum(schemaFactory, Mode);
49+
const union = ModeNodes.schema;
50+
```
51+
52+
After:
53+
54+
```typescript
55+
enum Mode {
56+
a = 1,
57+
}
58+
const ModeNodes = adaptEnum(schemaFactory, Mode);
59+
// Bugged version of adaptEnum used to include this: it should not be used but must be included in the schema for legacy document compatibility.
60+
class Workaround extends schemaFactory.object("a", {}) {}
61+
const union = [...ModeNodes.schema, Workaround] as const;
62+
```
63+
64+
To help detect when schema contain unexpected content, and to ensure workarounds like this are implemented properly, applications should include tests which check the schema for compatibility. See [tree-cli-app's schema tests](https://github.com/microsoft/FluidFramework/blob/main/examples/apps/tree-cli-app/src/test/schema.spec.ts) for an example of how to do this.
65+
66+
The schema returned by `adaptEnum` have also been updated to `toString` to include the value of the particular enum entry: this has no effect on the nodes, just the schema.
67+
68+
#### Change details
69+
70+
Commit: [`7535d31`](https://github.com/microsoft/FluidFramework/commit/7535d31fa61a535bf58bb88fc597e6e4f64c5b23)
71+
72+
Affected packages:
73+
74+
- @fluidframework/tree
75+
- fluid-framework
76+
77+
[⬆️ Table of contents](#contents)
78+
79+
### "rootChanged" event is no longer skipped if first change is setting the root to undefined ([#24994](https://github.com/microsoft/FluidFramework/issues/24994))
80+
81+
A bug has been fixed where [rootChanged](https://fluidframework.com/docs/api/fluid-framework/treeviewevents-interface#rootchanged-methodsignature) would not be fired if the change is the first change since the [TreeView](https://fluidframework.com/docs/api/fluid-framework/treeview-interface) became in-schema, and the change was setting the document root to `undefined`.
82+
83+
#### Change details
84+
85+
Commit: [`e6f2587`](https://github.com/microsoft/FluidFramework/commit/e6f258757947b72b6a9d19c79f5717eccd44452b)
86+
87+
Affected packages:
88+
89+
- @fluidframework/tree
90+
- fluid-framework
91+
92+
[⬆️ Table of contents](#contents)
93+
94+
### Make POJO mode TreeArrayNodes report the array constructor as their constructor ([#24988](https://github.com/microsoft/FluidFramework/issues/24988))
95+
96+
Make POJO mode TreeArrayNode's inherited `constructor` property report `Array` instead of the `TreeNodeSchema` class. This is necessary to make `TreeArrayNode`s appear equal to arrays according to NodeJS's `assert.strict.deepEqual` in NodeJS 22.
97+
98+
#### Change details
99+
100+
Commit: [`7b4d0ab`](https://github.com/microsoft/FluidFramework/commit/7b4d0abe90f50075bb06ef73ceceff2529ef78f5)
101+
102+
Affected packages:
103+
104+
- @fluidframework/tree
105+
- fluid-framework
106+
107+
[⬆️ Table of contents](#contents)
108+
109+
## Legacy API Changes
110+
111+
### New "getSnapshotTree" API on "IChannelStorageService" ([#24970](https://github.com/microsoft/FluidFramework/issues/24970))
112+
113+
A new API, `getSnapshotTree` has been added to `IChannelStorageService`. It should return the snapshot tree for a channel. This will help channels examine their snapshot when it consists of dynamic trees and blobs, i.e., when the number of tree and blobs and / or their keys are not known in advance. This is optional for backwards compatibility, and will become required in the future.
114+
115+
#### Change details
116+
117+
Commit: [`d1241a4`](https://github.com/microsoft/FluidFramework/commit/d1241a4ef19fa9bbfccc1afc68e6ef13effcb5d9)
118+
119+
Affected packages:
120+
121+
- @fluidframework/datastore-definitions
122+
123+
[⬆️ Table of contents](#contents)
124+
125+
### New "PureDataObject" implementation "TreeDataObject" added ([#25025](https://github.com/microsoft/FluidFramework/issues/25025))
126+
127+
A new implementation of `PureDataObject` has been added: `TreeDataObject`. Where `DataObject` stores its contents in a `SharedDirectory`, `TreeDataObject` stores its contents in a `SharedTree`.
128+
129+
#### Change details
130+
131+
Commit: [`f4fbd2f`](https://github.com/microsoft/FluidFramework/commit/f4fbd2f582c22e0b6fd06986b9b5dbb6b73396a4)
132+
133+
Affected packages:
134+
135+
- @fluidframework/aqueduct
136+
137+
[⬆️ Table of contents](#contents)
138+
139+
### Add API for tree-based root data object ([#25030](https://github.com/microsoft/FluidFramework/issues/25030))
140+
141+
Adds `createTreeContainerRuntimeFactory` which can be used to create runtime factories which construct containers with an entry point containing a single tree-based root data object.
142+
143+
#### Change details
144+
145+
Commit: [`30a0d7e`](https://github.com/microsoft/FluidFramework/commit/30a0d7ef7b6678e5a5aef45bcebcd5c98471a389)
146+
147+
Affected packages:
148+
149+
- @fluidframework/fluid-static
150+
151+
[⬆️ Table of contents](#contents)
152+
153+
### 🛠️ Start Building Today!
154+
155+
Please continue to engage with us on GitHub [Discussion](https://github.com/microsoft/FluidFramework/discussions) and [Issue](https://github.com/microsoft/FluidFramework/issues) pages as you adopt Fluid Framework!

azure/packages/azure-local-service/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# @fluidframework/azure-local-service
22

3+
## 2.51.0
4+
5+
Dependency updates only.
6+
37
## 2.50.0
48

59
Dependency updates only.

azure/packages/azure-service-utils/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# @fluidframework/azure-service-utils
22

3+
## 2.51.0
4+
5+
Dependency updates only.
6+
37
## 2.50.0
48

59
Dependency updates only.

0 commit comments

Comments
 (0)