@fluidframework/container-loader 2.23.0 → 2.31.0
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 +363 -341
- package/api-report/container-loader.legacy.alpha.api.md +0 -6
- package/dist/container.d.ts +3 -0
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +6 -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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +0 -1
- package/dist/loader.d.ts +1 -15
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.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 +3 -0
- package/lib/container.d.ts.map +1 -1
- package/lib/container.js +5 -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/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +0 -1
- package/lib/loader.d.ts +1 -15
- package/lib/loader.d.ts.map +1 -1
- package/lib/loader.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 -17
- package/src/container.ts +5 -1
- package/src/containerContext.ts +6 -2
- package/src/index.ts +0 -1
- package/src/loader.ts +1 -16
- 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,5 +1,24 @@
|
|
|
1
1
|
# @fluidframework/container-loader
|
|
2
2
|
|
|
3
|
+
## 2.31.0
|
|
4
|
+
|
|
5
|
+
Dependency updates only.
|
|
6
|
+
|
|
7
|
+
## 2.30.0
|
|
8
|
+
|
|
9
|
+
### Minor Changes
|
|
10
|
+
|
|
11
|
+
- Deprecated ILoaderOptions have been removed ([#24046](https://github.com/microsoft/FluidFramework/pull/24046)) [24b4c8cf09](https://github.com/microsoft/FluidFramework/commit/24b4c8cf098b499b9b7cd1ea94c2bf627e259956)
|
|
12
|
+
|
|
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.
|
|
14
|
+
|
|
15
|
+
- IContainer.getContainerPackageInfo() is now deprecated ([#23840](https://github.com/microsoft/FluidFramework/pull/23840)) [521be72619](https://github.com/microsoft/FluidFramework/commit/521be726198a1f88f4f8f06c0f273528a49d2957)
|
|
16
|
+
|
|
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.
|
|
19
|
+
|
|
20
|
+
See [issue #23898](https://github.com/microsoft/FluidFramework/issues/23898) for details.
|
|
21
|
+
|
|
3
22
|
## 2.23.0
|
|
4
23
|
|
|
5
24
|
Dependency updates only.
|
|
@@ -24,56 +43,56 @@ Dependency updates only.
|
|
|
24
43
|
|
|
25
44
|
### Minor Changes
|
|
26
45
|
|
|
27
|
-
-
|
|
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)
|
|
28
47
|
|
|
29
|
-
|
|
48
|
+
#### Overview
|
|
30
49
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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.
|
|
34
53
|
|
|
35
|
-
|
|
54
|
+
##### Use `createDetachedContainer` to create a detached container
|
|
36
55
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
56
|
+
```typescript
|
|
57
|
+
export async function createDetachedContainer(
|
|
58
|
+
createDetachedContainerProps: ICreateDetachedContainerProps,
|
|
59
|
+
): Promise<IContainer> {}
|
|
60
|
+
```
|
|
42
61
|
|
|
43
|
-
|
|
44
|
-
|
|
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.
|
|
45
64
|
|
|
46
|
-
|
|
65
|
+
##### Use `loadExistingContainer` to load an existing container
|
|
47
66
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
67
|
+
```typescript
|
|
68
|
+
export async function loadExistingContainer(
|
|
69
|
+
loadExistingContainerProps: ILoadExistingContainerProps,
|
|
70
|
+
): Promise<IContainer> {}
|
|
71
|
+
```
|
|
53
72
|
|
|
54
|
-
|
|
55
|
-
|
|
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.
|
|
56
75
|
|
|
57
|
-
|
|
76
|
+
##### Use `rehydrateDetachedContainer` to create a detached container from a serializedState of another container
|
|
58
77
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
78
|
+
```typescript
|
|
79
|
+
export async function rehydrateDetachedContainer(
|
|
80
|
+
rehydrateDetachedContainerProps: IRehydrateDetachedContainerProps,
|
|
81
|
+
): Promise<IContainer> {}
|
|
82
|
+
```
|
|
64
83
|
|
|
65
|
-
|
|
66
|
-
|
|
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.
|
|
67
86
|
|
|
68
|
-
|
|
87
|
+
##### Note on `ICreateAndLoadContainerProps`.
|
|
69
88
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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`.
|
|
77
96
|
|
|
78
97
|
## 2.11.0
|
|
79
98
|
|
|
@@ -83,19 +102,19 @@ Dependency updates only.
|
|
|
83
102
|
|
|
84
103
|
### Minor Changes
|
|
85
104
|
|
|
86
|
-
-
|
|
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)
|
|
87
106
|
|
|
88
|
-
|
|
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`.
|
|
89
108
|
|
|
90
|
-
|
|
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.
|
|
91
110
|
|
|
92
|
-
|
|
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.
|
|
93
112
|
|
|
94
|
-
|
|
113
|
+
#### Alternatives
|
|
95
114
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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`.
|
|
99
118
|
|
|
100
119
|
## 2.5.0
|
|
101
120
|
|
|
@@ -113,11 +132,11 @@ Dependency updates only.
|
|
|
113
132
|
|
|
114
133
|
### Minor Changes
|
|
115
134
|
|
|
116
|
-
-
|
|
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)
|
|
117
136
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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`.
|
|
121
140
|
|
|
122
141
|
## 2.1.0
|
|
123
142
|
|
|
@@ -127,180 +146,180 @@ Dependency updates only.
|
|
|
127
146
|
|
|
128
147
|
### Minor Changes
|
|
129
148
|
|
|
130
|
-
-
|
|
149
|
+
- Update to TypeScript 5.4 ([#21214](https://github.com/microsoft/FluidFramework/pull/21214)) [0e6256c722](https://github.com/microsoft/FluidFramework/commit/0e6256c722d8bf024f4325bf02547daeeb18bfa6)
|
|
131
150
|
|
|
132
|
-
|
|
151
|
+
Update package implementations to use TypeScript 5.4.5.
|
|
133
152
|
|
|
134
|
-
-
|
|
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)
|
|
135
154
|
|
|
136
|
-
|
|
155
|
+
IDetachedBlobStorage will be removed in a future release without a replacement.
|
|
137
156
|
|
|
138
|
-
|
|
157
|
+
When applications load a container without specifying ILoaderServices.detachedBlobStorage, an implementation which stores the blobs in memory will be injected by Fluid.
|
|
139
158
|
|
|
140
|
-
|
|
141
|
-
|
|
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.
|
|
142
161
|
|
|
143
|
-
-
|
|
162
|
+
- Update to ES 2022 ([#21292](https://github.com/microsoft/FluidFramework/pull/21292)) [68921502f7](https://github.com/microsoft/FluidFramework/commit/68921502f79b1833c4cd6d0fe339bfb126a712c7)
|
|
144
163
|
|
|
145
|
-
|
|
164
|
+
Update tsconfig to target ES 2022.
|
|
146
165
|
|
|
147
166
|
## 2.0.0-rc.4.0.0
|
|
148
167
|
|
|
149
168
|
### Major Changes
|
|
150
169
|
|
|
151
|
-
-
|
|
170
|
+
- Audience & connection sequencing improvements [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
152
171
|
|
|
153
|
-
|
|
172
|
+
Here are breaking changes in Audience behavior:
|
|
154
173
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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.
|
|
159
178
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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"
|
|
163
182
|
|
|
164
183
|
## 2.0.0-rc.3.0.0
|
|
165
184
|
|
|
166
185
|
### Major Changes
|
|
167
186
|
|
|
168
|
-
-
|
|
187
|
+
- container-definitions: IContainerContext.getSpecifiedCodeDetails() removed [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
169
188
|
|
|
170
|
-
|
|
189
|
+
IContainerContext.getSpecifiedCodeDetails() was deprecated in 0.42 and has now been removed.
|
|
171
190
|
|
|
172
|
-
-
|
|
191
|
+
- Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
173
192
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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.
|
|
177
196
|
|
|
178
|
-
|
|
197
|
+
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
|
|
179
198
|
|
|
180
|
-
|
|
181
|
-
|
|
199
|
+
- `"moduleResolution": "Node16"` with `"module": "Node16"`
|
|
200
|
+
- `"moduleResolution": "Bundler"` with `"module": "ESNext"`
|
|
182
201
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
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.
|
|
187
206
|
|
|
188
|
-
|
|
189
|
-
|
|
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.**
|
|
190
209
|
|
|
191
210
|
### Minor Changes
|
|
192
211
|
|
|
193
|
-
-
|
|
212
|
+
- driver-definitions: update submitSignal content type to string [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
194
213
|
|
|
195
|
-
|
|
214
|
+
Change IDocumentDeltaConnection.submitSignal's content argument type to string which represents actual/known use.
|
|
196
215
|
|
|
197
216
|
## 2.0.0-rc.2.0.0
|
|
198
217
|
|
|
199
218
|
### Minor Changes
|
|
200
219
|
|
|
201
|
-
-
|
|
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)
|
|
202
221
|
|
|
203
|
-
|
|
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.
|
|
204
223
|
|
|
205
|
-
|
|
224
|
+
The functionality is currently behind a configuration `Fluid.Container.RetryOnAttachFailure` which can be set to `true` to enable the new functionality.
|
|
206
225
|
|
|
207
|
-
|
|
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`
|
|
208
227
|
|
|
209
|
-
-
|
|
228
|
+
- driver-definitions: Deprecate `ISnapshotContents` ([#19314](https://github.com/microsoft/FluidFramework/issues/19314)) [fc731b69de](https://github.com/microsoft/FluidFramework/commits/fc731b69deed4a2987e9b97d8918492d689bafbc)
|
|
210
229
|
|
|
211
|
-
|
|
230
|
+
`ISnapshotContents` is deprecated. It has been replaced with `ISnapshot`.
|
|
212
231
|
|
|
213
|
-
-
|
|
232
|
+
- driver-definitions: repositoryUrl removed from IDocumentStorageService ([#19522](https://github.com/microsoft/FluidFramework/issues/19522)) [90eb3c9d33](https://github.com/microsoft/FluidFramework/commits/90eb3c9d33d80e24caa1393a50f414c5602f6aa3)
|
|
214
233
|
|
|
215
|
-
|
|
234
|
+
The `repositoryUrl` member of `IDocumentStorageService` was unused and always equal to the empty string. It has been removed.
|
|
216
235
|
|
|
217
|
-
-
|
|
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)
|
|
218
237
|
|
|
219
|
-
|
|
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.
|
|
220
239
|
|
|
221
|
-
-
|
|
240
|
+
- Deprecated error-related enums have been removed ([#19067](https://github.com/microsoft/FluidFramework/issues/19067)) [59793302e5](https://github.com/microsoft/FluidFramework/commits/59793302e56784cfb6ace0e6469345f3565b3312)
|
|
222
241
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
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.
|
|
228
247
|
|
|
229
|
-
-
|
|
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)
|
|
230
249
|
|
|
231
|
-
|
|
250
|
+
`serialize` is being changed to align format with similar APIs. There are no changes in external behaviour.
|
|
232
251
|
|
|
233
|
-
-
|
|
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)
|
|
234
253
|
|
|
235
|
-
|
|
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.
|
|
236
255
|
|
|
237
|
-
-
|
|
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)
|
|
238
257
|
|
|
239
|
-
|
|
258
|
+
Added `containerMetadata` prop on IContainer interface.
|
|
240
259
|
|
|
241
|
-
-
|
|
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)
|
|
242
261
|
|
|
243
|
-
|
|
262
|
+
The `ISignalEnvelope` interface has been moved to the @fluidframework/core-interfaces package.
|
|
244
263
|
|
|
245
264
|
## 2.0.0-rc.1.0.0
|
|
246
265
|
|
|
247
266
|
### Minor Changes
|
|
248
267
|
|
|
249
|
-
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
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)
|
|
278
297
|
|
|
279
298
|
## 2.0.0-internal.8.0.0
|
|
280
299
|
|
|
281
300
|
### Major Changes
|
|
282
301
|
|
|
283
|
-
-
|
|
302
|
+
- container-loader: Removed request(...) and IFluidRouter from ILoader and Loader [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
284
303
|
|
|
285
|
-
|
|
286
|
-
|
|
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`.
|
|
287
306
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
307
|
+
See
|
|
308
|
+
[Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
309
|
+
for more details.
|
|
291
310
|
|
|
292
|
-
-
|
|
311
|
+
- container-definitions: Fix ISnapshotTreeWithBlobContents and mark internal [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
293
312
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
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.
|
|
297
316
|
|
|
298
|
-
-
|
|
317
|
+
- container-loader: Removed requestResolvedObjectFromContainer [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
299
318
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
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.
|
|
304
323
|
|
|
305
324
|
## 2.0.0-internal.7.4.0
|
|
306
325
|
|
|
@@ -318,119 +337,122 @@ Dependency updates only.
|
|
|
318
337
|
|
|
319
338
|
### Minor Changes
|
|
320
339
|
|
|
321
|
-
-
|
|
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)
|
|
322
341
|
|
|
323
|
-
|
|
342
|
+
Moves the 2 package exports of `location-redirection-utils` to the `container-loader` package.
|
|
324
343
|
|
|
325
|
-
|
|
344
|
+
Exports from `location-redirection-utils` are now deprecated, and the package itself will be removed in an upcoming release.
|
|
326
345
|
|
|
327
346
|
## 2.0.0-internal.7.0.0
|
|
328
347
|
|
|
329
348
|
### Major Changes
|
|
330
349
|
|
|
331
|
-
-
|
|
350
|
+
- odsp-driver: Load container in readonly mode when driver throws DriverErrorType.outOfStorage [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
332
351
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
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:
|
|
338
357
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
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
|
+
```
|
|
348
370
|
|
|
349
|
-
-
|
|
371
|
+
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
350
372
|
|
|
351
|
-
|
|
373
|
+
This included the following changes from the protocol-definitions release:
|
|
352
374
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
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.
|
|
359
381
|
|
|
360
|
-
-
|
|
382
|
+
- DEPRECATED: container-loader: Various request related APIs have been deprecated [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
361
383
|
|
|
362
|
-
|
|
384
|
+
Please remove all calls to the following functions and instead use the new `entryPoint` pattern:
|
|
363
385
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
386
|
+
- `requestFluidObject`
|
|
387
|
+
- `requestResolvedObjectFromContainer`
|
|
388
|
+
- `getDefaultObjectFromContainer`
|
|
389
|
+
- `getObjectWithIdFromContainer`
|
|
390
|
+
- `getObjectFromContainer`
|
|
369
391
|
|
|
370
|
-
|
|
392
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
371
393
|
|
|
372
|
-
-
|
|
394
|
+
- container-definitions: IContainer's and IDataStore's IFluidRouter capabilities are deprecated [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
373
395
|
|
|
374
|
-
|
|
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.
|
|
375
397
|
|
|
376
|
-
|
|
398
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
377
399
|
|
|
378
|
-
-
|
|
400
|
+
- routerlicious-driver: remove dead blob aggregation concepts and code [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
379
401
|
|
|
380
|
-
|
|
402
|
+
Dead concepts blob aggregation like `aggregateBlobsSmallerThanBytes` and `minBlobSize` have been removed.
|
|
381
403
|
|
|
382
|
-
-
|
|
404
|
+
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
383
405
|
|
|
384
|
-
|
|
406
|
+
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
385
407
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
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
|
|
406
428
|
|
|
407
|
-
-
|
|
429
|
+
- test-utils: provideEntryPoint is required [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
408
430
|
|
|
409
|
-
|
|
431
|
+
The optional `provideEntryPoint` method has become required on a number of constructors. A value will need to be provided to the following classes:
|
|
410
432
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
433
|
+
- `BaseContainerRuntimeFactory`
|
|
434
|
+
- `RuntimeFactory`
|
|
435
|
+
- `ContainerRuntime` (constructor and `loadRuntime`)
|
|
436
|
+
- `FluidDataStoreRuntime`
|
|
415
437
|
|
|
416
|
-
|
|
417
|
-
|
|
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.
|
|
418
440
|
|
|
419
|
-
|
|
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.
|
|
420
442
|
|
|
421
|
-
|
|
443
|
+
For more details, see [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
422
444
|
|
|
423
|
-
-
|
|
445
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
424
446
|
|
|
425
|
-
|
|
447
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
426
448
|
|
|
427
|
-
-
|
|
449
|
+
- container-loader: Containers will connect in read-mode by default [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
428
450
|
|
|
429
|
-
|
|
451
|
+
When a container is loaded, it will connect in read-mode unless it is loaded with a pending state containing stashed ops.
|
|
430
452
|
|
|
431
|
-
-
|
|
453
|
+
- container-loader: Container caching in the Loader is removed [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
432
454
|
|
|
433
|
-
|
|
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.
|
|
434
456
|
|
|
435
457
|
## 2.0.0-internal.6.4.0
|
|
436
458
|
|
|
@@ -444,39 +466,39 @@ Dependency updates only.
|
|
|
444
466
|
|
|
445
467
|
### Minor Changes
|
|
446
468
|
|
|
447
|
-
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
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
|
|
480
502
|
|
|
481
503
|
## 2.0.0-internal.6.1.0
|
|
482
504
|
|
|
@@ -486,82 +508,82 @@ Dependency updates only.
|
|
|
486
508
|
|
|
487
509
|
### Major Changes
|
|
488
510
|
|
|
489
|
-
-
|
|
511
|
+
- Removed IContainerContext.existing [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
490
512
|
|
|
491
|
-
|
|
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.
|
|
492
514
|
|
|
493
|
-
-
|
|
515
|
+
- Remove closeAndGetPendingLocalState from IContainer [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
494
516
|
|
|
495
|
-
|
|
496
|
-
|
|
517
|
+
This change removes the deprecated and experimental method closeAndGetPendingLocalState from IContainer. It continues to
|
|
518
|
+
exist on IContainerExperimental.
|
|
497
519
|
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
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.
|
|
501
523
|
|
|
502
|
-
|
|
524
|
+
Experimental features should not be used in production environments.
|
|
503
525
|
|
|
504
|
-
-
|
|
526
|
+
- Loader container caching off by default [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
505
527
|
|
|
506
|
-
|
|
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.
|
|
507
529
|
|
|
508
|
-
|
|
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:
|
|
509
531
|
|
|
510
|
-
|
|
511
|
-
|
|
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
|
|
512
534
|
|
|
513
|
-
-
|
|
535
|
+
- getPendingLocalState and closeAndGetPendingLocalState are now async [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
514
536
|
|
|
515
|
-
|
|
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.
|
|
516
538
|
|
|
517
|
-
-
|
|
539
|
+
- Upgraded typescript transpilation target to ES2020 [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
518
540
|
|
|
519
|
-
|
|
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.
|
|
520
542
|
|
|
521
|
-
-
|
|
543
|
+
- `Loader.resolve()` throws if `LoaderHeader.sequenceNumber` and `IContainerLoadMode.opsBeforeReturn` do not match [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
522
544
|
|
|
523
|
-
|
|
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.
|
|
524
546
|
|
|
525
|
-
-
|
|
547
|
+
- IDeltaManager members disposed and dispose() removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
526
548
|
|
|
527
|
-
|
|
549
|
+
IDeltaManager members disposed and dispose() were deprecated in 2.0.0-internal.5.3.0 and have now been removed.
|
|
528
550
|
|
|
529
|
-
-
|
|
551
|
+
- Request APIs deprecated on ILoader [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
530
552
|
|
|
531
|
-
|
|
532
|
-
|
|
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.
|
|
533
555
|
|
|
534
|
-
|
|
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).
|
|
535
557
|
|
|
536
|
-
|
|
537
|
-
|
|
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:
|
|
538
560
|
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
561
|
+
```
|
|
562
|
+
// OLD
|
|
563
|
+
const request: IRequest;
|
|
564
|
+
const urlResolver = new YourUrlResolver();
|
|
565
|
+
const loader = new Loader({ urlResolver, ... });
|
|
544
566
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
567
|
+
await loader.resolve(request);
|
|
568
|
+
const response = loader.request(request);
|
|
569
|
+
```
|
|
548
570
|
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
571
|
+
```
|
|
572
|
+
// NEW
|
|
573
|
+
const request: IRequest;
|
|
574
|
+
const urlResolver = new YourUrlResolver();
|
|
575
|
+
const loader = new Loader({ urlResolver, ... });
|
|
554
576
|
|
|
555
|
-
|
|
556
|
-
|
|
577
|
+
const container = await loader.resolve(request);
|
|
578
|
+
const resolvedUrl: IRequest = urlResolver.resolve(request);
|
|
557
579
|
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
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
|
+
```
|
|
563
585
|
|
|
564
|
-
|
|
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)
|
|
565
587
|
|
|
566
588
|
## 2.0.0-internal.5.4.0
|
|
567
589
|
|
|
@@ -571,28 +593,28 @@ Dependency updates only.
|
|
|
571
593
|
|
|
572
594
|
### Minor Changes
|
|
573
595
|
|
|
574
|
-
-
|
|
596
|
+
- Move closeAndGetPendingLocalState to IContainerExperimental ([#16302](https://github.com/microsoft/FluidFramework/issues/16302)) [93151af787](https://github.com/microsoft/FluidFramework/commits/93151af787b76e547cf3460df47f81832131db8c)
|
|
575
597
|
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
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.
|
|
580
602
|
|
|
581
603
|
## 2.0.0-internal.5.2.0
|
|
582
604
|
|
|
583
605
|
### Minor Changes
|
|
584
606
|
|
|
585
|
-
-
|
|
607
|
+
- IContainerContext members deprecated ([#16180](https://github.com/microsoft/FluidFramework/issues/16180)) [bf6a26cfe6](https://github.com/microsoft/FluidFramework/commits/bf6a26cfe6ac58386f2c9af260603a15b03ba84f)
|
|
586
608
|
|
|
587
|
-
|
|
609
|
+
IContainerContext members disposed, dispose(), serviceConfiguration, and id have been deprecated and will be removed in an upcoming release.
|
|
588
610
|
|
|
589
|
-
|
|
611
|
+
disposed - The disposed state on the IContainerContext is not meaningful to the runtime.
|
|
590
612
|
|
|
591
|
-
|
|
613
|
+
dispose() - The runtime is not permitted to dispose the IContainerContext, this results in an inconsistent system state.
|
|
592
614
|
|
|
593
|
-
|
|
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.
|
|
594
616
|
|
|
595
|
-
|
|
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.
|
|
596
618
|
|
|
597
619
|
## 2.0.0-internal.5.1.0
|
|
598
620
|
|
|
@@ -602,25 +624,25 @@ Dependency updates only.
|
|
|
602
624
|
|
|
603
625
|
### Major Changes
|
|
604
626
|
|
|
605
|
-
-
|
|
627
|
+
- IContainer.dispose is now required [96484ac6c2](https://github.com/microsoft/FluidFramework/commits/96484ac6c24fed60f79d717616cb9072ab476488)
|
|
606
628
|
|
|
607
|
-
|
|
608
|
-
|
|
629
|
+
`IContainer.dispose` is now a required method. This method should dispose any resources and switch the container to a
|
|
630
|
+
permanently disconnected state.
|
|
609
631
|
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
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.
|
|
613
635
|
|
|
614
|
-
-
|
|
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)
|
|
615
637
|
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
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.
|
|
619
641
|
|
|
620
|
-
|
|
621
|
-
|
|
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(...)`.
|
|
622
644
|
|
|
623
|
-
|
|
645
|
+
See the [Closure](packages/loader/container-loader/README.md#Closure) section of Loader README.md for more details.
|
|
624
646
|
|
|
625
647
|
## 2.0.0-internal.4.4.0
|
|
626
648
|
|
|
@@ -630,11 +652,11 @@ Dependency updates only.
|
|
|
630
652
|
|
|
631
653
|
### Minor Changes
|
|
632
654
|
|
|
633
|
-
-
|
|
655
|
+
- Container-loader deprecations ([#14891](https://github.com/microsoft/FluidFramework/pull-requests/14891)) [961e96f3c9](https://github.com/microsoft/FluidFramework/commits/961e96f3c92d1dcf9575e56c703fe1779af5442d)
|
|
634
656
|
|
|
635
|
-
|
|
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:
|
|
636
658
|
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
659
|
+
- IContainerLoadOptions
|
|
660
|
+
- IContainerConfig
|
|
661
|
+
- IPendingContainerState
|
|
662
|
+
- ISerializableBlobContents
|