@fluidframework/container-runtime 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 +593 -537
- package/api-report/container-runtime.legacy.alpha.api.md +0 -246
- package/dist/blobManager/blobManager.d.ts +11 -9
- package/dist/blobManager/blobManager.d.ts.map +1 -1
- package/dist/blobManager/blobManager.js +38 -39
- package/dist/blobManager/blobManager.js.map +1 -1
- package/dist/blobManager/blobManagerSnapSum.d.ts +2 -4
- package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
- package/dist/blobManager/blobManagerSnapSum.js +6 -6
- package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
- package/dist/channelCollection.d.ts +1 -7
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +2 -27
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +0 -43
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerRuntime.d.ts +40 -145
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +149 -364
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStoreContext.d.ts +6 -14
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +14 -26
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +2 -20
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +0 -2
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +8 -24
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +1 -3
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +1 -4
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +0 -1
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +6 -18
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +0 -29
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js +16 -5
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +12 -3
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +41 -21
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/pendingStateManager.d.ts +1 -0
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +12 -2
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/runCounter.d.ts +11 -0
- package/dist/runCounter.d.ts.map +1 -0
- package/dist/runCounter.js +43 -0
- package/dist/runCounter.js.map +1 -0
- package/dist/runtimeLayerCompatState.d.ts +51 -0
- package/dist/runtimeLayerCompatState.d.ts.map +1 -0
- package/dist/runtimeLayerCompatState.js +123 -0
- package/dist/runtimeLayerCompatState.js.map +1 -0
- package/dist/signalTelemetryProcessing.d.ts +33 -0
- package/dist/signalTelemetryProcessing.d.ts.map +1 -0
- package/dist/signalTelemetryProcessing.js +149 -0
- package/dist/signalTelemetryProcessing.js.map +1 -0
- package/dist/summary/documentSchema.d.ts +7 -31
- package/dist/summary/documentSchema.d.ts.map +1 -1
- package/dist/summary/documentSchema.js +2 -18
- package/dist/summary/documentSchema.js.map +1 -1
- package/dist/summary/index.d.ts +2 -1
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js +7 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +1 -3
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -3
- package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js +2 -7
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +1 -2
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +4 -23
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +2 -5
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +3 -11
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js +0 -1
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts +1 -1
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +2 -2
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +4 -4
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +1 -18
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +0 -27
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -2
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +1 -2
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +109 -22
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +3 -9
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +3 -9
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryHelpers.d.ts +19 -0
- package/dist/summary/summaryHelpers.d.ts.map +1 -0
- package/dist/summary/summaryHelpers.js +90 -0
- package/dist/summary/summaryHelpers.js.map +1 -0
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +0 -2
- package/dist/summary/summaryManager.js.map +1 -1
- package/lib/blobManager/blobManager.d.ts +11 -9
- package/lib/blobManager/blobManager.d.ts.map +1 -1
- package/lib/blobManager/blobManager.js +37 -37
- package/lib/blobManager/blobManager.js.map +1 -1
- package/lib/blobManager/blobManagerSnapSum.d.ts +2 -4
- package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
- package/lib/blobManager/blobManagerSnapSum.js +6 -6
- package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
- package/lib/channelCollection.d.ts +1 -7
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +3 -30
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +0 -43
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerRuntime.d.ts +40 -145
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +151 -372
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStoreContext.d.ts +6 -14
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +14 -26
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +3 -23
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +0 -2
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +8 -24
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +1 -3
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +1 -4
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +0 -1
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +7 -21
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +0 -29
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js.map +1 -1
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js +16 -5
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +12 -3
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +43 -23
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/pendingStateManager.d.ts +1 -0
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +12 -2
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/runCounter.d.ts +11 -0
- package/lib/runCounter.d.ts.map +1 -0
- package/lib/runCounter.js +39 -0
- package/lib/runCounter.js.map +1 -0
- package/lib/runtimeLayerCompatState.d.ts +51 -0
- package/lib/runtimeLayerCompatState.d.ts.map +1 -0
- package/lib/runtimeLayerCompatState.js +118 -0
- package/lib/runtimeLayerCompatState.js.map +1 -0
- package/lib/signalTelemetryProcessing.d.ts +33 -0
- package/lib/signalTelemetryProcessing.d.ts.map +1 -0
- package/lib/signalTelemetryProcessing.js +145 -0
- package/lib/signalTelemetryProcessing.js.map +1 -0
- package/lib/summary/documentSchema.d.ts +7 -31
- package/lib/summary/documentSchema.d.ts.map +1 -1
- package/lib/summary/documentSchema.js +2 -18
- package/lib/summary/documentSchema.js.map +1 -1
- package/lib/summary/index.d.ts +2 -1
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js +1 -0
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +1 -3
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -3
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js +2 -7
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +1 -2
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +4 -23
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +2 -5
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +3 -11
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js +0 -1
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts +1 -1
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts +2 -2
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +5 -5
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +1 -18
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js +1 -25
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -2
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +1 -2
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +109 -22
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +3 -9
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +3 -9
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryHelpers.d.ts +19 -0
- package/lib/summary/summaryHelpers.d.ts.map +1 -0
- package/lib/summary/summaryHelpers.js +84 -0
- package/lib/summary/summaryHelpers.js.map +1 -0
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +0 -2
- package/lib/summary/summaryManager.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +20 -23
- package/src/blobManager/blobManager.ts +70 -62
- package/src/blobManager/blobManagerSnapSum.ts +7 -9
- package/src/channelCollection.ts +4 -32
- package/src/connectionTelemetry.ts +0 -51
- package/src/containerRuntime.ts +259 -622
- package/src/dataStoreContext.ts +24 -33
- package/src/gc/{garbageCollection.md → README.md} +17 -19
- package/src/gc/garbageCollection.ts +9 -26
- package/src/gc/gcConfigs.ts +3 -6
- package/src/gc/gcDefinitions.ts +10 -28
- package/src/gc/gcHelpers.ts +0 -5
- package/src/gc/gcSummaryStateTracker.ts +1 -2
- package/src/gc/gcTelemetry.ts +8 -15
- package/src/index.ts +6 -6
- package/src/messageTypes.ts +0 -2
- package/src/opLifecycle/batchManager.ts +20 -6
- package/src/opLifecycle/outbox.ts +64 -24
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +18 -2
- package/src/runCounter.ts +25 -0
- package/src/runtimeLayerCompatState.ts +143 -0
- package/src/signalTelemetryProcessing.ts +233 -0
- package/src/summary/documentSchema.ts +7 -38
- package/src/summary/index.ts +12 -0
- package/src/summary/orderedClientElection.ts +1 -3
- package/src/summary/runWhileConnectedCoordinator.ts +3 -8
- package/src/summary/runningSummarizer.ts +12 -20
- package/src/summary/summarizer.ts +6 -18
- package/src/summary/summarizerClientElection.ts +0 -2
- package/src/summary/summarizerHeuristics.ts +1 -2
- package/src/summary/summarizerNode/summarizerNode.ts +6 -5
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +1 -27
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +2 -3
- package/src/summary/summarizerTypes.ts +119 -23
- package/src/summary/summaryFormat.ts +4 -13
- package/src/summary/summaryGenerator.ts +1 -8
- package/src/summary/summaryHelpers.ts +118 -0
- package/src/summary/summaryManager.ts +0 -2
- package/tsconfig.json +1 -0
- package/dist/layerCompatState.d.ts +0 -19
- package/dist/layerCompatState.d.ts.map +0 -1
- package/dist/layerCompatState.js +0 -64
- package/dist/layerCompatState.js.map +0 -1
- package/lib/layerCompatState.d.ts +0 -19
- package/lib/layerCompatState.d.ts.map +0 -1
- package/lib/layerCompatState.js +0 -60
- package/lib/layerCompatState.js.map +0 -1
- package/prettier.config.cjs +0 -8
- package/src/layerCompatState.ts +0 -75
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,61 @@
|
|
|
1
1
|
# @fluidframework/container-runtime
|
|
2
2
|
|
|
3
|
+
## 2.31.0
|
|
4
|
+
|
|
5
|
+
Dependency updates only.
|
|
6
|
+
|
|
7
|
+
## 2.30.0
|
|
8
|
+
|
|
9
|
+
### Minor Changes
|
|
10
|
+
|
|
11
|
+
- Unnecessary exports are now removed from container-runtime ([#23981](https://github.com/microsoft/FluidFramework/pull/23981)) [74896b92e8](https://github.com/microsoft/FluidFramework/commit/74896b92e8878911e9e4874a8ac45e659a293110)
|
|
12
|
+
|
|
13
|
+
The following types in the @fluidframework/container-runtime are now removed. These types are unnecessary for external users of this package.
|
|
14
|
+
|
|
15
|
+
- currentDocumentVersionSchema
|
|
16
|
+
- DeletedResponseHeaderKey
|
|
17
|
+
- DocumentSchemaValueType
|
|
18
|
+
- DocumentsSchemaController
|
|
19
|
+
- GCFeatureMatrix
|
|
20
|
+
- GCNodeType
|
|
21
|
+
- GCVersion
|
|
22
|
+
- IBlobManagerLoadInfo
|
|
23
|
+
- ICancellableSummarizerController
|
|
24
|
+
- ICancellationToken
|
|
25
|
+
- IConnectableRuntime
|
|
26
|
+
- IContainerRuntimeMetadata
|
|
27
|
+
- ICreateContainerMetadata
|
|
28
|
+
- IDocumentSchema
|
|
29
|
+
- IDocumentSchemaChangeMessage
|
|
30
|
+
- IDocumentSchemaCurrent
|
|
31
|
+
- IDocumentSchemaFeatures
|
|
32
|
+
- IGCMetadata
|
|
33
|
+
- IGCStats
|
|
34
|
+
- IMarkPhaseStats
|
|
35
|
+
- IRefreshSummaryAckOptions
|
|
36
|
+
- ISerializedElection
|
|
37
|
+
- ISubmitSummaryOptions
|
|
38
|
+
- ISummarizerInternalsProvider
|
|
39
|
+
- ISummarizerRuntime
|
|
40
|
+
- ISummaryCancellationToken
|
|
41
|
+
- ISummaryMetadataMessage
|
|
42
|
+
- ISweepPhaseStats
|
|
43
|
+
- Summarizer
|
|
44
|
+
|
|
45
|
+
- The process and processDocumentSchemaOp functions have been removed ([#24018](https://github.com/microsoft/FluidFramework/pull/24018)) [bc35d543d5](https://github.com/microsoft/FluidFramework/commit/bc35d543d58c7e4bf28944b09d645cc26bf28a29)
|
|
46
|
+
|
|
47
|
+
`process` has been replaced by `processMessages` from the following:
|
|
48
|
+
|
|
49
|
+
- `FluidDataStoreRuntime`
|
|
50
|
+
- `IDeltaHandler`
|
|
51
|
+
- `IFluidDataStoreChannel`
|
|
52
|
+
- `MockFluidDataStoreRuntime`
|
|
53
|
+
- `MockDeltaConnection`
|
|
54
|
+
|
|
55
|
+
`processDocumentSchemaOp` has been replaced by `processDocumentSchemaMessages` from `DocumentsSchemaController`.
|
|
56
|
+
|
|
57
|
+
See the [deprecation release note](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.5.0#user-content-the-process-function-on-ifluiddatastorechannel-ideltahandler-mockfluiddatastoreruntime-and-mockdeltaconnection-is-now-deprecated-22840) for more details.
|
|
58
|
+
|
|
3
59
|
## 2.23.0
|
|
4
60
|
|
|
5
61
|
Dependency updates only.
|
|
@@ -12,85 +68,85 @@ Dependency updates only.
|
|
|
12
68
|
|
|
13
69
|
### Minor Changes
|
|
14
70
|
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
71
|
+
- Many unnecessary exports have been deprecated in the container-runtime package ([#23607](https://github.com/microsoft/FluidFramework/pull/23607)) [3da5b427ef](https://github.com/microsoft/FluidFramework/commit/3da5b427ef406799abade04196e43bb6d66d898d)
|
|
72
|
+
|
|
73
|
+
The following types in the `@fluidframework/container-runtime` package are now deprecated. These types are unnecessary for external users of this package.
|
|
74
|
+
|
|
75
|
+
- currentDocumentVersionSchema
|
|
76
|
+
- DeletedResponseHeaderKey
|
|
77
|
+
- DocumentSchemaValueType
|
|
78
|
+
- DocumentsSchemaController
|
|
79
|
+
- GCFeatureMatrix
|
|
80
|
+
- GCNodeType
|
|
81
|
+
- GCVersion
|
|
82
|
+
- IBlobManagerLoadInfo
|
|
83
|
+
- ICancellableSummarizerController
|
|
84
|
+
- ICancellationToken
|
|
85
|
+
- IConnectableRuntime
|
|
86
|
+
- IContainerRuntimeMetadata
|
|
87
|
+
- ICreateContainerMetadata
|
|
88
|
+
- IDocumentSchema
|
|
89
|
+
- IDocumentSchemaChangeMessage
|
|
90
|
+
- IDocumentSchemaCurrent
|
|
91
|
+
- IDocumentSchemaFeatures
|
|
92
|
+
- IGCMetadata
|
|
93
|
+
- IGCStats
|
|
94
|
+
- IMarkPhaseStats
|
|
95
|
+
- IRefreshSummaryAckOptions
|
|
96
|
+
- ISerializedElection
|
|
97
|
+
- ISubmitSummaryOptions
|
|
98
|
+
- ISummarizerInternalsProvider
|
|
99
|
+
- ISummarizerRuntime
|
|
100
|
+
- ISummaryCancellationToken
|
|
101
|
+
- ISummaryMetadataMessage
|
|
102
|
+
- ISweepPhaseStats
|
|
103
|
+
- Summarizer
|
|
48
104
|
|
|
49
105
|
## 2.20.0
|
|
50
106
|
|
|
51
107
|
### Minor Changes
|
|
52
108
|
|
|
53
|
-
-
|
|
109
|
+
- The ContainerRuntime class has been removed ([#23341](https://github.com/microsoft/FluidFramework/pull/23341)) [61ba06aa98](https://github.com/microsoft/FluidFramework/commit/61ba06aa9881c30ffeeedcaaede9c5a1a0c81abd)
|
|
54
110
|
|
|
55
|
-
|
|
56
|
-
|
|
111
|
+
The `ContainerRuntime` class was [deprecated in version 2.12.0](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-the-containerruntime-class-is-now-deprecated-23331) and has been removed.
|
|
112
|
+
Use `IContainerRuntime` to replace type usages and use the free function `loadContainerRuntime` to replace usages of the static method `ContainerRuntime.loadRuntime`.
|
|
57
113
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
114
|
+
See the [deprecation
|
|
115
|
+
announcement](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-the-containerruntime-class-is-now-deprecated-23331)
|
|
116
|
+
for more details about how to update existing code.
|
|
61
117
|
|
|
62
|
-
-
|
|
118
|
+
- The IContainerRuntimeOptions.flushMode property has been removed ([#23337](https://github.com/microsoft/FluidFramework/pull/23337)) [fe8279c774](https://github.com/microsoft/FluidFramework/commit/fe8279c774fcc3c4805b49ce4f64d0e03a64c39b)
|
|
63
119
|
|
|
64
|
-
|
|
120
|
+
The `IContainerRuntimeOptions.flushMode` property was [deprecated in version 2.12.0](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-icontainerruntimeoptionsflushmode-is-now-deprecated-23288) and has been removed.
|
|
65
121
|
|
|
66
|
-
|
|
67
|
-
|
|
122
|
+
Only the default value, `FlushMode.TurnBased`, is supported when calling `ContainerRuntime.loadRuntime` directly,
|
|
123
|
+
so there's no need for consumers to pass this option in.
|
|
68
124
|
|
|
69
|
-
-
|
|
125
|
+
- The createDataStoreWithProps APIs on ContainerRuntime and IContainerRuntimeBase have been removed ([#22996](https://github.com/microsoft/FluidFramework/pull/22996)) [bd243fb292](https://github.com/microsoft/FluidFramework/commit/bd243fb2927915d87c42486e21ee0c990962a9a7)
|
|
70
126
|
|
|
71
|
-
|
|
72
|
-
|
|
127
|
+
`ContainerRuntime.createDataStoreWithProps` and `IContainerRuntimeBase.createDataStoreWithProps`
|
|
128
|
+
were [deprecated in version 0.25.0](https://github.com/microsoft/FluidFramework/blob/main/BREAKING.md#icontainerruntimebase_createdatastorewithprops-is-removed) and have been removed.
|
|
73
129
|
|
|
74
|
-
|
|
75
|
-
|
|
130
|
+
Replace uses of these APIs with `PureDataObjectFactory.createInstanceWithDataStore` and pass in props via the `initialState`
|
|
131
|
+
parameter.
|
|
76
132
|
|
|
77
|
-
|
|
133
|
+
These changes were originally announced in version 0.25.0. See the following issues for more details:
|
|
78
134
|
|
|
79
|
-
|
|
80
|
-
|
|
135
|
+
- [#1537](https://github.com/microsoft/FluidFramework/issues/1537)
|
|
136
|
+
- [#2931](https://github.com/microsoft/FluidFramework/pull/2931)
|
|
81
137
|
|
|
82
|
-
-
|
|
138
|
+
- Enabling Op Compression without Op Grouping is no longer supported ([#23608](https://github.com/microsoft/FluidFramework/pull/23608)) [92b695aa4b](https://github.com/microsoft/FluidFramework/commit/92b695aa4b36eee41a4d235a71c6408d2c70b54b)
|
|
83
139
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
140
|
+
`IContainerRuntimeOptions.enableGroupedBatching` was deprecated in 2.12 (see [release notes](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-icontainerruntimeoptionsenablegroupedbatching-is-now-deprecated-23260)).
|
|
141
|
+
While this option is not yet removed (and still defaults to `true`), disabling it (by setting to `false`) is not supported
|
|
142
|
+
if compression is enabled (by passing a finite value for `IContainerRuntimeOptions.compressionOptions.minimumBatchSizeInBytes`).
|
|
87
143
|
|
|
88
|
-
-
|
|
144
|
+
- Summarizer-related types have been moved to container-runtime-definitions ([#23483](https://github.com/microsoft/FluidFramework/pull/23483)) [6666d496e6](https://github.com/microsoft/FluidFramework/commit/6666d496e63031026cdedee98c24bb59fa79edcf)
|
|
89
145
|
|
|
90
|
-
|
|
91
|
-
|
|
146
|
+
`SummarizerStopReason`, `ISummarizeEventProps`, and `ISummarizerEvents` have all been moved from the
|
|
147
|
+
`"@fluidframework/container-runtime"` package to `@fluidframework/container-runtime-definitions`.
|
|
92
148
|
|
|
93
|
-
|
|
149
|
+
Users should now import them from `@fluidframework/container-runtime-definitions`.
|
|
94
150
|
|
|
95
151
|
## 2.13.0
|
|
96
152
|
|
|
@@ -100,198 +156,198 @@ Dependency updates only.
|
|
|
100
156
|
|
|
101
157
|
### Minor Changes
|
|
102
158
|
|
|
103
|
-
-
|
|
159
|
+
- SummarizerStopReason, ISummarizeEventProps, and ISummarizerEvents are now deprecated ([#23217](https://github.com/microsoft/FluidFramework/pull/23217)) [cd88ee2320](https://github.com/microsoft/FluidFramework/commit/cd88ee2320c40ed9e0d43ec8ed73cb878f1c18a9)
|
|
104
160
|
|
|
105
|
-
|
|
161
|
+
`SummarizerStopReason`, `ISummarizeEventProps`, and `ISummarizerEvents` have all been deprecated from the `"@fluidframework/container-runtime"` package. Please migrate all uses of these APIs to their counterparts in the `"@fluidframework/container-runtime-definitions"` package.
|
|
106
162
|
|
|
107
|
-
-
|
|
163
|
+
- IContainerRuntimeOptions.flushMode is now deprecated ([#23288](https://github.com/microsoft/FluidFramework/pull/23288)) [af1cd7b370](https://github.com/microsoft/FluidFramework/commit/af1cd7b3707cce1306ae071aba1482734b039635)
|
|
108
164
|
|
|
109
|
-
|
|
165
|
+
The `IContainerRuntimeOptions.flushMode` property is deprecated and will be removed in version 2.20.0.
|
|
110
166
|
|
|
111
|
-
|
|
167
|
+
Only the default value `FlushMode.TurnBased` is supported when calling `ContainerRuntime.loadRuntime` directly, so there's no need for consumers to pass this option in.
|
|
112
168
|
|
|
113
|
-
-
|
|
169
|
+
- The ContainerRuntime class is now deprecated ([#23331](https://github.com/microsoft/FluidFramework/pull/23331)) [dc48446d7c](https://github.com/microsoft/FluidFramework/commit/dc48446d7c4914aca2a76095205975824aac1ba5)
|
|
114
170
|
|
|
115
|
-
|
|
171
|
+
The class `ContainerRuntime` is deprecated and will no longer be exported starting in version 2.20.0.
|
|
116
172
|
|
|
117
|
-
|
|
173
|
+
There are two possible migration paths to stop using `ContainerRuntime`:
|
|
118
174
|
|
|
119
|
-
|
|
120
|
-
|
|
175
|
+
- When using it as a type, replace it with an interface like `IContainerRuntime`
|
|
176
|
+
- When using the static function `ContainerRuntime.loadRuntime` replace it with the free function `loadContainerRuntime`.
|
|
121
177
|
|
|
122
|
-
|
|
178
|
+
`BaseContainerRuntimeFactory` has some changes as well, since it exposed `ContainerRuntime` in several function signatures:
|
|
123
179
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
180
|
+
- `instantiateFirstTime` - Takes the wider type `IContainerRuntime` instead of `ContainerRuntime`
|
|
181
|
+
- `instantiateFromExisting` - Takes the wider type `IContainerRuntime` instead of `ContainerRuntime`
|
|
182
|
+
- `preInitialize` - deprecated as well, since it returns `ContainerRuntime`
|
|
127
183
|
|
|
128
|
-
|
|
184
|
+
These functions should never be called directly anyway - use `BaseContainerRuntimeFactory.instantiateRuntime` instead.
|
|
129
185
|
|
|
130
|
-
-
|
|
186
|
+
- IContainerRuntimeOptions.enableGroupedBatching is now deprecated ([#23260](https://github.com/microsoft/FluidFramework/pull/23260)) [49d8e75e5c](https://github.com/microsoft/FluidFramework/commit/49d8e75e5cad12205aed15850db72c1ad21513c3)
|
|
131
187
|
|
|
132
|
-
|
|
188
|
+
The `IContainerRuntimeOptions.enableGroupedBatching` property is deprecated and will be removed in version 2.20.0. This will mean that the grouped batching feature can no longer be disabled. In versions 2.20.0 and beyond, grouped batching is required for the proper functioning of the Fluid Framework.
|
|
133
189
|
|
|
134
|
-
|
|
190
|
+
The sole case where grouped batching will be disabled is for compatibility with older v1 clients, and this will be implemented without any need for the configurable `IContainerRuntimeOptions.enableGroupedBatching` option.
|
|
135
191
|
|
|
136
192
|
## 2.11.0
|
|
137
193
|
|
|
138
194
|
### Minor Changes
|
|
139
195
|
|
|
140
|
-
-
|
|
196
|
+
- Synchronous Child Datastore Creation ([#23143](https://github.com/microsoft/FluidFramework/pull/23143)) [3426b434df](https://github.com/microsoft/FluidFramework/commit/3426b434dfa06de3ee1a60a5f0d605cd312f2c58)
|
|
141
197
|
|
|
142
|
-
|
|
198
|
+
#### Overview
|
|
143
199
|
|
|
144
|
-
|
|
200
|
+
This feature introduces a new pattern for creating datastores synchronously within the Fluid Framework. It allows for the synchronous creation of a child datastore from an existing datastore, provided that the child datastore is available synchronously via the existing datastore's registry and that the child's factory supports synchronous creation. This method also ensures strong typing for the consumer.
|
|
145
201
|
|
|
146
|
-
|
|
202
|
+
In this context, "child" refers specifically to the organization of factories and registries, not to any hierarchical or hosting relationship between datastores. The parent datastore does not control the runtime behaviors of the child datastore beyond its creation.
|
|
147
203
|
|
|
148
|
-
|
|
204
|
+
The synchronous creation of child datastores enhances the flexibility of datastore management within the Fluid Framework. It ensures type safety and provides a different way to manage datastores within a container. However, it is important to consider the overhead associated with datastores, as they are stored, summarized, garbage collected, loaded, and referenced independently. This overhead should be justified by the scenario's requirements.
|
|
149
205
|
|
|
150
|
-
|
|
206
|
+
Datastores offer increased capabilities, such as the ability to reference them via handles, allowing multiple references to exist and enabling those references to be moved, swapped, or changed. Additionally, datastores are garbage collected after becoming unreferenced, which can simplify final cleanup across clients. This is in contrast to subdirectories in a shared directory, which do not have native capabilities for referencing or garbage collection but are very low overhead to create.
|
|
151
207
|
|
|
152
|
-
|
|
208
|
+
Synchronous creation relies on both the factory and the datastore to support it. This means that asynchronous operations, such as resolving handles, some browser API calls, consensus-based operations, or other asynchronous tasks, cannot be performed during the creation flow. Therefore, synchronous child datastore creation is best limited to scenarios where the existing asynchronous process cannot be used, such as when a new datastore must be created in direct response to synchronous user input.
|
|
153
209
|
|
|
154
|
-
|
|
210
|
+
#### Key Benefits
|
|
155
211
|
|
|
156
|
-
|
|
157
|
-
|
|
212
|
+
- **Synchronous Creation**: Allows for the immediate creation of child datastores without waiting for asynchronous operations.
|
|
213
|
+
- **Strong Typing**: Ensures type safety and better developer experience by leveraging TypeScript's type system.
|
|
158
214
|
|
|
159
|
-
|
|
215
|
+
#### Use Cases
|
|
160
216
|
|
|
161
|
-
|
|
217
|
+
##### Example 1: Creating a Child Datastore
|
|
162
218
|
|
|
163
|
-
|
|
219
|
+
In this example, we demonstrate how to support creating a child datastore synchronously from a parent datastore.
|
|
164
220
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
221
|
+
```typescript
|
|
222
|
+
/**
|
|
223
|
+
* This is the parent DataObject, which is also a datastore. It has a
|
|
224
|
+
* synchronous method to create child datastores, which could be called
|
|
225
|
+
* in response to synchronous user input, like a key press.
|
|
226
|
+
*/
|
|
227
|
+
class ParentDataObject extends DataObject {
|
|
228
|
+
createChild(name: string): ChildDataStore {
|
|
229
|
+
assert(
|
|
230
|
+
this.context.createChildDataStore !== undefined,
|
|
231
|
+
"this.context.createChildDataStore",
|
|
232
|
+
);
|
|
177
233
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
234
|
+
const { entrypoint } = this.context.createChildDataStore(
|
|
235
|
+
ChildDataStoreFactory.instance,
|
|
236
|
+
);
|
|
237
|
+
const dir = this.root.createSubDirectory("children");
|
|
238
|
+
dir.set(name, entrypoint.handle);
|
|
239
|
+
entrypoint.setProperty("childValue", name);
|
|
184
240
|
|
|
185
|
-
|
|
186
|
-
|
|
241
|
+
return entrypoint;
|
|
242
|
+
}
|
|
187
243
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}
|
|
244
|
+
getChild(name: string): IFluidHandle<ChildDataStore> | undefined {
|
|
245
|
+
const dir = this.root.getSubDirectory("children");
|
|
246
|
+
return dir?.get<IFluidHandle<ChildDataStore>>(name);
|
|
192
247
|
}
|
|
193
|
-
|
|
248
|
+
}
|
|
249
|
+
```
|
|
194
250
|
|
|
195
|
-
|
|
196
|
-
|
|
251
|
+
For a complete example see the following test:
|
|
252
|
+
https://github.com/microsoft/FluidFramework/blob/main/packages/test/local-server-tests/src/test/synchronousDataStoreCreation.spec.ts
|
|
197
253
|
|
|
198
254
|
## 2.10.0
|
|
199
255
|
|
|
200
256
|
### Minor Changes
|
|
201
257
|
|
|
202
|
-
-
|
|
258
|
+
- "Remove `IFluidParentContext.ensureNoDataModelChanges` and its implementations ([#22842](https://github.com/microsoft/FluidFramework/pull/22842)) [3aff19a462](https://github.com/microsoft/FluidFramework/commit/3aff19a4622a242e906286c14dfcfa6523175132)
|
|
203
259
|
|
|
204
|
-
|
|
205
|
-
|
|
260
|
+
- `IFluidParentContext.ensureNoDataModelChanges` has been removed. [prior deprecation commit](https://github.com/microsoft/FluidFramework/commit/c9d156264bdfa211a3075bdf29cde442ecea234c)
|
|
261
|
+
- `MockFluidDataStoreContext.ensureNoDataModelChanges` has also been removed.
|
|
206
262
|
|
|
207
|
-
-
|
|
263
|
+
- 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)
|
|
208
264
|
|
|
209
|
-
|
|
265
|
+
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`.
|
|
210
266
|
|
|
211
|
-
|
|
267
|
+
`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.
|
|
212
268
|
|
|
213
|
-
|
|
269
|
+
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.
|
|
214
270
|
|
|
215
|
-
|
|
271
|
+
#### Alternatives
|
|
216
272
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
273
|
+
- Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)`
|
|
274
|
+
- Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`.
|
|
275
|
+
- Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`.
|
|
220
276
|
|
|
221
277
|
## 2.5.0
|
|
222
278
|
|
|
223
279
|
### Minor Changes
|
|
224
280
|
|
|
225
|
-
-
|
|
281
|
+
- Signal telemetry events details ([#22804](https://github.com/microsoft/FluidFramework/pull/22804)) [e6566f6358](https://github.com/microsoft/FluidFramework/commit/e6566f6358551b5e579637de6c111d42281f7716)
|
|
226
282
|
|
|
227
|
-
|
|
283
|
+
Properties of `eventName`s beginning "fluid:telemetry:ContainerRuntime:Signal" are updated to use `details` for all event specific information. Additional per-event changes:
|
|
228
284
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
285
|
+
- SignalLatency: shorten names now that data is packed into details. Renames:
|
|
286
|
+
- `signalsSent` -> `sent`
|
|
287
|
+
- `signalsLost` -> `lost`
|
|
288
|
+
- `outOfOrderSignals` -> `outOfOrder`
|
|
289
|
+
- SignalLost/SignalOutOfOrder: rename `trackingSequenceNumber` to `expectedSequenceNumber`
|
|
290
|
+
- SignalOutOfOrder: rename `type` to `contentsType` and only emit it some of the time
|
|
235
291
|
|
|
236
|
-
|
|
237
|
-
|
|
292
|
+
> [!IMPORTANT]
|
|
293
|
+
> Reminder: the naming and structure of telemetry events are not considered a part of the public API and may change at any time.
|
|
238
294
|
|
|
239
295
|
## 2.4.0
|
|
240
296
|
|
|
241
297
|
### Minor Changes
|
|
242
298
|
|
|
243
|
-
-
|
|
299
|
+
- The `op.contents` member on ContainerRuntime's `batchBegin`/`batchEnd` event args is deprecated ([#22750](https://github.com/microsoft/FluidFramework/pull/22750)) [de6928b528](https://github.com/microsoft/FluidFramework/commit/de6928b528ceb115b12cdf7a4183077cbaa80a71)
|
|
244
300
|
|
|
245
|
-
|
|
246
|
-
|
|
301
|
+
The `batchBegin`/`batchEnd` events on ContainerRuntime indicate when a batch is beginning/finishing being processed.
|
|
302
|
+
The events include an argument of type `ISequencedDocumentMessage` which is the first or last message of the batch.
|
|
247
303
|
|
|
248
|
-
|
|
249
|
-
|
|
304
|
+
The `contents` property of the `op` argument should not be used when reasoning over the begin/end of a batch.
|
|
305
|
+
If you want to look at the `contents` of an op, wait for the `op` event.
|
|
250
306
|
|
|
251
307
|
## 2.3.0
|
|
252
308
|
|
|
253
309
|
### Minor Changes
|
|
254
310
|
|
|
255
|
-
-
|
|
311
|
+
- Restored old op processing behavior around batched ops to avoid potential regression ([#22508](https://github.com/microsoft/FluidFramework/pull/22508)) [709f085c580](https://github.com/microsoft/FluidFramework/commit/709f085c5802bb4ad80145911ca3b05e457e9d6e)
|
|
256
312
|
|
|
257
|
-
|
|
258
|
-
|
|
313
|
+
There's a theoretical risk of indeterminate behavior due to a recent change to how batches of ops are processed.
|
|
314
|
+
This fix reverses that change.
|
|
259
315
|
|
|
260
|
-
|
|
316
|
+
Pull Request #21785 updated the ContainerRuntime to hold onto the messages in an incoming batch until they've all arrived, and only then process the set of messages.
|
|
261
317
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
318
|
+
While the batch is being processed, the DeltaManager and ContainerRuntime's view of the latest sequence numbers will be
|
|
319
|
+
out of sync. This may have unintended side effects, so out of an abundance of caution we're reversing this behavior until
|
|
320
|
+
we can add the proper protections to ensure the system stays properly in sync.
|
|
265
321
|
|
|
266
322
|
## 2.2.0
|
|
267
323
|
|
|
268
324
|
### Minor Changes
|
|
269
325
|
|
|
270
|
-
-
|
|
326
|
+
- gcThrowOnTombstoneUsage and gcTombstoneEnforcementAllowed are deprecated ([#21992](https://github.com/microsoft/FluidFramework/pull/21992)) [b2bfed3a62](https://github.com/microsoft/FluidFramework/commit/b2bfed3a624d590d776c64a3317c60400b4b3e81)
|
|
271
327
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
328
|
+
These properties `gcThrowOnTombstoneUsage` and `gcTombstoneEnforcementAllowed` have been deprecated in
|
|
329
|
+
`IFluidParentContext` and `ContainerRuntime`. These were included in certain garbage collection (GC) telemetry to
|
|
330
|
+
identify whether the corresponding features have been enabled. These features are now enabled by default and this
|
|
331
|
+
information is added to the "GarbageCollectorLoaded" telemetry.
|
|
276
332
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
333
|
+
Also, the following Garbage collection runtime options and configs have been removed. They were added during GC feature
|
|
334
|
+
development to roll out and control functionalities. The corresponding features are on by default and can no longer be
|
|
335
|
+
disabled or controlled:
|
|
280
336
|
|
|
281
|
-
|
|
337
|
+
GC runtime options removed:
|
|
282
338
|
|
|
283
|
-
|
|
284
|
-
|
|
339
|
+
- `gcDisableThrowOnTombstoneLoad`
|
|
340
|
+
- `disableDataStoreSweep`
|
|
285
341
|
|
|
286
|
-
|
|
342
|
+
GC configs removed:
|
|
287
343
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
344
|
+
- `"Fluid.GarbageCollection.DisableTombstone"`
|
|
345
|
+
- `"Fluid.GarbageCollection.ThrowOnTombstoneUsage"`
|
|
346
|
+
- `"Fluid.GarbageCollection.DisableDataStoreSweep"`
|
|
291
347
|
|
|
292
|
-
-
|
|
348
|
+
- InactiveResponseHeaderKey header is deprecated ([#22107](https://github.com/microsoft/FluidFramework/pull/22107)) [2e4e9b2cfc](https://github.com/microsoft/FluidFramework/commit/2e4e9b2cfcdd7f5d2aa460ab9dedabd6dc2b20ba)
|
|
293
349
|
|
|
294
|
-
|
|
350
|
+
The header `InactiveResponseHeaderKey` is deprecated and will be removed in the future. It was part of an experimental feature where loading an inactive data store would result in returning a 404 with this header set to true. This feature is no longer supported.
|
|
295
351
|
|
|
296
352
|
## 2.1.0
|
|
297
353
|
|
|
@@ -301,254 +357,254 @@ Dependency updates only.
|
|
|
301
357
|
|
|
302
358
|
### Minor Changes
|
|
303
359
|
|
|
304
|
-
-
|
|
360
|
+
- fluid-framework: Type Erase ISharedObjectKind ([#21081](https://github.com/microsoft/FluidFramework/pull/21081)) [78f228e370](https://github.com/microsoft/FluidFramework/commit/78f228e37055bd4d9a8f02b3a1eefebf4da9c59c)
|
|
305
361
|
|
|
306
|
-
|
|
362
|
+
A new type, `SharedObjectKind` is added as a type erased version of `ISharedObjectKind` and `DataObjectClass`.
|
|
307
363
|
|
|
308
|
-
|
|
364
|
+
This type fills the role of both `ISharedObjectKind` and `DataObjectClass` in the `@public` "declarative API" exposed in the `fluid-framework` package.
|
|
309
365
|
|
|
310
|
-
|
|
366
|
+
This allows several types referenced by `ISharedObjectKind` to be made `@alpha` as they should only need to be used by legacy code and users of the unstable/alpha/legacy "encapsulated API".
|
|
311
367
|
|
|
312
|
-
|
|
313
|
-
|
|
368
|
+
Access to these now less public types should not be required for users of the `@public` "declarative API" exposed in the `fluid-framework` package, but can still be accessed for those who need them under the `/legacy` import paths.
|
|
369
|
+
The full list of such types is:
|
|
314
370
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
371
|
+
- `SharedTree` as exported from `@fluidframwork/tree`: It is still exported as `@public` from `fluid-framework` as `SharedObjectKind`.
|
|
372
|
+
- `ISharedObjectKind`: See new `SharedObjectKind` type for use in `@public` APIs.
|
|
373
|
+
`ISharedObject`
|
|
374
|
+
- `IChannel`
|
|
375
|
+
- `IChannelAttributes`
|
|
376
|
+
- `IChannelFactory`
|
|
377
|
+
- `IExperimentalIncrementalSummaryContext`
|
|
378
|
+
- `IGarbageCollectionData`
|
|
379
|
+
- `ISummaryStats`
|
|
380
|
+
- `ISummaryTreeWithStats`
|
|
381
|
+
- `ITelemetryContext`
|
|
382
|
+
- `IDeltaManagerErased`
|
|
383
|
+
- `IFluidDataStoreRuntimeEvents`
|
|
384
|
+
- `IFluidHandleContext`
|
|
385
|
+
- `IProvideFluidHandleContext`
|
|
330
386
|
|
|
331
|
-
|
|
387
|
+
Removed APIs:
|
|
332
388
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
389
|
+
- `DataObjectClass`: Usages replaced with `SharedObjectKind`.
|
|
390
|
+
- `LoadableObjectClass`: Replaced with `SharedObjectKind`.
|
|
391
|
+
- `LoadableObjectClassRecord`: Replaced with `Record<string, SharedObjectKind>`.
|
|
392
|
+
-
|
|
337
393
|
|
|
338
|
-
-
|
|
394
|
+
- Update to TypeScript 5.4 ([#21214](https://github.com/microsoft/FluidFramework/pull/21214)) [0e6256c722](https://github.com/microsoft/FluidFramework/commit/0e6256c722d8bf024f4325bf02547daeeb18bfa6)
|
|
339
395
|
|
|
340
|
-
|
|
396
|
+
Update package implementations to use TypeScript 5.4.5.
|
|
341
397
|
|
|
342
|
-
-
|
|
398
|
+
- Update to ES 2022 ([#21292](https://github.com/microsoft/FluidFramework/pull/21292)) [68921502f7](https://github.com/microsoft/FluidFramework/commit/68921502f79b1833c4cd6d0fe339bfb126a712c7)
|
|
343
399
|
|
|
344
|
-
|
|
400
|
+
Update tsconfig to target ES 2022.
|
|
345
401
|
|
|
346
402
|
## 2.0.0-rc.4.0.0
|
|
347
403
|
|
|
348
404
|
### Major Changes
|
|
349
405
|
|
|
350
|
-
-
|
|
406
|
+
- Audience & connection sequencing improvements [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
351
407
|
|
|
352
|
-
|
|
408
|
+
Here are breaking changes in Audience behavior:
|
|
353
409
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
410
|
+
1. IAudience no longer implements EventEmmiter. If you used addListener() or removeListener(), please replace with on() & off() respectively.
|
|
411
|
+
2. IAudience interface implements getSelf() method and "selfChanged" event.
|
|
412
|
+
3. IContainerContext.audience is no longer optional
|
|
413
|
+
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.
|
|
358
414
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
415
|
+
- If this change in behavior breaks some scenario, please let us know immediately, but you can revert that behavior using the following feature gates:
|
|
416
|
+
- "Fluid.Container.DisableCatchUpBeforeDeclaringConnected"
|
|
417
|
+
- "Fluid.Container.DisableJoinSignalWait"
|
|
362
418
|
|
|
363
|
-
-
|
|
419
|
+
- container-runtime: Make op grouping On by default [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
364
420
|
|
|
365
|
-
|
|
366
|
-
|
|
421
|
+
Op grouping feature reduces number of ops on the wire by grouping all ops in a batch. This allows applications to substantially reduce chances of being throttled by service when sending a lot of ops.
|
|
422
|
+
This feature could be enabled only by applications that have consumed 2.0.0-internal.7.0.2 version and have application version based on it saturated in the marker (to 99.99% or higher). Enabling it too soon will result on old client crashing when processing grouped ops.
|
|
367
423
|
|
|
368
|
-
|
|
369
|
-
|
|
424
|
+
The feature has been proven in production in Loop app, as it was enabled through feature gates at 100% in PROD.
|
|
425
|
+
All internal applications (Loop, Whiteboard) that send telemetry to our common Kusto tenant are already at or above minimal required version of runtime.
|
|
370
426
|
|
|
371
|
-
|
|
427
|
+
If your application does not satisfy these deployment requirements, please disable op grouping via passing IContainerRuntimeOptions.enableGroupedBatching = false when calling ContainerRuntime.load().
|
|
372
428
|
|
|
373
429
|
### Minor Changes
|
|
374
430
|
|
|
375
|
-
-
|
|
431
|
+
- Type Erase IFluidDataStoreRuntime.deltaManager [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
376
432
|
|
|
377
|
-
|
|
378
|
-
|
|
433
|
+
Make IFluidDataStoreRuntime.deltaManager have an opaque type.
|
|
434
|
+
Marks the following types which were reachable from it as alpha:
|
|
379
435
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
436
|
+
- IConnectionDetails
|
|
437
|
+
- IDeltaSender
|
|
438
|
+
- IDeltaManagerEvents
|
|
439
|
+
- IDeltaManager
|
|
440
|
+
- IDeltaQueueEvents
|
|
441
|
+
- IDeltaQueue
|
|
442
|
+
- ReadOnlyInfo
|
|
387
443
|
|
|
388
|
-
|
|
444
|
+
As a temporary workaround, users needing access to the full delta manager API can use the `@alpha` `toDeltaManagerInternal` API to retrieve its members, but should migrate away from requiring access to those APIs.
|
|
389
445
|
|
|
390
|
-
|
|
446
|
+
Implementing a custom `IFluidDataStoreRuntime` is not supported: this is now indicated by it being marked with `@sealed`.
|
|
391
447
|
|
|
392
448
|
## 2.0.0-rc.3.0.0
|
|
393
449
|
|
|
394
450
|
### Major Changes
|
|
395
451
|
|
|
396
|
-
-
|
|
452
|
+
- Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
397
453
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
454
|
+
Fluid Framework packages have been updated to use the [package.json "exports"
|
|
455
|
+
field](https://nodejs.org/docs/latest-v18.x/api/packages.html#exports) to define explicit entry points for both
|
|
456
|
+
TypeScript types and implementation code.
|
|
401
457
|
|
|
402
|
-
|
|
458
|
+
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
|
|
403
459
|
|
|
404
|
-
|
|
405
|
-
|
|
460
|
+
- `"moduleResolution": "Node16"` with `"module": "Node16"`
|
|
461
|
+
- `"moduleResolution": "Bundler"` with `"module": "ESNext"`
|
|
406
462
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
463
|
+
We recommend using Node16/Node16 unless absolutely necessary. That will produce transpiled JavaScript that is suitable
|
|
464
|
+
for use with modern versions of Node.js _and_ Bundlers.
|
|
465
|
+
[See the TypeScript documentation](https://www.typescriptlang.org/tsconfig#moduleResolution) for more information
|
|
466
|
+
regarding the module and moduleResolution options.
|
|
411
467
|
|
|
412
|
-
|
|
413
|
-
|
|
468
|
+
**Node10 moduleResolution is not supported; it does not support Fluid Framework's API structuring pattern that is used
|
|
469
|
+
to distinguish stable APIs from those that are in development.**
|
|
414
470
|
|
|
415
471
|
## 2.0.0-rc.2.0.0
|
|
416
472
|
|
|
417
473
|
### Minor Changes
|
|
418
474
|
|
|
419
|
-
-
|
|
475
|
+
- container-runtime: New feature: ID compression for DataStores & DDSs ([#19859](https://github.com/microsoft/FluidFramework/issues/19859)) [51f0d3db73](https://github.com/microsoft/FluidFramework/commits/51f0d3db737800e1c30ea5e3952d38ff30ffc7da)
|
|
420
476
|
|
|
421
|
-
|
|
477
|
+
### Key changes
|
|
422
478
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
479
|
+
1. A new API IContainerRuntimeBase.generateDocumentUniqueId() is exposed. This API will opportunistically generate IDs in short format (non-negative numbers). If it can't achieve that, it will return UUID strings. UUIDs generated will have low entropy in groups and will compress well. It can be leveraged anywhere in container where container unique IDs are required. I.e. any place that uses uuid() and stores data in container is likely candidate to start leveraging this API.
|
|
480
|
+
2. Data store internal IDs (IDs that are auto generated by FF system) will opportunistically be generated in shorter form. Data stores created in detached container will always have short IDs, data stores created in attached container will opportunistically be short (by using newly added IContainerRuntimeBase.generateDocumentUniqueId() capability)
|
|
481
|
+
3. Similar DDS names will be opportunistically short (same considerations for detached DDS vs. attached DDS)
|
|
426
482
|
|
|
427
|
-
|
|
483
|
+
### Implementation details
|
|
428
484
|
|
|
429
|
-
|
|
485
|
+
1. Container level ID Compressor can now be enabled with delay. With such setting, only new IContainerRuntimeBase.generateDocumentUniqueId() is exposed (ID Compressor is not exposed in such case, as leveraging any of its other capabilities requires future container sessions to load ID Compressor on container load, for correctness reasons). Once Container establishes connection and any changes are made in container, newly added API will start generating more compact IDs (in most cases).
|
|
430
486
|
|
|
431
|
-
|
|
487
|
+
### Breaking changes
|
|
432
488
|
|
|
433
|
-
|
|
489
|
+
1. DDS names can no longer start with "\_" symbol - this is reserved for FF needs. I've validated that's not an issue for AzureClient (it only creates root object by name, everything else is referred by handle). Our main internal partners almost never use named DDSs (I can find only 4 instances in Loop).
|
|
434
490
|
|
|
435
|
-
|
|
491
|
+
### Backward compatibility considerations
|
|
436
492
|
|
|
437
|
-
|
|
438
|
-
|
|
493
|
+
1. Data store internal IDs could collide with earlier used names data stores. Earlier versions of FF framework (before DataStore aliasing feature was added) allowed customers to supply IDs for data stores. And thus, files created with earlier versions of framework could have data store IDs that will be similar to names FF will use for newly created data stores ("A", ... "Z", "a"..."z", "AA", etc.). While such collision is possible, it's very unlikely (almost impossible) if user-provided names were at least 4-5 characters long.
|
|
494
|
+
2. If application runs to these problems, or wants to reduce risks, consider disabling ID compressor via IContainerRuntimeOptions.enableRuntimeIdCompressor = "off".
|
|
439
495
|
|
|
440
|
-
|
|
496
|
+
### Minor changes
|
|
441
497
|
|
|
442
|
-
|
|
443
|
-
|
|
498
|
+
1. IContainerRuntime.createDetachedRootDataStore() is removed. Please use IContainerRuntime.createDetachedDataStore and IDataStore.trySetAlias() instead
|
|
499
|
+
2. IContainerRuntimeOptions.enableRuntimeIdCompressor has been changes from boolean to tri-state.
|
|
444
500
|
|
|
445
|
-
-
|
|
501
|
+
- driver-definitions: repositoryUrl removed from IDocumentStorageService ([#19522](https://github.com/microsoft/FluidFramework/issues/19522)) [90eb3c9d33](https://github.com/microsoft/FluidFramework/commits/90eb3c9d33d80e24caa1393a50f414c5602f6aa3)
|
|
446
502
|
|
|
447
|
-
|
|
503
|
+
The `repositoryUrl` member of `IDocumentStorageService` was unused and always equal to the empty string. It has been removed.
|
|
448
504
|
|
|
449
|
-
-
|
|
505
|
+
- Deprecated error-related enums have been removed ([#19067](https://github.com/microsoft/FluidFramework/issues/19067)) [59793302e5](https://github.com/microsoft/FluidFramework/commits/59793302e56784cfb6ace0e6469345f3565b3312)
|
|
450
506
|
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
507
|
+
Error-related enums `ContainerErrorType`, `DriverErrorType`, `OdspErrorType` and `RouterliciousErrorType` were previously
|
|
508
|
+
deprecated and are now removed. There are replacement object-based enumerations of `ContainerErrorTypes`,
|
|
509
|
+
`DriverErrorTypes`, `OdspErrorTypes` and `RouterliciousErrorTypes`. Refer to the release notes of [Fluid Framework version
|
|
510
|
+
2.0.0-internal.7.0.0](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.0.0-internal.7.0.0) for details
|
|
511
|
+
on the replacements.
|
|
456
512
|
|
|
457
|
-
-
|
|
513
|
+
- 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)
|
|
458
514
|
|
|
459
|
-
|
|
515
|
+
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.
|
|
460
516
|
|
|
461
|
-
-
|
|
517
|
+
- container-definitions: Added containerMetadata prop on IContainer interface ([#19142](https://github.com/microsoft/FluidFramework/issues/19142)) [d0d77f3516](https://github.com/microsoft/FluidFramework/commits/d0d77f3516d67f3c9faedb47b20dbd4e309c3bc2)
|
|
462
518
|
|
|
463
|
-
|
|
519
|
+
Added `containerMetadata` prop on IContainer interface.
|
|
464
520
|
|
|
465
|
-
-
|
|
521
|
+
- runtime-definitions: Moved ISignalEnvelope interface to core-interfaces ([#19142](https://github.com/microsoft/FluidFramework/issues/19142)) [d0d77f3516](https://github.com/microsoft/FluidFramework/commits/d0d77f3516d67f3c9faedb47b20dbd4e309c3bc2)
|
|
466
522
|
|
|
467
|
-
|
|
523
|
+
The `ISignalEnvelope` interface has been moved to the @fluidframework/core-interfaces package.
|
|
468
524
|
|
|
469
525
|
## 2.0.0-rc.1.0.0
|
|
470
526
|
|
|
471
527
|
### Minor Changes
|
|
472
528
|
|
|
473
|
-
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
529
|
+
- Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
530
|
+
|
|
531
|
+
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)
|
|
532
|
+
|
|
533
|
+
- @fluidframework/gitresources
|
|
534
|
+
- @fluidframework/server-kafka-orderer
|
|
535
|
+
- @fluidframework/server-lambdas
|
|
536
|
+
- @fluidframework/server-lambdas-driver
|
|
537
|
+
- @fluidframework/server-local-server
|
|
538
|
+
- @fluidframework/server-memory-orderer
|
|
539
|
+
- @fluidframework/protocol-base
|
|
540
|
+
- @fluidframework/server-routerlicious
|
|
541
|
+
- @fluidframework/server-routerlicious-base
|
|
542
|
+
- @fluidframework/server-services
|
|
543
|
+
- @fluidframework/server-services-client
|
|
544
|
+
- @fluidframework/server-services-core
|
|
545
|
+
- @fluidframework/server-services-ordering-kafkanode
|
|
546
|
+
- @fluidframework/server-services-ordering-rdkafka
|
|
547
|
+
- @fluidframework/server-services-ordering-zookeeper
|
|
548
|
+
- @fluidframework/server-services-shared
|
|
549
|
+
- @fluidframework/server-services-telemetry
|
|
550
|
+
- @fluidframework/server-services-utils
|
|
551
|
+
- @fluidframework/server-test-utils
|
|
552
|
+
- tinylicious
|
|
553
|
+
|
|
554
|
+
- Updated @fluidframework/protocol-definitions ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
555
|
+
|
|
556
|
+
The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0. [See the full
|
|
557
|
+
changelog.](https://github.com/microsoft/FluidFramework/blob/main/common/lib/protocol-definitions/CHANGELOG.md#310)
|
|
502
558
|
|
|
503
559
|
## 2.0.0-internal.8.0.0
|
|
504
560
|
|
|
505
561
|
### Major Changes
|
|
506
562
|
|
|
507
|
-
-
|
|
563
|
+
- container-runtime: Removed IPendingLocalState and IRuntime.notifyAttaching [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
508
564
|
|
|
509
|
-
|
|
510
|
-
|
|
565
|
+
The deprecated `IPendingLocalState` and `IRuntime.notifyAttaching` APIs are removed. There is no replacement as they are
|
|
566
|
+
not longer used.
|
|
511
567
|
|
|
512
|
-
-
|
|
568
|
+
- container-runtime: Removed request pattern from ContainerRuntime, IRuntime, and IContainerRuntimeBase [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
513
569
|
|
|
514
|
-
|
|
570
|
+
The `request(...)` method and `IFluidRouter` property have been removed from the following places:
|
|
515
571
|
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
572
|
+
- `ContainerRuntime`
|
|
573
|
+
- `IRuntime`
|
|
574
|
+
- `IContainerRuntimeBase`
|
|
519
575
|
|
|
520
|
-
|
|
576
|
+
Please use the `IRuntime.getEntryPoint()` method to get the runtime's entry point.
|
|
521
577
|
|
|
522
|
-
|
|
578
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
523
579
|
|
|
524
|
-
-
|
|
580
|
+
- container-runtime: Removed `ContainerRuntime.load(...)` [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
525
581
|
|
|
526
|
-
|
|
527
|
-
|
|
582
|
+
The static method `ContainerRuntime.load(...)` has been removed. Please migrate all usage of this method to
|
|
583
|
+
`ContainerRuntime.loadRuntime(...)`.
|
|
528
584
|
|
|
529
|
-
-
|
|
585
|
+
- container-runtime-definitions: Removed getRootDataStore [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
530
586
|
|
|
531
|
-
|
|
587
|
+
The `getRootDataStore` method has been removed from `IContainerRuntime` and `ContainerRuntime`. Please migrate all usage to the new `getAliasedDataStoreEntryPoint` method. This method returns the data store's entry point which is its `IFluidHandle`.
|
|
532
588
|
|
|
533
|
-
|
|
589
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
534
590
|
|
|
535
591
|
## 2.0.0-internal.7.4.0
|
|
536
592
|
|
|
537
593
|
### Minor Changes
|
|
538
594
|
|
|
539
|
-
-
|
|
595
|
+
- container-runtime: (GC) Tombstoned objects will fail to load by default ([#18651](https://github.com/microsoft/FluidFramework/issues/18651)) [2245c0578e](https://github.com/microsoft/FluidFramework/commits/2245c0578e756c944caa5c22311eaafbb73452bb)
|
|
540
596
|
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
597
|
+
Previously, Tombstoned objects would only trigger informational logs by default, with an option via config to also cause
|
|
598
|
+
errors to be thrown on load. Now, failure to load is the default with an option to disable it if necessary. This
|
|
599
|
+
reflects the purpose of the Tombstone stage which is to mimic the user experience of objects being deleted.
|
|
544
600
|
|
|
545
|
-
-
|
|
601
|
+
- container-runtime/runtime-definitions: `IdCompressor` and related types deprecated ([#18749](https://github.com/microsoft/FluidFramework/issues/18749)) [6f070179de](https://github.com/microsoft/FluidFramework/commits/6f070179ded7c2f4398252f75485e85b39725419)
|
|
546
602
|
|
|
547
|
-
|
|
548
|
-
|
|
603
|
+
`IdCompressor` and related types from the @fluidframework/container-runtime and @fluidframework/runtime-definitions
|
|
604
|
+
packages have been deprecated. They can now be found in a new package, @fluidframework/id-compressor.
|
|
549
605
|
|
|
550
|
-
|
|
551
|
-
|
|
606
|
+
The `IdCompressor` class is deprecated even in the new package. Consumers should use the interfaces, `IIdCompressor` and
|
|
607
|
+
`IIdCompressorCore`, in conjunction with the factory function `createIdCompressor` instead.
|
|
552
608
|
|
|
553
609
|
## 2.0.0-internal.7.3.0
|
|
554
610
|
|
|
@@ -562,120 +618,120 @@ Dependency updates only.
|
|
|
562
618
|
|
|
563
619
|
### Minor Changes
|
|
564
620
|
|
|
565
|
-
-
|
|
621
|
+
- container-runtime: `Summarizer.create(...)` has been deprecated ([#17563](https://github.com/microsoft/FluidFramework/issues/17563)) [4264a3fd18](https://github.com/microsoft/FluidFramework/commits/4264a3fd18ee84e72137982e11438db444cd80f0)
|
|
566
622
|
|
|
567
|
-
|
|
623
|
+
The public static method `Summarizer.create(...)` has been deprecated and will be removed in a future major release. Creating a summarizer is not a publicly supported API. Please remove all usage of this method.
|
|
568
624
|
|
|
569
625
|
## 2.0.0-internal.7.0.0
|
|
570
626
|
|
|
571
627
|
### Major Changes
|
|
572
628
|
|
|
573
|
-
-
|
|
629
|
+
- DEPRECATED: container-runtime: requestHandlers are deprecated [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
574
630
|
|
|
575
|
-
|
|
631
|
+
The concept of `requestHandlers` has been deprecated. Please migrate all usage of the following APIs to the new `entryPoint` pattern:
|
|
576
632
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
633
|
+
- `requestHandler` property in `ContainerRuntime.loadRuntime(...)`
|
|
634
|
+
- `RuntimeRequestHandler`
|
|
635
|
+
- `RuntimeRequestHandlerBuilder`
|
|
636
|
+
- `defaultFluidObjectRequestHandler(...)`
|
|
637
|
+
- `defaultRouteRequestHandler(...)`
|
|
638
|
+
- `mountableViewRequestHandler(...)`
|
|
639
|
+
- `buildRuntimeRequestHandler(...)`
|
|
640
|
+
- `createFluidObjectResponse(...)`
|
|
641
|
+
- `handleFromLegacyUri(...)`
|
|
642
|
+
- `rootDataStoreRequestHandler(...)`
|
|
587
643
|
|
|
588
|
-
|
|
644
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
589
645
|
|
|
590
|
-
-
|
|
646
|
+
- container-runtime: Removing some deprecated and likely unused ContainerRuntime APIs [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
591
647
|
|
|
592
|
-
|
|
593
|
-
|
|
648
|
+
- `IGCRuntimeOptions.sweepAllowed`
|
|
649
|
+
- `ContainerRuntime.reSubmitFn`
|
|
594
650
|
|
|
595
|
-
-
|
|
651
|
+
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
596
652
|
|
|
597
|
-
|
|
653
|
+
This included the following changes from the protocol-definitions release:
|
|
598
654
|
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
655
|
+
- Updating signal interfaces for some planned improvements. The intention is split the interface between signals
|
|
656
|
+
submitted by clients to the server and the resulting signals sent from the server to clients.
|
|
657
|
+
- A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
|
|
658
|
+
been added, which will be the typing for signals sent from the client to the server. Both extend a new
|
|
659
|
+
ISignalMessageBase interface that contains common members.
|
|
660
|
+
- The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
|
|
605
661
|
|
|
606
|
-
-
|
|
662
|
+
- DEPRECATED: resolveHandle and IFluidHandleContext deprecated on IContainerRuntime [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
607
663
|
|
|
608
|
-
|
|
664
|
+
The `resolveHandle(...)` and `get IFluidHandleContext()` methods have been deprecated on the following interfaces:
|
|
609
665
|
|
|
610
|
-
|
|
611
|
-
|
|
666
|
+
- `IContainerRuntime`
|
|
667
|
+
- `IContainerRuntimeBase`
|
|
612
668
|
|
|
613
|
-
|
|
669
|
+
Requesting arbitrary URLs has been deprecated on `IContainerRuntime`. Please migrate all usage to the `IContainerRuntime.getEntryPoint()` method if trying to obtain the application-specified root object.
|
|
614
670
|
|
|
615
|
-
|
|
671
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
616
672
|
|
|
617
|
-
-
|
|
673
|
+
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
618
674
|
|
|
619
|
-
|
|
675
|
+
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
620
676
|
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
677
|
+
- @fluidframework/gitresources: 2.0.1
|
|
678
|
+
- @fluidframework/server-kafka-orderer: 2.0.1
|
|
679
|
+
- @fluidframework/server-lambdas: 2.0.1
|
|
680
|
+
- @fluidframework/server-lambdas-driver: 2.0.1
|
|
681
|
+
- @fluidframework/server-local-server: 2.0.1
|
|
682
|
+
- @fluidframework/server-memory-orderer: 2.0.1
|
|
683
|
+
- @fluidframework/protocol-base: 2.0.1
|
|
684
|
+
- @fluidframework/server-routerlicious: 2.0.1
|
|
685
|
+
- @fluidframework/server-routerlicious-base: 2.0.1
|
|
686
|
+
- @fluidframework/server-services: 2.0.1
|
|
687
|
+
- @fluidframework/server-services-client: 2.0.1
|
|
688
|
+
- @fluidframework/server-services-core: 2.0.1
|
|
689
|
+
- @fluidframework/server-services-ordering-kafkanode: 2.0.1
|
|
690
|
+
- @fluidframework/server-services-ordering-rdkafka: 2.0.1
|
|
691
|
+
- @fluidframework/server-services-ordering-zookeeper: 2.0.1
|
|
692
|
+
- @fluidframework/server-services-shared: 2.0.1
|
|
693
|
+
- @fluidframework/server-services-telemetry: 2.0.1
|
|
694
|
+
- @fluidframework/server-services-utils: 2.0.1
|
|
695
|
+
- @fluidframework/server-test-utils: 2.0.1
|
|
696
|
+
- tinylicious: 2.0.1
|
|
641
697
|
|
|
642
|
-
-
|
|
698
|
+
- container-runtime: initializeEntryPoint renamed to provideEntryPoint [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
643
699
|
|
|
644
|
-
|
|
700
|
+
The naming of `initializeEntryPoint` has been changed to `provideEntryPoint`. Please change the property name in relevant calls to `ContainerRuntime.loadRuntime(...)`.
|
|
645
701
|
|
|
646
|
-
-
|
|
702
|
+
- test-utils: provideEntryPoint is required [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
647
703
|
|
|
648
|
-
|
|
704
|
+
The optional `provideEntryPoint` method has become required on a number of constructors. A value will need to be provided to the following classes:
|
|
649
705
|
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
706
|
+
- `BaseContainerRuntimeFactory`
|
|
707
|
+
- `RuntimeFactory`
|
|
708
|
+
- `ContainerRuntime` (constructor and `loadRuntime`)
|
|
709
|
+
- `FluidDataStoreRuntime`
|
|
654
710
|
|
|
655
|
-
|
|
656
|
-
|
|
711
|
+
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.
|
|
712
|
+
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.
|
|
657
713
|
|
|
658
|
-
|
|
714
|
+
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.
|
|
659
715
|
|
|
660
|
-
|
|
716
|
+
For more details, see [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
661
717
|
|
|
662
|
-
-
|
|
718
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
663
719
|
|
|
664
|
-
|
|
720
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
665
721
|
|
|
666
722
|
### Minor Changes
|
|
667
723
|
|
|
668
|
-
-
|
|
724
|
+
- container-runtime: Remove DeltaManagerProxyBase [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
669
725
|
|
|
670
|
-
|
|
726
|
+
`DeltaManagerProxyBase` was deprecated in [version 2.0.0-internal.6.1.0](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.0.0-internal.6.1.0). It is no longer exported, and no replacement API is intended.
|
|
671
727
|
|
|
672
728
|
## 2.0.0-internal.6.4.0
|
|
673
729
|
|
|
674
730
|
### Minor Changes
|
|
675
731
|
|
|
676
|
-
-
|
|
732
|
+
- Some stack traces are improved ([#17380](https://github.com/microsoft/FluidFramework/issues/17380)) [34f2808ee9](https://github.com/microsoft/FluidFramework/commits/34f2808ee9764aef21b990f8b48860d9e3ce27a5)
|
|
677
733
|
|
|
678
|
-
|
|
734
|
+
Some stack traces have been improved and might now include frames for async functions that weren't previously included.
|
|
679
735
|
|
|
680
736
|
## 2.0.0-internal.6.3.0
|
|
681
737
|
|
|
@@ -685,36 +741,36 @@ Dependency updates only.
|
|
|
685
741
|
|
|
686
742
|
### Minor Changes
|
|
687
743
|
|
|
688
|
-
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
-
|
|
716
|
-
|
|
717
|
-
|
|
744
|
+
- Remove use of @fluidframework/common-definitions ([#16638](https://github.com/microsoft/FluidFramework/issues/16638)) [a8c81509c9](https://github.com/microsoft/FluidFramework/commits/a8c81509c9bf09cfb2092ebcf7265205f9eb6dbf)
|
|
745
|
+
|
|
746
|
+
The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
|
|
747
|
+
imported from the **@fluidframework/core-interfaces** package:
|
|
748
|
+
|
|
749
|
+
- interface IDisposable
|
|
750
|
+
- interface IErrorEvent
|
|
751
|
+
- interface IErrorEvent
|
|
752
|
+
- interface IEvent
|
|
753
|
+
- interface IEventProvider
|
|
754
|
+
- interface ILoggingError
|
|
755
|
+
- interface ITaggedTelemetryPropertyType
|
|
756
|
+
- interface ITelemetryBaseEvent
|
|
757
|
+
- interface ITelemetryBaseLogger
|
|
758
|
+
- interface ITelemetryErrorEvent
|
|
759
|
+
- interface ITelemetryGenericEvent
|
|
760
|
+
- interface ITelemetryLogger
|
|
761
|
+
- interface ITelemetryPerformanceEvent
|
|
762
|
+
- interface ITelemetryProperties
|
|
763
|
+
- type ExtendEventProvider
|
|
764
|
+
- type IEventThisPlaceHolder
|
|
765
|
+
- type IEventTransformer
|
|
766
|
+
- type ReplaceIEventThisPlaceHolder
|
|
767
|
+
- type ReplaceIEventThisPlaceHolder
|
|
768
|
+
- type TelemetryEventCategory
|
|
769
|
+
- type TelemetryEventPropertyType
|
|
770
|
+
|
|
771
|
+
- Deprecated `refreshLatestAck` in `ISummarizeOptions`, `IOnDemandSummarizeOptions` and `IEnqueueSummarizeOptions` ([#16907](https://github.com/microsoft/FluidFramework/issues/16907)) [5a921c56a6](https://github.com/microsoft/FluidFramework/commits/5a921c56a6ccd29a454e235e9d836717ce401714)
|
|
772
|
+
|
|
773
|
+
Passing `refreshLatestAck` as true will result in closing the summarizer. It is not supported anymore and will be removed in a future release. It should not be passed in to `summarizeOnDemand` and `enqueueSummarize` APIs anymore.
|
|
718
774
|
|
|
719
775
|
## 2.0.0-internal.6.1.0
|
|
720
776
|
|
|
@@ -724,81 +780,81 @@ Dependency updates only.
|
|
|
724
780
|
|
|
725
781
|
### Major Changes
|
|
726
782
|
|
|
727
|
-
-
|
|
783
|
+
- Removed IContainerContext.existing [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
728
784
|
|
|
729
|
-
|
|
785
|
+
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.
|
|
730
786
|
|
|
731
|
-
-
|
|
787
|
+
- `getRootDataStore` API is deprecated [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
732
788
|
|
|
733
|
-
|
|
734
|
-
|
|
789
|
+
The `getRootDataStore` API that is used to get aliased data store has been deprecated. It will be removed in a future release.
|
|
790
|
+
Use `getAliasedDataStoreEntryPoint` API to get aliased data stores instead. It returns the data store's entry point which is its `IFluidHandle`. To use this API `initializeEntryPoint` must be provided when creating `FluidDataStoreRuntime` [here](https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/datastore/src/dataStoreRuntime.ts#L243). `getAliasedDataStoreEntryPoint` and `initializeEntryPoint` will become required in a future release.
|
|
735
791
|
|
|
736
|
-
-
|
|
792
|
+
- Request APIs deprecated from many places [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
737
793
|
|
|
738
|
-
|
|
794
|
+
The `request` API (associated with the `IFluidRouter` interface) has been deprecated on a number of classes and interfaces. The following are impacted:
|
|
739
795
|
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
796
|
+
- `IRuntime` and `ContainerRuntime`
|
|
797
|
+
- `IFluidDataStoreRuntime` and `FluidDataStoreRuntime`
|
|
798
|
+
- `IFluidDataStoreChannel`
|
|
799
|
+
- `MockFluidDataStoreRuntime`
|
|
800
|
+
- `TestFluidObject`
|
|
745
801
|
|
|
746
|
-
|
|
802
|
+
Please migrate usage to the corresponding `entryPoint` or `getEntryPoint()` of the object. The value for these "entryPoint" related APIs is determined from factories (for `IRuntime` and `IFluidDataStoreRuntime`) via the `initializeEntryPoint` method. If no method is passed to the factory, the corresponding `entryPoint` and `getEntryPoint()` will be undefined.
|
|
747
803
|
|
|
748
|
-
|
|
804
|
+
For an example implementation of `initializeEntryPoint`, see [pureDataObjectFactory.ts](https://github.com/microsoft/FluidFramework/blob/next/packages/framework/aqueduct/src/data-object-factories/pureDataObjectFactory.ts#L84).
|
|
749
805
|
|
|
750
|
-
|
|
806
|
+
More information of the migration off the request pattern, and current status of its removal, is documented in [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md).
|
|
751
807
|
|
|
752
|
-
-
|
|
808
|
+
- `initializeEntryPoint` will become required [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
753
809
|
|
|
754
|
-
|
|
810
|
+
The optional `initializeEntryPoint` method has been added to a number of constructors. **This method argument will become required in an upcoming release** and a value will need to be provided to the following classes:
|
|
755
811
|
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
812
|
+
- `BaseContainerRuntimeFactory`
|
|
813
|
+
- `ContainerRuntimeFactoryWithDefaultDataStore`
|
|
814
|
+
- `RuntimeFactory`
|
|
815
|
+
- `ContainerRuntime` (constructor and `loadRuntime`)
|
|
816
|
+
- `FluidDataStoreRuntime`
|
|
761
817
|
|
|
762
|
-
|
|
818
|
+
For an example implementation of `initializeEntryPoint`, see [pureDataObjectFactory.ts](https://github.com/microsoft/FluidFramework/blob/main/packages/framework/aqueduct/src/data-object-factories/pureDataObjectFactory.ts#L84).
|
|
763
819
|
|
|
764
|
-
|
|
820
|
+
This work will replace the request pattern. See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more info on this effort.
|
|
765
821
|
|
|
766
|
-
-
|
|
822
|
+
- New required method `getAliasedDataStoreEntryPoint` in ContainerRuntime [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
767
823
|
|
|
768
|
-
|
|
824
|
+
`getAliasedDataStoreEntryPoint` API has been added to ContainerRuntime. This can be used to get the entry point to an aliased data stores. To use this API `initializeEntryPoint` must be provided when creating `FluidDataStoreRuntime` [here](https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/datastore/src/dataStoreRuntime.ts#L243). `getAliasedDataStoreEntryPoint` and `initializeEntryPoint` will become required in a future release.
|
|
769
825
|
|
|
770
|
-
-
|
|
826
|
+
- `IRootSummaryTreeWithStats` removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
771
827
|
|
|
772
|
-
|
|
828
|
+
`IRootSummaryTreeWithStats` was the return type of `summarize` method on `ContainerRuntime`. It was an internal interface used only in `ContainerRuntime` class to to access `gcStats` from a call site. `gcStats` is not needed in the call site anymore so this interface is removed.
|
|
773
829
|
|
|
774
|
-
-
|
|
830
|
+
- getPendingLocalState and closeAndGetPendingLocalState are now async [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
775
831
|
|
|
776
|
-
|
|
832
|
+
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.
|
|
777
833
|
|
|
778
|
-
-
|
|
834
|
+
- Calling `ContainerRuntime.closeFn(...)` will no longer call `ContainerContext.disposeFn(...)` as well [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
779
835
|
|
|
780
|
-
|
|
836
|
+
This means the `ContainerRuntime` will no longer be disposed by calling this method.
|
|
781
837
|
|
|
782
|
-
|
|
838
|
+
If you want to dispose the `ContainerRuntime`, use the `ContainerRuntime.disposeFn` method.
|
|
783
839
|
|
|
784
|
-
|
|
840
|
+
For more information about close vs. dispose expectations, see the [Closure](https://github.com/microsoft/FluidFramework/blob/main/packages/loader/container-loader/README.md#closure) section of Loader README.md.
|
|
785
841
|
|
|
786
|
-
-
|
|
842
|
+
- Upgraded typescript transpilation target to ES2020 [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
787
843
|
|
|
788
|
-
|
|
844
|
+
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.
|
|
789
845
|
|
|
790
|
-
-
|
|
846
|
+
- IDeltaManager members disposed and dispose() removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
791
847
|
|
|
792
|
-
|
|
848
|
+
IDeltaManager members disposed and dispose() were deprecated in 2.0.0-internal.5.3.0 and have now been removed.
|
|
793
849
|
|
|
794
850
|
## 2.0.0-internal.5.4.0
|
|
795
851
|
|
|
796
852
|
### Minor Changes
|
|
797
853
|
|
|
798
|
-
-
|
|
854
|
+
- ContainerRuntime.reSubmitFn is deprecated: ([#16276](https://github.com/microsoft/FluidFramework/issues/16276)) [46707372e8](https://github.com/microsoft/FluidFramework/commits/46707372e82a492f6e42b683d37d49c25e6be15b)
|
|
799
855
|
|
|
800
|
-
|
|
801
|
-
|
|
856
|
+
ContainerRuntime.reSubmitFn is deprecatedsince this functionality needs not be exposed, and we are refactoring the
|
|
857
|
+
signatures of related code internally.
|
|
802
858
|
|
|
803
859
|
## 2.0.0-internal.5.3.0
|
|
804
860
|
|
|
@@ -808,17 +864,17 @@ Dependency updates only.
|
|
|
808
864
|
|
|
809
865
|
### Minor Changes
|
|
810
866
|
|
|
811
|
-
-
|
|
867
|
+
- IContainerContext members deprecated ([#16180](https://github.com/microsoft/FluidFramework/issues/16180)) [bf6a26cfe6](https://github.com/microsoft/FluidFramework/commits/bf6a26cfe6ac58386f2c9af260603a15b03ba84f)
|
|
812
868
|
|
|
813
|
-
|
|
869
|
+
IContainerContext members disposed, dispose(), serviceConfiguration, and id have been deprecated and will be removed in an upcoming release.
|
|
814
870
|
|
|
815
|
-
|
|
871
|
+
disposed - The disposed state on the IContainerContext is not meaningful to the runtime.
|
|
816
872
|
|
|
817
|
-
|
|
873
|
+
dispose() - The runtime is not permitted to dispose the IContainerContext, this results in an inconsistent system state.
|
|
818
874
|
|
|
819
|
-
|
|
875
|
+
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.
|
|
820
876
|
|
|
821
|
-
|
|
877
|
+
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.
|
|
822
878
|
|
|
823
879
|
## 2.0.0-internal.5.1.0
|
|
824
880
|
|
|
@@ -828,42 +884,42 @@ Dependency updates only.
|
|
|
828
884
|
|
|
829
885
|
### Major Changes
|
|
830
886
|
|
|
831
|
-
-
|
|
832
|
-
|
|
887
|
+
- The `@fluidframework/garbage-collector` package was deprecated in version 2.0.0-internal.4.1.0. [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
|
|
888
|
+
It has now been removed with the following functions, interfaces, and types in it.
|
|
833
889
|
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
890
|
+
- `cloneGCData`
|
|
891
|
+
- `concatGarbageCollectionData`
|
|
892
|
+
- `concatGarbageCollectionStates`
|
|
893
|
+
- `GCDataBuilder`
|
|
894
|
+
- `getGCDataFromSnapshot`
|
|
895
|
+
- `IGCResult`
|
|
896
|
+
- `removeRouteFromAllNodes`
|
|
897
|
+
- `runGarbageCollection`
|
|
898
|
+
- `trimLeadingAndTrailingSlashes`
|
|
899
|
+
- `trimLeadingSlashes`
|
|
900
|
+
- `trimTrailingSlashes`
|
|
901
|
+
- `unpackChildNodesGCDetails`
|
|
902
|
+
- `unpackChildNodesUsedRoutes`
|
|
847
903
|
|
|
848
|
-
-
|
|
904
|
+
- The following functions and classes were deprecated in previous releases and have been removed: [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
|
|
849
905
|
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
906
|
+
- `PureDataObject.getFluidObjectFromDirectory`
|
|
907
|
+
- `IProvideContainerRuntime` and its `IContainerRuntime` member.
|
|
908
|
+
- `ContainerRuntime`'s `IProvideContainerRuntime` has also been removed.
|
|
853
909
|
|
|
854
|
-
-
|
|
855
|
-
|
|
856
|
-
-
|
|
857
|
-
-
|
|
910
|
+
- The 'flush' concepts in the PendingStateManager in @fluidframework/container-runtime have been removed. This is [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
|
|
911
|
+
primarily an internal change that should not affect package consumers.
|
|
912
|
+
- In @fluidframework/container-runtime, the `on("op")` and `off("op")` methods on `ISummarizerRuntime` are now required. These listener methods are needed to accurately run summary heuristics. [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
|
|
913
|
+
- Calling `IContainer.close(...)` will no longer dispose the container runtime, document service, or document storage service. [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
|
|
858
914
|
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
915
|
+
If the container is not expected to be used after the `close(...)` call, replace it instead with a
|
|
916
|
+
`IContainer.dispose(...)` call (this should be the most common case). Using `IContainer.dispose(...)` will no longer
|
|
917
|
+
switch the container to "readonly" mode and relevant code should instead listen to the Container's "disposed" event.
|
|
862
918
|
|
|
863
|
-
|
|
864
|
-
|
|
919
|
+
If you intend to pass your own critical error to the container, use `IContainer.close(...)`. Once you are done using the
|
|
920
|
+
container, call `IContainer.dispose(...)`.
|
|
865
921
|
|
|
866
|
-
|
|
922
|
+
See the [Closure](packages/loader/container-loader/README.md#Closure) section of Loader README.md for more details.
|
|
867
923
|
|
|
868
924
|
## 2.0.0-internal.4.4.0
|
|
869
925
|
|
|
@@ -873,55 +929,55 @@ Dependency updates only.
|
|
|
873
929
|
|
|
874
930
|
### Minor Changes
|
|
875
931
|
|
|
876
|
-
-
|
|
932
|
+
- GC interfaces removed from runtime-definitions ([#14750](https://github.com/microsoft/FluidFramework/pull-requests/14750)) [60274eacab](https://github.com/microsoft/FluidFramework/commits/60274eacabf14d42f52f6ad1c2f64356e64ba1a2)
|
|
877
933
|
|
|
878
|
-
|
|
934
|
+
The following interfaces available in `@fluidframework/runtime-definitions` are internal implementation details and have been deprecated for public use. They will be removed in an upcoming release.
|
|
879
935
|
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
936
|
+
- `IGarbageCollectionNodeData`
|
|
937
|
+
- `IGarbageCollectionState`
|
|
938
|
+
- `IGarbageCollectionSnapshotData`
|
|
939
|
+
- `IGarbageCollectionSummaryDetailsLegacy`
|
|
884
940
|
|
|
885
|
-
-
|
|
941
|
+
- Ability to enable grouped batching ([#14512](https://github.com/microsoft/FluidFramework/pull-requests/14512)) [8e4dc47a38](https://github.com/microsoft/FluidFramework/commits/8e4dc47a3871bcaf1f7c1339c362d9c9d08551fc)
|
|
886
942
|
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
943
|
+
The `IContainerRuntimeOptions.enableGroupedBatching` option has been added to the container runtime layer and is off by default. This option will group all batch messages
|
|
944
|
+
under a new "grouped" message to be sent to the service. Upon receiving this new "grouped" message, the batch messages will be extracted and given
|
|
945
|
+
the sequence number of the parent "grouped" message.
|
|
890
946
|
|
|
891
|
-
|
|
947
|
+
Upon enabling this option, if any issues arise, use the `Fluid.ContainerRuntime.DisableGroupedBatching` feature flag to disable at runtime. This option should **ONLY** be enabled after observing that 99.9% of your application sessions contains these changes (version "2.0.0-internal.4.1.0" or later). This option is experimental and should not be enabled yet in production. Containers created with this option may not open in future versions of the framework.
|
|
892
948
|
|
|
893
|
-
|
|
894
|
-
|
|
949
|
+
This option will change a couple of expectations around message structure and runtime layer expectations. Only enable this option after testing
|
|
950
|
+
and verifying that the following expectation changes won't have any effects:
|
|
895
951
|
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
952
|
+
- batch messages observed at the runtime layer will not match messages seen at the loader layer
|
|
953
|
+
- messages within the same batch will have the same sequence number
|
|
954
|
+
- client sequence numbers on batch messages can only be used to order messages with the same sequenceNumber
|
|
955
|
+
- requires all ops to be processed by runtime layer (version "2.0.0-internal.1.2.0" or later
|
|
956
|
+
https://github.com/microsoft/FluidFramework/pull/11832)
|
|
901
957
|
|
|
902
|
-
-
|
|
958
|
+
- Op compression is enabled by default ([#14856](https://github.com/microsoft/FluidFramework/pull-requests/14856)) [439c21f31f](https://github.com/microsoft/FluidFramework/commits/439c21f31f4a3ea6515f01d2b2be7f35c04910ce)
|
|
903
959
|
|
|
904
|
-
|
|
960
|
+
If the size of a batch is larger than 614kb, the ops will be compressed. After upgrading to this version, if batches exceed the size threshold, the runtime will produce a new type of op with the compression properties. To open a document which contains this type of op, the client's runtime version needs to be at least `client_v2.0.0-internal.2.3.0`. Older clients will close with assert `0x3ce` ("Runtime message of unknown type") and will not be able to open the documents until they upgrade. To minimize the risk, it is recommended to audit existing session and ensure that at least 99.9% of them are using a runtime version equal or greater than `client_v2.0.0-internal.2.3.0`, before upgrading to `2.0.0-internal.4.1.0`.
|
|
905
961
|
|
|
906
|
-
|
|
907
|
-
|
|
962
|
+
More information about op compression can be found
|
|
963
|
+
[here](./packages/runtime/container-runtime/src/opLifecycle/README.md).
|
|
908
964
|
|
|
909
|
-
-
|
|
965
|
+
- @fluidframework/garbage-collector deprecated ([#14750](https://github.com/microsoft/FluidFramework/pull-requests/14750)) [60274eacab](https://github.com/microsoft/FluidFramework/commits/60274eacabf14d42f52f6ad1c2f64356e64ba1a2)
|
|
910
966
|
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
967
|
+
The `@fluidframework/garbage-collector` package is deprecated with the following functions, interfaces, and types in it.
|
|
968
|
+
These are internal implementation details and have been deprecated for public use. They will be removed in an upcoming
|
|
969
|
+
release.
|
|
914
970
|
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
971
|
+
- `cloneGCData`
|
|
972
|
+
- `concatGarbageCollectionData`
|
|
973
|
+
- `concatGarbageCollectionStates`
|
|
974
|
+
- `GCDataBuilder`
|
|
975
|
+
- `getGCDataFromSnapshot`
|
|
976
|
+
- `IGCResult`
|
|
977
|
+
- `removeRouteFromAllNodes`
|
|
978
|
+
- `runGarbageCollection`
|
|
979
|
+
- `trimLeadingAndTrailingSlashes`
|
|
980
|
+
- `trimLeadingSlashes`
|
|
981
|
+
- `trimTrailingSlashes`
|
|
982
|
+
- `unpackChildNodesGCDetails`
|
|
983
|
+
- `unpackChildNodesUsedRoutes`
|