@fluidframework/container-loader 2.30.0 → 2.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +354 -347
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +3 -2
- package/dist/container.js.map +1 -1
- package/dist/containerContext.d.ts +4 -0
- package/dist/containerContext.d.ts.map +1 -1
- package/dist/containerContext.js +6 -2
- package/dist/containerContext.js.map +1 -1
- package/dist/{layerCompatState.d.ts → loaderLayerCompatState.d.ts} +20 -3
- package/dist/loaderLayerCompatState.d.ts.map +1 -0
- package/dist/{layerCompatState.js → loaderLayerCompatState.js} +19 -9
- package/dist/loaderLayerCompatState.js.map +1 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/lib/container.d.ts.map +1 -1
- package/lib/container.js +2 -1
- package/lib/container.js.map +1 -1
- package/lib/containerContext.d.ts +4 -0
- package/lib/containerContext.d.ts.map +1 -1
- package/lib/containerContext.js +6 -2
- package/lib/containerContext.js.map +1 -1
- package/lib/{layerCompatState.d.ts → loaderLayerCompatState.d.ts} +20 -3
- package/lib/loaderLayerCompatState.d.ts.map +1 -0
- package/lib/{layerCompatState.js → loaderLayerCompatState.js} +18 -8
- package/lib/loaderLayerCompatState.js.map +1 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +14 -22
- package/src/container.ts +2 -1
- package/src/containerContext.ts +6 -2
- package/src/{layerCompatState.ts → loaderLayerCompatState.ts} +18 -7
- package/src/packageVersion.ts +1 -1
- package/tsconfig.json +1 -0
- package/dist/layerCompatState.d.ts.map +0 -1
- package/dist/layerCompatState.js.map +0 -1
- package/lib/layerCompatState.d.ts.map +0 -1
- package/lib/layerCompatState.js.map +0 -1
- package/prettier.config.cjs +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
# @fluidframework/container-loader
|
|
2
2
|
|
|
3
|
+
## 2.31.0
|
|
4
|
+
|
|
5
|
+
Dependency updates only.
|
|
6
|
+
|
|
3
7
|
## 2.30.0
|
|
4
8
|
|
|
5
9
|
### Minor Changes
|
|
6
10
|
|
|
7
|
-
-
|
|
11
|
+
- Deprecated ILoaderOptions have been removed ([#24046](https://github.com/microsoft/FluidFramework/pull/24046)) [24b4c8cf09](https://github.com/microsoft/FluidFramework/commit/24b4c8cf098b499b9b7cd1ea94c2bf627e259956)
|
|
8
12
|
|
|
9
|
-
|
|
13
|
+
Previously `ILoaderOptions` exported from `container-loader` was extending the base `ILoaderOptions` defined in `container-definitions` to add an experimental `summarizeProtocolTree` property which was used to test single-commit summaries. The option is no longer required or in use, so the extended version of `ILoaderOptions` is not needed anymore. Use `@fluidframework/container-definitions#ILoaderOptions` instead.
|
|
10
14
|
|
|
11
|
-
-
|
|
15
|
+
- IContainer.getContainerPackageInfo() is now deprecated ([#23840](https://github.com/microsoft/FluidFramework/pull/23840)) [521be72619](https://github.com/microsoft/FluidFramework/commit/521be726198a1f88f4f8f06c0f273528a49d2957)
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
The `IContainer.getContainerPackageInfo()` function is now deprecated. This API will be removed in version 2.40.0.
|
|
18
|
+
Use `IFluidCodeDetails.package` returned by `IContainer.getLoadedCodeDetails()` instead.
|
|
15
19
|
|
|
16
|
-
|
|
20
|
+
See [issue #23898](https://github.com/microsoft/FluidFramework/issues/23898) for details.
|
|
17
21
|
|
|
18
22
|
## 2.23.0
|
|
19
23
|
|
|
@@ -39,56 +43,56 @@ Dependency updates only.
|
|
|
39
43
|
|
|
40
44
|
### Minor Changes
|
|
41
45
|
|
|
42
|
-
-
|
|
46
|
+
- New APIs to create and load containers without using the Loader object ([#22902](https://github.com/microsoft/FluidFramework/pull/22902)) [51a17289c6](https://github.com/microsoft/FluidFramework/commit/51a17289c683ff6666e496878cb6660d21759b16)
|
|
43
47
|
|
|
44
|
-
|
|
48
|
+
#### Overview
|
|
45
49
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
Provide standalone APIs to create and load containers instead of using the Loader object to do so. Earlier hosts were
|
|
51
|
+
supposed to create the Loader object first and then call methods on it to create and load containers. Now they can just
|
|
52
|
+
utilize these APIs directly and get rid of the Loader object.
|
|
49
53
|
|
|
50
|
-
|
|
54
|
+
##### Use `createDetachedContainer` to create a detached container
|
|
51
55
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
```typescript
|
|
57
|
+
export async function createDetachedContainer(
|
|
58
|
+
createDetachedContainerProps: ICreateDetachedContainerProps,
|
|
59
|
+
): Promise<IContainer> {}
|
|
60
|
+
```
|
|
57
61
|
|
|
58
|
-
|
|
59
|
-
|
|
62
|
+
`ICreateDetachedContainerProps` are the properties that need to be supplied to the above API and include props like
|
|
63
|
+
URL Resolver, IDocumentServiceFactory, etc., which were previously used to create the `Loader` object.
|
|
60
64
|
|
|
61
|
-
|
|
65
|
+
##### Use `loadExistingContainer` to load an existing container
|
|
62
66
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
```typescript
|
|
68
|
+
export async function loadExistingContainer(
|
|
69
|
+
loadExistingContainerProps: ILoadExistingContainerProps,
|
|
70
|
+
): Promise<IContainer> {}
|
|
71
|
+
```
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
`ILoadExistingContainerProps` are the properties that need to be supplied to the above API and include props like
|
|
74
|
+
URL Resolver, IDocumentServiceFactory, etc., which were earlier used to create the `Loader` object.
|
|
71
75
|
|
|
72
|
-
|
|
76
|
+
##### Use `rehydrateDetachedContainer` to create a detached container from a serializedState of another container
|
|
73
77
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
```typescript
|
|
79
|
+
export async function rehydrateDetachedContainer(
|
|
80
|
+
rehydrateDetachedContainerProps: IRehydrateDetachedContainerProps,
|
|
81
|
+
): Promise<IContainer> {}
|
|
82
|
+
```
|
|
79
83
|
|
|
80
|
-
|
|
81
|
-
|
|
84
|
+
`IRehydrateDetachedContainerProps` are the properties that need to be supplied to the above API and include props like
|
|
85
|
+
URL Resolver, IDocumentServiceFactory, etc., which were earlier used to create the `Loader` object.
|
|
82
86
|
|
|
83
|
-
|
|
87
|
+
##### Note on `ICreateAndLoadContainerProps`.
|
|
84
88
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
The props which were used to create the `Loader` object are now moved to the `ICreateAndLoadContainerProps` interface.
|
|
90
|
+
`ICreateDetachedContainerProps`, `ILoadExistingContainerProps` and `IRehydrateDetachedContainerProps` which extends
|
|
91
|
+
`ICreateAndLoadContainerProps` also contains some additional props which will be used to create and load containers like
|
|
92
|
+
`IFluidCodeDetails`, `IRequest`, etc. Previously these were directly passed when calling APIs like
|
|
93
|
+
`Loader.createDetachedContainer`, `Loader.resolve` and `Loader.rehydrateDetachedContainerFromSnapshot` on the `Loader`
|
|
94
|
+
object. Also, `ILoaderProps.ILoaderOptions` are not replaced with `ICreateAndLoadContainerProps.IContainerPolicies`
|
|
95
|
+
since there will be no concept of `Loader`.
|
|
92
96
|
|
|
93
97
|
## 2.11.0
|
|
94
98
|
|
|
@@ -98,19 +102,19 @@ Dependency updates only.
|
|
|
98
102
|
|
|
99
103
|
### Minor Changes
|
|
100
104
|
|
|
101
|
-
-
|
|
105
|
+
- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5)
|
|
102
106
|
|
|
103
|
-
|
|
107
|
+
The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`.
|
|
104
108
|
|
|
105
|
-
|
|
109
|
+
`IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called.
|
|
106
110
|
|
|
107
|
-
|
|
111
|
+
Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called.
|
|
108
112
|
|
|
109
|
-
|
|
113
|
+
#### Alternatives
|
|
110
114
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
- Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)`
|
|
116
|
+
- Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`.
|
|
117
|
+
- Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`.
|
|
114
118
|
|
|
115
119
|
## 2.5.0
|
|
116
120
|
|
|
@@ -128,11 +132,11 @@ Dependency updates only.
|
|
|
128
132
|
|
|
129
133
|
### Minor Changes
|
|
130
134
|
|
|
131
|
-
-
|
|
135
|
+
- container-loader: summarizeProtocolTree and its corresponding duplicate ILoaderOptions definition is deprecated ([#21999](https://github.com/microsoft/FluidFramework/pull/21999)) [11ccda1597](https://github.com/microsoft/FluidFramework/commit/11ccda15970a10de00facfebfc060bece4a459ba)
|
|
132
136
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
137
|
+
The `summarizeProtocolTree` property in ILoaderOptions was added to test single-commit summaries during the initial
|
|
138
|
+
implementation phase. The flag is no longer required and should no longer be used, and is now marked deprecated. If a
|
|
139
|
+
driver needs to enable or disable single-commit summaries, it can do so via `IDocumentServicePolicies`.
|
|
136
140
|
|
|
137
141
|
## 2.1.0
|
|
138
142
|
|
|
@@ -142,180 +146,180 @@ Dependency updates only.
|
|
|
142
146
|
|
|
143
147
|
### Minor Changes
|
|
144
148
|
|
|
145
|
-
-
|
|
149
|
+
- Update to TypeScript 5.4 ([#21214](https://github.com/microsoft/FluidFramework/pull/21214)) [0e6256c722](https://github.com/microsoft/FluidFramework/commit/0e6256c722d8bf024f4325bf02547daeeb18bfa6)
|
|
146
150
|
|
|
147
|
-
|
|
151
|
+
Update package implementations to use TypeScript 5.4.5.
|
|
148
152
|
|
|
149
|
-
-
|
|
153
|
+
- container-loader: IDetachedBlobStorage is deprecated and replaced with a default in memory store for detached blobs ([#21144](https://github.com/microsoft/FluidFramework/pull/21144)) [2eebaa1775](https://github.com/microsoft/FluidFramework/commit/2eebaa1775dba0a677a005ba36f6f946c6324c21)
|
|
150
154
|
|
|
151
|
-
|
|
155
|
+
IDetachedBlobStorage will be removed in a future release without a replacement.
|
|
152
156
|
|
|
153
|
-
|
|
157
|
+
When applications load a container without specifying ILoaderServices.detachedBlobStorage, an implementation which stores the blobs in memory will be injected by Fluid.
|
|
154
158
|
|
|
155
|
-
|
|
156
|
-
|
|
159
|
+
IDetachedBlobStorage as well as application-defined implementations of it are deprecated and support will be removed for them in a future update.
|
|
160
|
+
Applications are recommended to stop providing this property on ILoaderServices.
|
|
157
161
|
|
|
158
|
-
-
|
|
162
|
+
- Update to ES 2022 ([#21292](https://github.com/microsoft/FluidFramework/pull/21292)) [68921502f7](https://github.com/microsoft/FluidFramework/commit/68921502f79b1833c4cd6d0fe339bfb126a712c7)
|
|
159
163
|
|
|
160
|
-
|
|
164
|
+
Update tsconfig to target ES 2022.
|
|
161
165
|
|
|
162
166
|
## 2.0.0-rc.4.0.0
|
|
163
167
|
|
|
164
168
|
### Major Changes
|
|
165
169
|
|
|
166
|
-
-
|
|
170
|
+
- Audience & connection sequencing improvements [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
167
171
|
|
|
168
|
-
|
|
172
|
+
Here are breaking changes in Audience behavior:
|
|
169
173
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
+
1. IAudience no longer implements EventEmmiter. If you used addListener() or removeListener(), please replace with on() & off() respectively.
|
|
175
|
+
2. IAudience interface implements getSelf() method and "selfChanged" event.
|
|
176
|
+
3. IContainerContext.audience is no longer optional
|
|
177
|
+
4. "connected" events are now raised (various API surfaces - IContainer, IContainerRuntime, IFluidDataStoreRuntime, etc.) a bit later in reconnection sequence for "read" connections - only after client receives its own "join" signal and caught up on ops, which makes it symmetrical with "write" connections.
|
|
174
178
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
179
|
+
- If this change in behavior breaks some scenario, please let us know immediately, but you can revert that behavior using the following feature gates:
|
|
180
|
+
- "Fluid.Container.DisableCatchUpBeforeDeclaringConnected"
|
|
181
|
+
- "Fluid.Container.DisableJoinSignalWait"
|
|
178
182
|
|
|
179
183
|
## 2.0.0-rc.3.0.0
|
|
180
184
|
|
|
181
185
|
### Major Changes
|
|
182
186
|
|
|
183
|
-
-
|
|
187
|
+
- container-definitions: IContainerContext.getSpecifiedCodeDetails() removed [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
184
188
|
|
|
185
|
-
|
|
189
|
+
IContainerContext.getSpecifiedCodeDetails() was deprecated in 0.42 and has now been removed.
|
|
186
190
|
|
|
187
|
-
-
|
|
191
|
+
- Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
188
192
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
193
|
+
Fluid Framework packages have been updated to use the [package.json "exports"
|
|
194
|
+
field](https://nodejs.org/docs/latest-v18.x/api/packages.html#exports) to define explicit entry points for both
|
|
195
|
+
TypeScript types and implementation code.
|
|
192
196
|
|
|
193
|
-
|
|
197
|
+
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
|
|
194
198
|
|
|
195
|
-
|
|
196
|
-
|
|
199
|
+
- `"moduleResolution": "Node16"` with `"module": "Node16"`
|
|
200
|
+
- `"moduleResolution": "Bundler"` with `"module": "ESNext"`
|
|
197
201
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
+
We recommend using Node16/Node16 unless absolutely necessary. That will produce transpiled JavaScript that is suitable
|
|
203
|
+
for use with modern versions of Node.js _and_ Bundlers.
|
|
204
|
+
[See the TypeScript documentation](https://www.typescriptlang.org/tsconfig#moduleResolution) for more information
|
|
205
|
+
regarding the module and moduleResolution options.
|
|
202
206
|
|
|
203
|
-
|
|
204
|
-
|
|
207
|
+
**Node10 moduleResolution is not supported; it does not support Fluid Framework's API structuring pattern that is used
|
|
208
|
+
to distinguish stable APIs from those that are in development.**
|
|
205
209
|
|
|
206
210
|
### Minor Changes
|
|
207
211
|
|
|
208
|
-
-
|
|
212
|
+
- driver-definitions: update submitSignal content type to string [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
209
213
|
|
|
210
|
-
|
|
214
|
+
Change IDocumentDeltaConnection.submitSignal's content argument type to string which represents actual/known use.
|
|
211
215
|
|
|
212
216
|
## 2.0.0-rc.2.0.0
|
|
213
217
|
|
|
214
218
|
### Minor Changes
|
|
215
219
|
|
|
216
|
-
-
|
|
220
|
+
- container-loader: Behavior change: IContainer.attach will be made retriable in the next release ([#19246](https://github.com/microsoft/FluidFramework/issues/19246)) [3d5dfb28d4](https://github.com/microsoft/FluidFramework/commits/3d5dfb28d47b55943c6a92ec50530e6fa86b0568)
|
|
217
221
|
|
|
218
|
-
|
|
222
|
+
The `attach` function on IContainer has been modified such that the container stay open on non-fatal errors. On failure of attach the developer should inspect IContainer.closed to see if the container has been closed. If not closed, the developer can retry calling attach.
|
|
219
223
|
|
|
220
|
-
|
|
224
|
+
The functionality is currently behind a configuration `Fluid.Container.RetryOnAttachFailure` which can be set to `true` to enable the new functionality.
|
|
221
225
|
|
|
222
|
-
|
|
226
|
+
In the next release we will default to the new behavior, and it will be possible to disable this behavior by setting `Fluid.Container.RetryOnAttachFailure` to `false`
|
|
223
227
|
|
|
224
|
-
-
|
|
228
|
+
- driver-definitions: Deprecate `ISnapshotContents` ([#19314](https://github.com/microsoft/FluidFramework/issues/19314)) [fc731b69de](https://github.com/microsoft/FluidFramework/commits/fc731b69deed4a2987e9b97d8918492d689bafbc)
|
|
225
229
|
|
|
226
|
-
|
|
230
|
+
`ISnapshotContents` is deprecated. It has been replaced with `ISnapshot`.
|
|
227
231
|
|
|
228
|
-
-
|
|
232
|
+
- driver-definitions: repositoryUrl removed from IDocumentStorageService ([#19522](https://github.com/microsoft/FluidFramework/issues/19522)) [90eb3c9d33](https://github.com/microsoft/FluidFramework/commits/90eb3c9d33d80e24caa1393a50f414c5602f6aa3)
|
|
229
233
|
|
|
230
|
-
|
|
234
|
+
The `repositoryUrl` member of `IDocumentStorageService` was unused and always equal to the empty string. It has been removed.
|
|
231
235
|
|
|
232
|
-
-
|
|
236
|
+
- container-loader: IParsedUrl does not accept null version ([#19854](https://github.com/microsoft/FluidFramework/issues/19854)) [ba6012a927](https://github.com/microsoft/FluidFramework/commits/ba6012a92761022613b31b4638d82054cffb9596)
|
|
233
237
|
|
|
234
|
-
|
|
238
|
+
`IParsedUrl` previously claimed to accept `null` version to indicate that we should not load from a snapshot, but this was internally converted into `undefined` (thereby loading from latest snapshot). The typing has been updated to reflect this reality.
|
|
235
239
|
|
|
236
|
-
-
|
|
240
|
+
- Deprecated error-related enums have been removed ([#19067](https://github.com/microsoft/FluidFramework/issues/19067)) [59793302e5](https://github.com/microsoft/FluidFramework/commits/59793302e56784cfb6ace0e6469345f3565b3312)
|
|
237
241
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
242
|
+
Error-related enums `ContainerErrorType`, `DriverErrorType`, `OdspErrorType` and `RouterliciousErrorType` were previously
|
|
243
|
+
deprecated and are now removed. There are replacement object-based enumerations of `ContainerErrorTypes`,
|
|
244
|
+
`DriverErrorTypes`, `OdspErrorTypes` and `RouterliciousErrorTypes`. Refer to the release notes of [Fluid Framework version
|
|
245
|
+
2.0.0-internal.7.0.0](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.0.0-internal.7.0.0) for details
|
|
246
|
+
on the replacements.
|
|
243
247
|
|
|
244
|
-
-
|
|
248
|
+
- container-loader: Internal format of the string returned by container.serialize has changed. ([#18829](https://github.com/microsoft/FluidFramework/issues/18829)) [a10cfd54f5](https://github.com/microsoft/FluidFramework/commits/a10cfd54f5680ccc98cb0aef6832637dfdb005a5)
|
|
245
249
|
|
|
246
|
-
|
|
250
|
+
`serialize` is being changed to align format with similar APIs. There are no changes in external behaviour.
|
|
247
251
|
|
|
248
|
-
-
|
|
252
|
+
- container-definitions: ILoaderOptions no longer accepts arbitrary key/value pairs ([#19306](https://github.com/microsoft/FluidFramework/issues/19306)) [741926e225](https://github.com/microsoft/FluidFramework/commits/741926e2253a161504ecc6a6451d8f15d7ac4ed6)
|
|
249
253
|
|
|
250
|
-
|
|
254
|
+
ILoaderOptions has been narrowed to the specific set of supported loader options, and may no longer be used to pass arbitrary key/value pairs through to the runtime.
|
|
251
255
|
|
|
252
|
-
-
|
|
256
|
+
- container-definitions: Added containerMetadata prop on IContainer interface ([#19142](https://github.com/microsoft/FluidFramework/issues/19142)) [d0d77f3516](https://github.com/microsoft/FluidFramework/commits/d0d77f3516d67f3c9faedb47b20dbd4e309c3bc2)
|
|
253
257
|
|
|
254
|
-
|
|
258
|
+
Added `containerMetadata` prop on IContainer interface.
|
|
255
259
|
|
|
256
|
-
-
|
|
260
|
+
- runtime-definitions: Moved ISignalEnvelope interface to core-interfaces ([#19142](https://github.com/microsoft/FluidFramework/issues/19142)) [d0d77f3516](https://github.com/microsoft/FluidFramework/commits/d0d77f3516d67f3c9faedb47b20dbd4e309c3bc2)
|
|
257
261
|
|
|
258
|
-
|
|
262
|
+
The `ISignalEnvelope` interface has been moved to the @fluidframework/core-interfaces package.
|
|
259
263
|
|
|
260
264
|
## 2.0.0-rc.1.0.0
|
|
261
265
|
|
|
262
266
|
### Minor Changes
|
|
263
267
|
|
|
264
|
-
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
268
|
+
- Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
269
|
+
|
|
270
|
+
The following Fluid server dependencies have been updated to the latest version, 3.0.0. [See the full changelog.](https://github.com/microsoft/FluidFramework/releases/tag/server_v3.0.0)
|
|
271
|
+
|
|
272
|
+
- @fluidframework/gitresources
|
|
273
|
+
- @fluidframework/server-kafka-orderer
|
|
274
|
+
- @fluidframework/server-lambdas
|
|
275
|
+
- @fluidframework/server-lambdas-driver
|
|
276
|
+
- @fluidframework/server-local-server
|
|
277
|
+
- @fluidframework/server-memory-orderer
|
|
278
|
+
- @fluidframework/protocol-base
|
|
279
|
+
- @fluidframework/server-routerlicious
|
|
280
|
+
- @fluidframework/server-routerlicious-base
|
|
281
|
+
- @fluidframework/server-services
|
|
282
|
+
- @fluidframework/server-services-client
|
|
283
|
+
- @fluidframework/server-services-core
|
|
284
|
+
- @fluidframework/server-services-ordering-kafkanode
|
|
285
|
+
- @fluidframework/server-services-ordering-rdkafka
|
|
286
|
+
- @fluidframework/server-services-ordering-zookeeper
|
|
287
|
+
- @fluidframework/server-services-shared
|
|
288
|
+
- @fluidframework/server-services-telemetry
|
|
289
|
+
- @fluidframework/server-services-utils
|
|
290
|
+
- @fluidframework/server-test-utils
|
|
291
|
+
- tinylicious
|
|
292
|
+
|
|
293
|
+
- Updated @fluidframework/protocol-definitions ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
294
|
+
|
|
295
|
+
The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0. [See the full
|
|
296
|
+
changelog.](https://github.com/microsoft/FluidFramework/blob/main/common/lib/protocol-definitions/CHANGELOG.md#310)
|
|
293
297
|
|
|
294
298
|
## 2.0.0-internal.8.0.0
|
|
295
299
|
|
|
296
300
|
### Major Changes
|
|
297
301
|
|
|
298
|
-
-
|
|
302
|
+
- container-loader: Removed request(...) and IFluidRouter from ILoader and Loader [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
299
303
|
|
|
300
|
-
|
|
301
|
-
|
|
304
|
+
The `request(...)` method and `IFluidRouter` property have been removed from `ILoader` and `Loader`. Instead, after
|
|
305
|
+
calling `ILoader.resolve(...)`, call the `getEntryPoint()` method on the returned `IContainer`.
|
|
302
306
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
307
|
+
See
|
|
308
|
+
[Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
309
|
+
for more details.
|
|
306
310
|
|
|
307
|
-
-
|
|
311
|
+
- container-definitions: Fix ISnapshotTreeWithBlobContents and mark internal [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
308
312
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
313
|
+
`ISnapshotTreeWithBlobContents` is an internal type that should not be used externally. Additionally, the type didn't
|
|
314
|
+
match the usage, specifically in runtime-utils where an `any` cast was used to work around undefined blobContents. The
|
|
315
|
+
type has been updated to reflect that blobContents can be undefined.
|
|
312
316
|
|
|
313
|
-
-
|
|
317
|
+
- container-loader: Removed requestResolvedObjectFromContainer [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
314
318
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
+
The helper function `requestResolvedObjectFromContainer` has been removed. Please remove all calls to it and instead use
|
|
320
|
+
the new `entryPoint` pattern. See
|
|
321
|
+
[Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
322
|
+
for more details.
|
|
319
323
|
|
|
320
324
|
## 2.0.0-internal.7.4.0
|
|
321
325
|
|
|
@@ -333,119 +337,122 @@ Dependency updates only.
|
|
|
333
337
|
|
|
334
338
|
### Minor Changes
|
|
335
339
|
|
|
336
|
-
-
|
|
340
|
+
- Move `location-redirection-utils` APIs to `container-loader` ([#17554](https://github.com/microsoft/FluidFramework/issues/17554)) [17acf10a71](https://github.com/microsoft/FluidFramework/commits/17acf10a71e51e2490d1df57c89430c1be04c345)
|
|
337
341
|
|
|
338
|
-
|
|
342
|
+
Moves the 2 package exports of `location-redirection-utils` to the `container-loader` package.
|
|
339
343
|
|
|
340
|
-
|
|
344
|
+
Exports from `location-redirection-utils` are now deprecated, and the package itself will be removed in an upcoming release.
|
|
341
345
|
|
|
342
346
|
## 2.0.0-internal.7.0.0
|
|
343
347
|
|
|
344
348
|
### Major Changes
|
|
345
349
|
|
|
346
|
-
-
|
|
350
|
+
- odsp-driver: Load container in readonly mode when driver throws DriverErrorType.outOfStorage [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
347
351
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
352
|
+
Handle DriverErrorType.outOfStorage error from driver and load the container in readonly mode. Currently there is no
|
|
353
|
+
handling and when the join session throws this error, the container will get closed. With this we use NoDeltaStream
|
|
354
|
+
object as connection and load the container in read mode, so that it loads properly. We also notify the that the
|
|
355
|
+
container is "readonly" through the event on delta manager so that apps can listen to this and show any UX etc. The app
|
|
356
|
+
can listen to the event like this:
|
|
353
357
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
358
|
+
```ts
|
|
359
|
+
container.deltaManager.on(
|
|
360
|
+
"readonly",
|
|
361
|
+
(
|
|
362
|
+
readonly?: boolean,
|
|
363
|
+
readonlyConnectionReason?: { text: string; error?: IErrorBase },
|
|
364
|
+
) => {
|
|
365
|
+
// error?.errorType will be equal to DriverErrorType.outOfStorage in this case
|
|
366
|
+
// App logic
|
|
367
|
+
},
|
|
368
|
+
);
|
|
369
|
+
```
|
|
363
370
|
|
|
364
|
-
-
|
|
371
|
+
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
365
372
|
|
|
366
|
-
|
|
373
|
+
This included the following changes from the protocol-definitions release:
|
|
367
374
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
375
|
+
- Updating signal interfaces for some planned improvements. The intention is split the interface between signals
|
|
376
|
+
submitted by clients to the server and the resulting signals sent from the server to clients.
|
|
377
|
+
- A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
|
|
378
|
+
been added, which will be the typing for signals sent from the client to the server. Both extend a new
|
|
379
|
+
ISignalMessageBase interface that contains common members.
|
|
380
|
+
- The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
|
|
374
381
|
|
|
375
|
-
-
|
|
382
|
+
- DEPRECATED: container-loader: Various request related APIs have been deprecated [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
376
383
|
|
|
377
|
-
|
|
384
|
+
Please remove all calls to the following functions and instead use the new `entryPoint` pattern:
|
|
378
385
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
386
|
+
- `requestFluidObject`
|
|
387
|
+
- `requestResolvedObjectFromContainer`
|
|
388
|
+
- `getDefaultObjectFromContainer`
|
|
389
|
+
- `getObjectWithIdFromContainer`
|
|
390
|
+
- `getObjectFromContainer`
|
|
384
391
|
|
|
385
|
-
|
|
392
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
386
393
|
|
|
387
|
-
-
|
|
394
|
+
- container-definitions: IContainer's and IDataStore's IFluidRouter capabilities are deprecated [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
388
395
|
|
|
389
|
-
|
|
396
|
+
`IFluidRouter` and `request({ url: "/" })` on `IContainer` and `IDataStore` are deprecated and will be removed in a future major release. Please migrate all usage to the appropriate `getEntryPoint()` or `entryPoint` APIs.
|
|
390
397
|
|
|
391
|
-
|
|
398
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
392
399
|
|
|
393
|
-
-
|
|
400
|
+
- routerlicious-driver: remove dead blob aggregation concepts and code [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
394
401
|
|
|
395
|
-
|
|
402
|
+
Dead concepts blob aggregation like `aggregateBlobsSmallerThanBytes` and `minBlobSize` have been removed.
|
|
396
403
|
|
|
397
|
-
-
|
|
404
|
+
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
398
405
|
|
|
399
|
-
|
|
406
|
+
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
400
407
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
408
|
+
- @fluidframework/gitresources: 2.0.1
|
|
409
|
+
- @fluidframework/server-kafka-orderer: 2.0.1
|
|
410
|
+
- @fluidframework/server-lambdas: 2.0.1
|
|
411
|
+
- @fluidframework/server-lambdas-driver: 2.0.1
|
|
412
|
+
- @fluidframework/server-local-server: 2.0.1
|
|
413
|
+
- @fluidframework/server-memory-orderer: 2.0.1
|
|
414
|
+
- @fluidframework/protocol-base: 2.0.1
|
|
415
|
+
- @fluidframework/server-routerlicious: 2.0.1
|
|
416
|
+
- @fluidframework/server-routerlicious-base: 2.0.1
|
|
417
|
+
- @fluidframework/server-services: 2.0.1
|
|
418
|
+
- @fluidframework/server-services-client: 2.0.1
|
|
419
|
+
- @fluidframework/server-services-core: 2.0.1
|
|
420
|
+
- @fluidframework/server-services-ordering-kafkanode: 2.0.1
|
|
421
|
+
- @fluidframework/server-services-ordering-rdkafka: 2.0.1
|
|
422
|
+
- @fluidframework/server-services-ordering-zookeeper: 2.0.1
|
|
423
|
+
- @fluidframework/server-services-shared: 2.0.1
|
|
424
|
+
- @fluidframework/server-services-telemetry: 2.0.1
|
|
425
|
+
- @fluidframework/server-services-utils: 2.0.1
|
|
426
|
+
- @fluidframework/server-test-utils: 2.0.1
|
|
427
|
+
- tinylicious: 2.0.1
|
|
421
428
|
|
|
422
|
-
-
|
|
429
|
+
- test-utils: provideEntryPoint is required [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
423
430
|
|
|
424
|
-
|
|
431
|
+
The optional `provideEntryPoint` method has become required on a number of constructors. A value will need to be provided to the following classes:
|
|
425
432
|
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
433
|
+
- `BaseContainerRuntimeFactory`
|
|
434
|
+
- `RuntimeFactory`
|
|
435
|
+
- `ContainerRuntime` (constructor and `loadRuntime`)
|
|
436
|
+
- `FluidDataStoreRuntime`
|
|
430
437
|
|
|
431
|
-
|
|
432
|
-
|
|
438
|
+
See [testContainerRuntimeFactoryWithDefaultDataStore.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/test/test-utils/src/testContainerRuntimeFactoryWithDefaultDataStore.ts) for an example implemtation of `provideEntryPoint` for ContainerRuntime.
|
|
439
|
+
See [pureDataObjectFactory.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/framework/aqueduct/src/data-object-factories/pureDataObjectFactory.ts#L83) for an example implementation of `provideEntryPoint` for DataStoreRuntime.
|
|
433
440
|
|
|
434
|
-
|
|
441
|
+
Subsequently, various `entryPoint` and `getEntryPoint()` endpoints have become required. Please see [containerRuntime.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/runtime/container-runtime/src/containerRuntime.ts) for example implementations of these APIs.
|
|
435
442
|
|
|
436
|
-
|
|
443
|
+
For more details, see [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
437
444
|
|
|
438
|
-
-
|
|
445
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
439
446
|
|
|
440
|
-
|
|
447
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
441
448
|
|
|
442
|
-
-
|
|
449
|
+
- container-loader: Containers will connect in read-mode by default [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
443
450
|
|
|
444
|
-
|
|
451
|
+
When a container is loaded, it will connect in read-mode unless it is loaded with a pending state containing stashed ops.
|
|
445
452
|
|
|
446
|
-
-
|
|
453
|
+
- container-loader: Container caching in the Loader is removed [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
447
454
|
|
|
448
|
-
|
|
455
|
+
Container caching in the Loader has been removed. Do not to rely on caching and inform the FluidFramework team ASAP if you cannot do so.
|
|
449
456
|
|
|
450
457
|
## 2.0.0-internal.6.4.0
|
|
451
458
|
|
|
@@ -459,39 +466,39 @@ Dependency updates only.
|
|
|
459
466
|
|
|
460
467
|
### Minor Changes
|
|
461
468
|
|
|
462
|
-
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
469
|
+
- Temporarily restore id property on IContainerContext ([#16846](https://github.com/microsoft/FluidFramework/issues/16846)) [9825a692dd](https://github.com/microsoft/FluidFramework/commits/9825a692dd27eded214e3978a7fd6028b05e6fab)
|
|
470
|
+
|
|
471
|
+
The `id` property on `IContainerContext` has been temporarily restored to ease the transition to `2.0.0-internal.6.x`.
|
|
472
|
+
It will be removed again in `2.0.0-internal.7.0.0`.
|
|
473
|
+
|
|
474
|
+
The original deprecation announcement can be found [here](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.0.0-internal.5.2.0).
|
|
475
|
+
|
|
476
|
+
- Remove use of @fluidframework/common-definitions ([#16638](https://github.com/microsoft/FluidFramework/issues/16638)) [a8c81509c9](https://github.com/microsoft/FluidFramework/commits/a8c81509c9bf09cfb2092ebcf7265205f9eb6dbf)
|
|
477
|
+
|
|
478
|
+
The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
|
|
479
|
+
imported from the **@fluidframework/core-interfaces** package:
|
|
480
|
+
|
|
481
|
+
- interface IDisposable
|
|
482
|
+
- interface IErrorEvent
|
|
483
|
+
- interface IErrorEvent
|
|
484
|
+
- interface IEvent
|
|
485
|
+
- interface IEventProvider
|
|
486
|
+
- interface ILoggingError
|
|
487
|
+
- interface ITaggedTelemetryPropertyType
|
|
488
|
+
- interface ITelemetryBaseEvent
|
|
489
|
+
- interface ITelemetryBaseLogger
|
|
490
|
+
- interface ITelemetryErrorEvent
|
|
491
|
+
- interface ITelemetryGenericEvent
|
|
492
|
+
- interface ITelemetryLogger
|
|
493
|
+
- interface ITelemetryPerformanceEvent
|
|
494
|
+
- interface ITelemetryProperties
|
|
495
|
+
- type ExtendEventProvider
|
|
496
|
+
- type IEventThisPlaceHolder
|
|
497
|
+
- type IEventTransformer
|
|
498
|
+
- type ReplaceIEventThisPlaceHolder
|
|
499
|
+
- type ReplaceIEventThisPlaceHolder
|
|
500
|
+
- type TelemetryEventCategory
|
|
501
|
+
- type TelemetryEventPropertyType
|
|
495
502
|
|
|
496
503
|
## 2.0.0-internal.6.1.0
|
|
497
504
|
|
|
@@ -501,82 +508,82 @@ Dependency updates only.
|
|
|
501
508
|
|
|
502
509
|
### Major Changes
|
|
503
510
|
|
|
504
|
-
-
|
|
511
|
+
- Removed IContainerContext.existing [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
505
512
|
|
|
506
|
-
|
|
513
|
+
The recommended means of checking for existing changed to the instantiateRuntime param in 2021, and the IContainerContext.existing member was formally deprecated in 2.0.0-internal.2.0.0. This member is now removed.
|
|
507
514
|
|
|
508
|
-
-
|
|
515
|
+
- Remove closeAndGetPendingLocalState from IContainer [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
509
516
|
|
|
510
|
-
|
|
511
|
-
|
|
517
|
+
This change removes the deprecated and experimental method closeAndGetPendingLocalState from IContainer. It continues to
|
|
518
|
+
exist on IContainerExperimental.
|
|
512
519
|
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
520
|
+
IContainerExperimental is an interface that is easily casted to, which enables partners to access experimental features for testing and evaluation.
|
|
521
|
+
Moving the experimental method off IContainer will reduce exposure and churn on that production interface as we iterate
|
|
522
|
+
on and finalize our experimental features.
|
|
516
523
|
|
|
517
|
-
|
|
524
|
+
Experimental features should not be used in production environments.
|
|
518
525
|
|
|
519
|
-
-
|
|
526
|
+
- Loader container caching off by default [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
520
527
|
|
|
521
|
-
|
|
528
|
+
Loader container caching will now be off by default and the ability to control it is deprecated. Loader caching is deprecated and will be removed in a future release, as well as all caching functionality of containers. Please try not to rely on caching and inform us if you cannot do so.
|
|
522
529
|
|
|
523
|
-
|
|
530
|
+
If you run into trouble with this behavior, please report it ASAP to the FluidFramework team and use the following options (available in this release only) to unblock you:
|
|
524
531
|
|
|
525
|
-
|
|
526
|
-
|
|
532
|
+
- set `ILoaderProps.options.cache` to `true` when constructing a `Loader` object (see the `ILoaderOptions` interface)
|
|
533
|
+
- set `[LoaderHeader.cache]` header to `true` when requesting a container
|
|
527
534
|
|
|
528
|
-
-
|
|
535
|
+
- getPendingLocalState and closeAndGetPendingLocalState are now async [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
529
536
|
|
|
530
|
-
|
|
537
|
+
getPendingLocalState and closeAndGetPendingLocalState are now async to allow uploading blobs to attach to a DDS (in closing scenario). There is a new parameter in those methods at the container/runtime layer "notifyImminentClosure" which is true only when closing and ensures uploading blobs fast resolve and get attached. Once we apply stashed ops to new container, blob will try to reupload and we will know where to place its references.
|
|
531
538
|
|
|
532
|
-
-
|
|
539
|
+
- Upgraded typescript transpilation target to ES2020 [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
533
540
|
|
|
534
|
-
|
|
541
|
+
Upgraded typescript transpilation target to ES2020. This is done in order to decrease the bundle sizes of Fluid Framework packages. This has provided size improvements across the board for ex. Loader, Driver, Runtime etc. Reduced bundle sizes helps to load lesser code in apps and hence also helps to improve the perf.If any app wants to target any older versions of browsers with which this target version is not compatible, then they can use packages like babel to transpile to a older target.
|
|
535
542
|
|
|
536
|
-
-
|
|
543
|
+
- `Loader.resolve()` throws if `LoaderHeader.sequenceNumber` and `IContainerLoadMode.opsBeforeReturn` do not match [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
537
544
|
|
|
538
|
-
|
|
545
|
+
Calling `Loader.resolve()` will now throw an error if `LoaderHeader.sequenceNumber` is defined but `IContainerLoadMode.opsBeforeReturn` is not set to "sequenceNumber". Vice versa, `Loader.resolve()` will also throw an error if `IContainerLoadMode.opsBeforeReturn` is set to "sequenceNumber" but `LoaderHeader.sequenceNumber` is not defined.
|
|
539
546
|
|
|
540
|
-
-
|
|
547
|
+
- IDeltaManager members disposed and dispose() removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
541
548
|
|
|
542
|
-
|
|
549
|
+
IDeltaManager members disposed and dispose() were deprecated in 2.0.0-internal.5.3.0 and have now been removed.
|
|
543
550
|
|
|
544
|
-
-
|
|
551
|
+
- Request APIs deprecated on ILoader [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
545
552
|
|
|
546
|
-
|
|
547
|
-
|
|
553
|
+
The `request` API (associated with the `IFluidRouter` interface) has been deprecated on `ILoader` and `Loader`.
|
|
554
|
+
Please migrate all usage to using the `IContainer.request(...)` method if using a dynamic request URL, or to the `IContainer.getEntryPoint()` method if trying to obtain the application-specified root object.
|
|
548
555
|
|
|
549
|
-
|
|
556
|
+
**Note:** The `IContainer.request(...)` method will be deprecated in an upcoming release, so do not rely on this method for a long-term solution (the APIs around `entryPoint` and `getEntryPoint()` will become required and available for usage in its place).
|
|
550
557
|
|
|
551
|
-
|
|
552
|
-
|
|
558
|
+
After calling `ILoader.resolve(...)`, call the `request(...)` method on the returned `IContainer` with a corresponding request URL. For converting a request URL from `Loader` to `Container`, use the `IUrlResolver` passed into the `Loader`'s constructor.
|
|
559
|
+
The following is an example of what this change may look like:
|
|
553
560
|
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
561
|
+
```
|
|
562
|
+
// OLD
|
|
563
|
+
const request: IRequest;
|
|
564
|
+
const urlResolver = new YourUrlResolver();
|
|
565
|
+
const loader = new Loader({ urlResolver, ... });
|
|
559
566
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
567
|
+
await loader.resolve(request);
|
|
568
|
+
const response = loader.request(request);
|
|
569
|
+
```
|
|
563
570
|
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
571
|
+
```
|
|
572
|
+
// NEW
|
|
573
|
+
const request: IRequest;
|
|
574
|
+
const urlResolver = new YourUrlResolver();
|
|
575
|
+
const loader = new Loader({ urlResolver, ... });
|
|
569
576
|
|
|
570
|
-
|
|
571
|
-
|
|
577
|
+
const container = await loader.resolve(request);
|
|
578
|
+
const resolvedUrl: IRequest = urlResolver.resolve(request);
|
|
572
579
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
580
|
+
// Parse the `resolvedUrl.url` property as necessary before passing to `container.request(...)`
|
|
581
|
+
// For an example, see the `Loader.resolveCore(...)` method
|
|
582
|
+
const parsedResolvedUrl = // implement parse logic here
|
|
583
|
+
const response = container.request(parsedResolvedUrl);
|
|
584
|
+
```
|
|
578
585
|
|
|
579
|
-
|
|
586
|
+
Status on removal of the request pattern is tracked in [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
580
587
|
|
|
581
588
|
## 2.0.0-internal.5.4.0
|
|
582
589
|
|
|
@@ -586,28 +593,28 @@ Dependency updates only.
|
|
|
586
593
|
|
|
587
594
|
### Minor Changes
|
|
588
595
|
|
|
589
|
-
-
|
|
596
|
+
- Move closeAndGetPendingLocalState to IContainerExperimental ([#16302](https://github.com/microsoft/FluidFramework/issues/16302)) [93151af787](https://github.com/microsoft/FluidFramework/commits/93151af787b76e547cf3460df47f81832131db8c)
|
|
590
597
|
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
598
|
+
This change deprecates the experimental method closeAndGetPendingLocalState on IContainer and moves it to IContainerExperimental.
|
|
599
|
+
IContainerExperimental is an interface that is easily casted to, which enables partners to access experimental features for testing and evaluation.
|
|
600
|
+
Moving the experimental method off IContainer will reduce exposure and churn on that production interface as we iterate on and finalize our experimental features.
|
|
601
|
+
Experimental features should not be used in production environments.
|
|
595
602
|
|
|
596
603
|
## 2.0.0-internal.5.2.0
|
|
597
604
|
|
|
598
605
|
### Minor Changes
|
|
599
606
|
|
|
600
|
-
-
|
|
607
|
+
- IContainerContext members deprecated ([#16180](https://github.com/microsoft/FluidFramework/issues/16180)) [bf6a26cfe6](https://github.com/microsoft/FluidFramework/commits/bf6a26cfe6ac58386f2c9af260603a15b03ba84f)
|
|
601
608
|
|
|
602
|
-
|
|
609
|
+
IContainerContext members disposed, dispose(), serviceConfiguration, and id have been deprecated and will be removed in an upcoming release.
|
|
603
610
|
|
|
604
|
-
|
|
611
|
+
disposed - The disposed state on the IContainerContext is not meaningful to the runtime.
|
|
605
612
|
|
|
606
|
-
|
|
613
|
+
dispose() - The runtime is not permitted to dispose the IContainerContext, this results in an inconsistent system state.
|
|
607
614
|
|
|
608
|
-
|
|
615
|
+
serviceConfiguration - This property is redundant, and is unused by the runtime. The same information can be found via `deltaManager.serviceConfiguration` on this object if it is necessary.
|
|
609
616
|
|
|
610
|
-
|
|
617
|
+
id - The docId is already logged by the IContainerContext.taggedLogger for telemetry purposes, so this is generally unnecessary for telemetry. If the id is needed for other purposes it should be passed to the consumer explicitly.
|
|
611
618
|
|
|
612
619
|
## 2.0.0-internal.5.1.0
|
|
613
620
|
|
|
@@ -617,25 +624,25 @@ Dependency updates only.
|
|
|
617
624
|
|
|
618
625
|
### Major Changes
|
|
619
626
|
|
|
620
|
-
-
|
|
627
|
+
- IContainer.dispose is now required [96484ac6c2](https://github.com/microsoft/FluidFramework/commits/96484ac6c24fed60f79d717616cb9072ab476488)
|
|
621
628
|
|
|
622
|
-
|
|
623
|
-
|
|
629
|
+
`IContainer.dispose` is now a required method. This method should dispose any resources and switch the container to a
|
|
630
|
+
permanently disconnected state.
|
|
624
631
|
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
632
|
+
See the
|
|
633
|
+
[Closure](https://github.com/microsoft/FluidFramework/blob/main/packages/loader/container-loader/README.md#closure)
|
|
634
|
+
section of Loader README.md for more details.
|
|
628
635
|
|
|
629
|
-
-
|
|
636
|
+
- Calling `IContainer.close(...)` will no longer dispose the container runtime, document service, or document storage service. [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
|
|
630
637
|
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
638
|
+
If the container is not expected to be used after the `close(...)` call, replace it instead with a
|
|
639
|
+
`IContainer.dispose(...)` call (this should be the most common case). Using `IContainer.dispose(...)` will no longer
|
|
640
|
+
switch the container to "readonly" mode and relevant code should instead listen to the Container's "disposed" event.
|
|
634
641
|
|
|
635
|
-
|
|
636
|
-
|
|
642
|
+
If you intend to pass your own critical error to the container, use `IContainer.close(...)`. Once you are done using the
|
|
643
|
+
container, call `IContainer.dispose(...)`.
|
|
637
644
|
|
|
638
|
-
|
|
645
|
+
See the [Closure](packages/loader/container-loader/README.md#Closure) section of Loader README.md for more details.
|
|
639
646
|
|
|
640
647
|
## 2.0.0-internal.4.4.0
|
|
641
648
|
|
|
@@ -645,11 +652,11 @@ Dependency updates only.
|
|
|
645
652
|
|
|
646
653
|
### Minor Changes
|
|
647
654
|
|
|
648
|
-
-
|
|
655
|
+
- Container-loader deprecations ([#14891](https://github.com/microsoft/FluidFramework/pull-requests/14891)) [961e96f3c9](https://github.com/microsoft/FluidFramework/commits/961e96f3c92d1dcf9575e56c703fe1779af5442d)
|
|
649
656
|
|
|
650
|
-
|
|
657
|
+
The following types in the @fluidframework/container-loader package are not used by, or necessary to use our public api, so will be removed from export in the next major release:
|
|
651
658
|
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
659
|
+
- IContainerLoadOptions
|
|
660
|
+
- IContainerConfig
|
|
661
|
+
- IPendingContainerState
|
|
662
|
+
- ISerializableBlobContents
|