Skip to content

Commit 9948726

Browse files
committed
Merge branch 'plumb-minversion-down-2' into set-st-flags
2 parents 618e0c2 + c70c605 commit 9948726

File tree

493 files changed

+9414
-7128
lines changed

Some content is hidden

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

493 files changed

+9414
-7128
lines changed

.changeset/cute-kids-bake.md

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

.changeset/damp-toads-stall.md

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

.changeset/fine-grapes-itch.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,23 @@
11
---
22
"@fluidframework/datastore": minor
3-
"@fluidframework/datastore-definitions": minor
43
"@fluidframework/runtime-definitions": minor
54
"@fluidframework/test-runtime-utils": minor
65
"__section": feature
76
---
8-
`minVersionForCollab` is now available on `IContainerRuntimeBase`, `IFluidDataStoreContext`, and `IFluidDataStoreRuntime`
7+
`minVersionForCollab` is now available on `IFluidDataStoreContext`
98

109
`minVersionForCollab` is now passed down from the `ContainerRuntime` to the Datastore layer where it is made available for
1110
`SharedObject` construction.
1211
DDSes may optionally consume this value and use it to determine which sets of feature flags should be enabled.
1312

14-
#### Interface changes
13+
#### Public type changes
1514

16-
All implementers of `IContainerRuntimeBase`, `IFluidDataStoreContext`, and `IFluidDataStoreRuntime` should forward the `minVersionForCollab`
17-
value. Constraints for the interfaces that now provide the value via accessors or fields:
18-
19-
- **@fluidframework/runtime-definitions: `IContainerRuntimeBase`** - Exposes the `minVersionForCollab` passed to ContainerRuntime.
20-
- **@fluidframework/runtime-definitions: `IFluidDataStoreContext`** - Implementation (`FluidDataStoreContext`) must read
21-
`minVersionForCollab` from `IContainerRuntimeBase` (class member).
22-
- **@fluidframework/datastore-definitions: `IFluidDataStoreRuntime`** - Implementation (`FluidDataStoreRuntime`) must read
23-
`minVersionForCollab` from `IFluidDataStoreContext` in the constructor.
15+
- **@fluidframework/datastore: `FluidDataStoreRuntime`** - Exposes `minVersionForCollab`.
16+
- **@fluidframework/runtime-definitions: `IFluidDataStoreContext`** - Exposes optional member `getMinVersionForCollab`.
17+
See `FluidDataStoreContext` for an example implementation.
18+
- **@fluidframework/test-runtime-utils: `MockFluidDataStoreContext`, `MockFluidDataStoreRuntime`** - Exposes `minVersionForCollab`
19+
either via a getter or as a readonly field.
2420

2521
Note that the new implementations are either optional accessors, can return undefined, or both.
26-
This is needed layer compatibility, and in a future release these members will no longer be optional or return
22+
This is needed for layer compatibility, and in a future release these members will no longer be optional or return
2723
values that may be undefined.

.changeset/floppy-bats-hide.md

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

.changeset/gentle-colts-study.md

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

.changeset/hot-experts-throw.md

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

.changeset/private-ponies-multitask.md

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

.changeset/rigid-whales-surprise.md

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

.changeset/stale-owls-prove.md

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

RELEASE_NOTES/2.60.0.md

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
<!-- THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -->
2+
3+
# Fluid Framework v2.60.0
4+
5+
## Contents
6+
7+
- [🚨 Breaking Changes](#-breaking-changes)
8+
- [Remove unnecessary and internal APIs in ISequenceIntervalCollection and related interval types (#25244)](#remove-unnecessary-and-internal-apis-in-isequenceintervalcollection-and-related-interval-types-25244)
9+
- [🌳 SharedTree DDS Changes](#-sharedtree-dds-changes)
10+
- [Single-node insertion/removal APIs have been removed from TableSchema (alpha) (#25233)](#single-node-insertionremoval-apis-have-been-removed-from-tableschema-alpha-25233)
11+
- [Range-based row/column removal methods have been added to TableSchema APIs (alpha) (#25235)](#range-based-rowcolumn-removal-methods-have-been-added-to-tableschema-apis-alpha-25235)
12+
- [Replace "TreeEncodingOptions.useStoredKeys" with "keys" and "KeyEncodingOptions" (#25263)](#replace-treeencodingoptionsusestoredkeys-with-keys-and-keyencodingoptions-25263)
13+
- [Hoist runTransaction method from TreeViewAlpha to TreeBranch (#25280)](#hoist-runtransaction-method-from-treeviewalpha-to-treebranch-25280)
14+
- [SchemaFactoryAlpha.recordRecursive now supports metadata (#25289)](#schemafactoryalpharecordrecursive-now-supports-metadata-25289)
15+
- [FormatValidator added to replace JsonValidator (#25311)](#formatvalidator-added-to-replace-jsonvalidator-25311)
16+
- [Add SchemaFactoryBeta (#25313)](#add-schemafactorybeta-25313)
17+
18+
## 🚨 Breaking Changes
19+
20+
### Remove unnecessary and internal APIs in ISequenceIntervalCollection and related interval types ([#25244](https://github.com/microsoft/FluidFramework/issues/25244))
21+
22+
The following APIs are now removed:
23+
24+
- `IInterval.clone`
25+
- `IInterval.modify`
26+
- `IInterval.union`
27+
- `ISerializableInterval`
28+
- `SequenceInterval.clone`
29+
- `SequenceInterval.modify`
30+
- `SequenceInterval.union`
31+
- `SequenceInterval.serialize`
32+
- `SequenceInterval.addPositionChangeListeners`
33+
- `SequenceInterval.removePositionChangeListeners`
34+
35+
These APIs were never intended for public use. There is no migration path, and any usage is strongly discouraged, as it may result in severe errors or data corruption. Please remove any dependencies on these APIs as soon as possible.
36+
37+
#### Change details
38+
39+
Commit: [`15d476e`](https://github.com/microsoft/FluidFramework/commit/15d476ea7069eb4de317a726733aa8fb9e8486e8)
40+
41+
Affected packages:
42+
43+
- fluid-framework
44+
- @fluidframework/sequence
45+
46+
[⬆️ Table of contents](#contents)
47+
48+
## 🌳 SharedTree DDS Changes
49+
50+
### Single-node insertion/removal APIs have been removed from TableSchema (alpha) ([#25233](https://github.com/microsoft/FluidFramework/issues/25233))
51+
52+
There is a significant performance benefit to inserting / removing rows / columns in batches. To help encourage more performant usage patterns, single-node insertion and removal APIs have been removed. The APIs that operate on batches should be used instead.
53+
54+
Specifically:
55+
56+
- `insertColumn`
57+
- Use `insertColumns` instead
58+
- `insertRow`
59+
- Use `insertRows` instead
60+
- `removeColumn`
61+
- Use `removeColumns` instead
62+
- `removeRow`
63+
- Use `removeRows` instead
64+
65+
#### Change details
66+
67+
Commit: [`99281d2`](https://github.com/microsoft/FluidFramework/commit/99281d2b24ec406760c9029aad5aa72a9265a65d)
68+
69+
Affected packages:
70+
71+
- @fluidframework/tree
72+
- fluid-framework
73+
74+
[⬆️ Table of contents](#contents)
75+
76+
### Range-based row/column removal methods have been added to TableSchema APIs (alpha) ([#25235](https://github.com/microsoft/FluidFramework/issues/25235))
77+
78+
Adds range-based overloads to `removeColumns` and `removeRows` for removing contiguous ranges of rows and columns.
79+
80+
The `removeAllColumns` and `removeAllRows` methods have been removed, as they can be trivially implemented in terms of the new methods.
81+
82+
#### Change details
83+
84+
Commit: [`c803393`](https://github.com/microsoft/FluidFramework/commit/c803393cec6847f4294dc34b4a074ec93baf111c)
85+
86+
Affected packages:
87+
88+
- @fluidframework/tree
89+
- fluid-framework
90+
91+
[⬆️ Table of contents](#contents)
92+
93+
### Replace "TreeEncodingOptions.useStoredKeys" with "keys" and "KeyEncodingOptions" ([#25263](https://github.com/microsoft/FluidFramework/issues/25263))
94+
95+
The alpha API `TreeEncodingOptions` has had its `useStoredKeys` `boolean` replaced with `keys` that takes a `KeyEncodingOptions` allowing for three options instead of the previous two. With the new API, it is now possible to control, for APIs which support it (like [`TreeAlpha.exportVerbose`](https://fluidframework.com/docs/api/fluid-framework/treealpha-interface#exportverbose-methodsignature)), if unknown optional fields will be included when exporting data using stored keys.
96+
97+
Additionally, the relevant options interfaces have been marked as `@input`, indicating that more options may be added as optional parameters in the future, and that should be considered non-breaking.
98+
99+
#### Change details
100+
101+
Commit: [`b65f2a8`](https://github.com/microsoft/FluidFramework/commit/b65f2a86d44d690a675867600a0a7e3c1608a473)
102+
103+
Affected packages:
104+
105+
- fluid-framework
106+
- @fluidframework/tree
107+
108+
[⬆️ Table of contents](#contents)
109+
110+
### Hoist runTransaction method from TreeViewAlpha to TreeBranch ([#25280](https://github.com/microsoft/FluidFramework/issues/25280))
111+
112+
Transactions are not view-schema-dependent, so it isn't necessary for them to be exclusive to the view type. `runTransaction` is now available on `TreeBranch` (alpha). `TreeViewAlpha` extends `TreeBranch`, so this change strictly makes the API more accessible.
113+
114+
#### Change details
115+
116+
Commit: [`a66b3b7`](https://github.com/microsoft/FluidFramework/commit/a66b3b77df346d1689ddedcefc16846eda45991a)
117+
118+
Affected packages:
119+
120+
- fluid-framework
121+
- @fluidframework/tree
122+
123+
[⬆️ Table of contents](#contents)
124+
125+
### SchemaFactoryAlpha.recordRecursive now supports metadata ([#25289](https://github.com/microsoft/FluidFramework/issues/25289))
126+
127+
`SchemaFactoryAlpha.recordRecursive` now support metadata like `SchemaFactoryAlpha.recordAlpha` and the other `TreeNodeSchema` creation methods on `SchemaFactoryAlpha` (except for `SchemaFactoryAlpha.record` which does not support metadata).
128+
129+
#### Change details
130+
131+
Commit: [`8324170`](https://github.com/microsoft/FluidFramework/commit/83241702d5fb5608cfa0add569c7803837abcf82)
132+
133+
Affected packages:
134+
135+
- fluid-framework
136+
- @fluidframework/tree
137+
138+
[⬆️ Table of contents](#contents)
139+
140+
### FormatValidator added to replace JsonValidator ([#25311](https://github.com/microsoft/FluidFramework/issues/25311))
141+
142+
The existing `@alpha` type [`JsonValidator`](https://fluidframework.com/docs/api/fluid-framework/jsonvalidator-interface) has a new type-erased alternative, `FormatValidator`, which is planned to be stabilized to `@beta` in the future. It replaces `JsonValidator` in `ICodecOptions`. Existing code using `ICodecOptions` should migrate to use `FormatValidator`, but this is not required for adopting this release as `JsonValidator` is still supported.
143+
144+
#### Change details
145+
146+
Commit: [`9db6e08`](https://github.com/microsoft/FluidFramework/commit/9db6e08ec12973e7cc4f7fe86fecd054bafcd1c0)
147+
148+
Affected packages:
149+
150+
- fluid-framework
151+
- @fluidframework/tree
152+
153+
[⬆️ Table of contents](#contents)
154+
155+
### Add SchemaFactoryBeta ([#25313](https://github.com/microsoft/FluidFramework/issues/25313))
156+
157+
`SchemaFactoryBeta` is added to provide a place to partially stabilize APIs from [`SchemaFactoryAlpha`](https://fluidframework.com/docs/api/fluid-framework/schemafactoryalpha-class). Initially just one APIs is added as `@beta`: `scopedFactory`. Users of the existing `@alpha` `scopedFactory` API on `SchemaFactoryAlpha` will need to update to use `scopedFactoryAlpha` if they require the returned factory to be a `SchemaFactoryAlpha` instance.
158+
159+
#### Change details
160+
161+
Commit: [`dca2361`](https://github.com/microsoft/FluidFramework/commit/dca2361d33dd959f5d913cbb59601685f85ff6f0)
162+
163+
Affected packages:
164+
165+
- fluid-framework
166+
- @fluidframework/tree
167+
168+
[⬆️ Table of contents](#contents)
169+
170+
### 🛠️ Start Building Today!
171+
172+
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!

0 commit comments

Comments
 (0)