@fluidframework/runtime-definitions 2.71.0 → 2.72.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 +4 -32
- package/package.json +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# @fluidframework/runtime-definitions
|
|
2
2
|
|
|
3
|
+
## 2.72.0
|
|
4
|
+
|
|
5
|
+
Dependency updates only.
|
|
6
|
+
|
|
3
7
|
## 2.71.0
|
|
4
8
|
|
|
5
9
|
Dependency updates only.
|
|
@@ -11,7 +15,6 @@ Dependency updates only.
|
|
|
11
15
|
- Deprecated properties have been removed from IRuntimeStorageService and IContainerStorageService ([#25708](https://github.com/microsoft/FluidFramework/pull/25708)) [82c936ed28](https://github.com/microsoft/FluidFramework/commit/82c936ed285c7e450d5e907a531ce71178f57819)
|
|
12
16
|
|
|
13
17
|
The following deprecated properties have been removed from `IRuntimeStorageService`:
|
|
14
|
-
|
|
15
18
|
- `createBlob`
|
|
16
19
|
- `dispose`
|
|
17
20
|
- `disposed`
|
|
@@ -23,7 +26,6 @@ Dependency updates only.
|
|
|
23
26
|
- `uploadSummaryWithContext`
|
|
24
27
|
|
|
25
28
|
The following deprecated properties have been removed from `IContainerStorageService`:
|
|
26
|
-
|
|
27
29
|
- `dispose`
|
|
28
30
|
- `disposed`
|
|
29
31
|
- `downloadSummary`
|
|
@@ -49,7 +51,6 @@ Dependency updates only.
|
|
|
49
51
|
DDSes may optionally consume this value and use it to determine which sets of feature flags should be enabled.
|
|
50
52
|
|
|
51
53
|
#### Public type changes
|
|
52
|
-
|
|
53
54
|
- **@fluidframework/datastore: `FluidDataStoreRuntime`** - Exposes `minVersionForCollab`.
|
|
54
55
|
- **@fluidframework/runtime-definitions: `IFluidDataStoreContext`** - Exposes optional member `minVersionForCollab`.
|
|
55
56
|
See `FluidDataStoreContext` for an example implementation.
|
|
@@ -76,7 +77,6 @@ Dependency updates only.
|
|
|
76
77
|
Added an interface `IRuntimeStorageService` which will replace `IDocumentStorageService` in the `DataStore` layer. This is exposed by the `Runtime` layer to the `DataStore` layer. This new interface will only contain properties that are needed and used by the `DataStore` layer.
|
|
77
78
|
|
|
78
79
|
The following properties from `IRuntimeStorageService` are deprecated as they are not needed by the `DataStore` layer. These be removed in a future release:
|
|
79
|
-
|
|
80
80
|
- `disposed`
|
|
81
81
|
- `dispose`
|
|
82
82
|
- `policies`
|
|
@@ -130,7 +130,6 @@ Dependency updates only.
|
|
|
130
130
|
- The process and processDocumentSchemaOp functions have been removed ([#24018](https://github.com/microsoft/FluidFramework/pull/24018)) [bc35d543d5](https://github.com/microsoft/FluidFramework/commit/bc35d543d58c7e4bf28944b09d645cc26bf28a29)
|
|
131
131
|
|
|
132
132
|
`process` has been replaced by `processMessages` from the following:
|
|
133
|
-
|
|
134
133
|
- `FluidDataStoreRuntime`
|
|
135
134
|
- `IDeltaHandler`
|
|
136
135
|
- `IFluidDataStoreChannel`
|
|
@@ -166,7 +165,6 @@ Dependency updates only.
|
|
|
166
165
|
parameter.
|
|
167
166
|
|
|
168
167
|
These changes were originally announced in version 0.25.0. See the following issues for more details:
|
|
169
|
-
|
|
170
168
|
- [#1537](https://github.com/microsoft/FluidFramework/issues/1537)
|
|
171
169
|
- [#2931](https://github.com/microsoft/FluidFramework/pull/2931)
|
|
172
170
|
|
|
@@ -197,7 +195,6 @@ Dependency updates only.
|
|
|
197
195
|
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.
|
|
198
196
|
|
|
199
197
|
#### Key Benefits
|
|
200
|
-
|
|
201
198
|
- **Synchronous Creation**: Allows for the immediate creation of child datastores without waiting for asynchronous operations.
|
|
202
199
|
- **Strong Typing**: Ensures type safety and better developer experience by leveraging TypeScript's type system.
|
|
203
200
|
|
|
@@ -249,7 +246,6 @@ Dependency updates only.
|
|
|
249
246
|
The 'batchBegin'/'batchEnd' events on ContainerRuntime indicate when a batch is beginning or finishing being processed. The `contents` property on the event argument `op` is not useful or relevant when reasoning over incoming changes at the batch level. Accordingly, it has been removed from the `op` event argument.
|
|
250
247
|
|
|
251
248
|
- "Remove `IFluidParentContext.ensureNoDataModelChanges` and its implementations ([#22842](https://github.com/microsoft/FluidFramework/pull/22842)) [3aff19a462](https://github.com/microsoft/FluidFramework/commit/3aff19a4622a242e906286c14dfcfa6523175132)
|
|
252
|
-
|
|
253
249
|
- `IFluidParentContext.ensureNoDataModelChanges` has been removed. [prior deprecation commit](https://github.com/microsoft/FluidFramework/commit/c9d156264bdfa211a3075bdf29cde442ecea234c)
|
|
254
250
|
- `MockFluidDataStoreContext.ensureNoDataModelChanges` has also been removed.
|
|
255
251
|
|
|
@@ -262,7 +258,6 @@ Dependency updates only.
|
|
|
262
258
|
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.
|
|
263
259
|
|
|
264
260
|
#### Alternatives
|
|
265
|
-
|
|
266
261
|
- Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)`
|
|
267
262
|
- Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`.
|
|
268
263
|
- Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`.
|
|
@@ -309,12 +304,10 @@ Dependency updates only.
|
|
|
309
304
|
disabled or controlled:
|
|
310
305
|
|
|
311
306
|
GC runtime options removed:
|
|
312
|
-
|
|
313
307
|
- `gcDisableThrowOnTombstoneLoad`
|
|
314
308
|
- `disableDataStoreSweep`
|
|
315
309
|
|
|
316
310
|
GC configs removed:
|
|
317
|
-
|
|
318
311
|
- `"Fluid.GarbageCollection.DisableTombstone"`
|
|
319
312
|
- `"Fluid.GarbageCollection.ThrowOnTombstoneUsage"`
|
|
320
313
|
- `"Fluid.GarbageCollection.DisableDataStoreSweep"`
|
|
@@ -337,7 +330,6 @@ Dependency updates only.
|
|
|
337
330
|
|
|
338
331
|
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.
|
|
339
332
|
The full list of such types is:
|
|
340
|
-
|
|
341
333
|
- `SharedTree` as exported from `@fluidframwork/tree`: It is still exported as `@public` from `fluid-framework` as `SharedObjectKind`.
|
|
342
334
|
- `ISharedObjectKind`: See new `SharedObjectKind` type for use in `@public` APIs.
|
|
343
335
|
`ISharedObject`
|
|
@@ -355,7 +347,6 @@ Dependency updates only.
|
|
|
355
347
|
- `IProvideFluidHandleContext`
|
|
356
348
|
|
|
357
349
|
Removed APIs:
|
|
358
|
-
|
|
359
350
|
- `DataObjectClass`: Usages replaced with `SharedObjectKind`.
|
|
360
351
|
- `LoadableObjectClass`: Replaced with `SharedObjectKind`.
|
|
361
352
|
- `LoadableObjectClassRecord`: Replaced with `Record<string, SharedObjectKind>`.
|
|
@@ -408,7 +399,6 @@ Dependency updates only.
|
|
|
408
399
|
TypeScript types and implementation code.
|
|
409
400
|
|
|
410
401
|
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
|
|
411
|
-
|
|
412
402
|
- `"moduleResolution": "Node16"` with `"module": "Node16"`
|
|
413
403
|
- `"moduleResolution": "Bundler"` with `"module": "ESNext"`
|
|
414
404
|
|
|
@@ -434,7 +424,6 @@ Dependency updates only.
|
|
|
434
424
|
|
|
435
425
|
There is no replacement given in terms of immediate programmatic access to this data.
|
|
436
426
|
The expected use pattern is something like this:
|
|
437
|
-
|
|
438
427
|
- Some code creates a concrete implementation of `ITelemetryContext` and passes it around
|
|
439
428
|
- Callers use the "write" functions on the interface to build up the context
|
|
440
429
|
- The originator uses a function like `serialize` (on the concrete impl, not exposed on the interface any longer)
|
|
@@ -444,26 +433,21 @@ Dependency updates only.
|
|
|
444
433
|
- 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)
|
|
445
434
|
|
|
446
435
|
### Key changes
|
|
447
|
-
|
|
448
436
|
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.
|
|
449
437
|
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)
|
|
450
438
|
3. Similar DDS names will be opportunistically short (same considerations for detached DDS vs. attached DDS)
|
|
451
439
|
|
|
452
440
|
### Implementation details
|
|
453
|
-
|
|
454
441
|
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).
|
|
455
442
|
|
|
456
443
|
### Breaking changes
|
|
457
|
-
|
|
458
444
|
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).
|
|
459
445
|
|
|
460
446
|
### Backward compatibility considerations
|
|
461
|
-
|
|
462
447
|
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.
|
|
463
448
|
2. If application runs to these problems, or wants to reduce risks, consider disabling ID compressor via IContainerRuntimeOptions.enableRuntimeIdCompressor = "off".
|
|
464
449
|
|
|
465
450
|
### Minor changes
|
|
466
|
-
|
|
467
451
|
1. IContainerRuntime.createDetachedRootDataStore() is removed. Please use IContainerRuntime.createDetachedDataStore and IDataStore.trySetAlias() instead
|
|
468
452
|
2. IContainerRuntimeOptions.enableRuntimeIdCompressor has been changes from boolean to tri-state.
|
|
469
453
|
|
|
@@ -502,7 +486,6 @@ Dependency updates only.
|
|
|
502
486
|
- Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
503
487
|
|
|
504
488
|
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)
|
|
505
|
-
|
|
506
489
|
- @fluidframework/gitresources
|
|
507
490
|
- @fluidframework/server-kafka-orderer
|
|
508
491
|
- @fluidframework/server-lambdas
|
|
@@ -555,7 +538,6 @@ Dependency updates only.
|
|
|
555
538
|
- container-runtime: Removed request pattern from ContainerRuntime, IRuntime, and IContainerRuntimeBase [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
556
539
|
|
|
557
540
|
The `request(...)` method and `IFluidRouter` property have been removed from the following places:
|
|
558
|
-
|
|
559
541
|
- `ContainerRuntime`
|
|
560
542
|
- `IRuntime`
|
|
561
543
|
- `IContainerRuntimeBase`
|
|
@@ -610,7 +592,6 @@ Dependency updates only.
|
|
|
610
592
|
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
611
593
|
|
|
612
594
|
This included the following changes from the protocol-definitions release:
|
|
613
|
-
|
|
614
595
|
- Updating signal interfaces for some planned improvements. The intention is split the interface between signals
|
|
615
596
|
submitted by clients to the server and the resulting signals sent from the server to clients.
|
|
616
597
|
- A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
|
|
@@ -626,7 +607,6 @@ Dependency updates only.
|
|
|
626
607
|
- DEPRECATED: resolveHandle and IFluidHandleContext deprecated on IContainerRuntime [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
627
608
|
|
|
628
609
|
The `resolveHandle(...)` and `get IFluidHandleContext()` methods have been deprecated on the following interfaces:
|
|
629
|
-
|
|
630
610
|
- `IContainerRuntime`
|
|
631
611
|
- `IContainerRuntimeBase`
|
|
632
612
|
|
|
@@ -643,7 +623,6 @@ Dependency updates only.
|
|
|
643
623
|
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
644
624
|
|
|
645
625
|
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
646
|
-
|
|
647
626
|
- @fluidframework/gitresources: 2.0.1
|
|
648
627
|
- @fluidframework/server-kafka-orderer: 2.0.1
|
|
649
628
|
- @fluidframework/server-lambdas: 2.0.1
|
|
@@ -668,7 +647,6 @@ Dependency updates only.
|
|
|
668
647
|
- test-utils: provideEntryPoint is required [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
669
648
|
|
|
670
649
|
The optional `provideEntryPoint` method has become required on a number of constructors. A value will need to be provided to the following classes:
|
|
671
|
-
|
|
672
650
|
- `BaseContainerRuntimeFactory`
|
|
673
651
|
- `RuntimeFactory`
|
|
674
652
|
- `ContainerRuntime` (constructor and `loadRuntime`)
|
|
@@ -690,7 +668,6 @@ Dependency updates only.
|
|
|
690
668
|
### Minor Changes
|
|
691
669
|
|
|
692
670
|
- Upcoming: The type of the logger property/param in various APIs will be changing ([#17350](https://github.com/microsoft/FluidFramework/issues/17350)) [27284bcda3](https://github.com/microsoft/FluidFramework/commits/27284bcda3d63cc4306cf76806f8a075db0db60f)
|
|
693
|
-
|
|
694
671
|
- @fluidframework/runtime-definitions
|
|
695
672
|
- `IFluidDataStoreRuntime.logger` will be re-typed as `ITelemetryBaseLogger`
|
|
696
673
|
- @fluidframework/odsp-driver
|
|
@@ -711,7 +688,6 @@ Dependency updates only.
|
|
|
711
688
|
|
|
712
689
|
The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
|
|
713
690
|
imported from the **@fluidframework/core-interfaces** package:
|
|
714
|
-
|
|
715
691
|
- interface IDisposable
|
|
716
692
|
- interface IErrorEvent
|
|
717
693
|
- interface IErrorEvent
|
|
@@ -745,7 +721,6 @@ Dependency updates only.
|
|
|
745
721
|
- Request APIs deprecated from many places [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
746
722
|
|
|
747
723
|
The `request` API (associated with the `IFluidRouter` interface) has been deprecated on a number of classes and interfaces. The following are impacted:
|
|
748
|
-
|
|
749
724
|
- `IRuntime` and `ContainerRuntime`
|
|
750
725
|
- `IFluidDataStoreRuntime` and `FluidDataStoreRuntime`
|
|
751
726
|
- `IFluidDataStoreChannel`
|
|
@@ -759,7 +734,6 @@ Dependency updates only.
|
|
|
759
734
|
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).
|
|
760
735
|
|
|
761
736
|
- IContainer's and IDataStore's IFluidRouter capabilities are deprecated. [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
762
|
-
|
|
763
737
|
- The `request` function taking an arbitrary URL and headers is deprecated
|
|
764
738
|
- However, an overload taking only `{ url: "/" }` is not, for back-compat purposes during the migration
|
|
765
739
|
from the request pattern to using entryPoint.
|
|
@@ -845,7 +819,6 @@ Dependency updates only.
|
|
|
845
819
|
- GC interfaces removed from runtime-definitions [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
|
|
846
820
|
|
|
847
821
|
The following interfaces available in `@fluidframework/runtime-definitions` were deprecated in 2.0.0-internal.4.1.0 and are now removed.
|
|
848
|
-
|
|
849
822
|
- `IGarbageCollectionNodeData`
|
|
850
823
|
- `IGarbageCollectionState`
|
|
851
824
|
- `IGarbageCollectionSnapshotData`
|
|
@@ -862,7 +835,6 @@ Dependency updates only.
|
|
|
862
835
|
- GC interfaces removed from runtime-definitions ([#14750](https://github.com/microsoft/FluidFramework/pull-requests/14750)) [60274eacab](https://github.com/microsoft/FluidFramework/commits/60274eacabf14d42f52f6ad1c2f64356e64ba1a2)
|
|
863
836
|
|
|
864
837
|
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.
|
|
865
|
-
|
|
866
838
|
- `IGarbageCollectionNodeData`
|
|
867
839
|
- `IGarbageCollectionState`
|
|
868
840
|
- `IGarbageCollectionSnapshotData`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/runtime-definitions",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.72.0",
|
|
4
4
|
"description": "Fluid Runtime definitions",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -57,21 +57,21 @@
|
|
|
57
57
|
"main": "lib/index.js",
|
|
58
58
|
"types": "lib/public.d.ts",
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@fluid-internal/client-utils": "~2.
|
|
61
|
-
"@fluidframework/container-definitions": "~2.
|
|
62
|
-
"@fluidframework/core-interfaces": "~2.
|
|
63
|
-
"@fluidframework/driver-definitions": "~2.
|
|
64
|
-
"@fluidframework/id-compressor": "~2.
|
|
65
|
-
"@fluidframework/telemetry-utils": "~2.
|
|
60
|
+
"@fluid-internal/client-utils": "~2.72.0",
|
|
61
|
+
"@fluidframework/container-definitions": "~2.72.0",
|
|
62
|
+
"@fluidframework/core-interfaces": "~2.72.0",
|
|
63
|
+
"@fluidframework/driver-definitions": "~2.72.0",
|
|
64
|
+
"@fluidframework/id-compressor": "~2.72.0",
|
|
65
|
+
"@fluidframework/telemetry-utils": "~2.72.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@arethetypeswrong/cli": "^0.17.1",
|
|
69
69
|
"@biomejs/biome": "~1.9.3",
|
|
70
|
-
"@fluid-tools/build-cli": "^0.
|
|
70
|
+
"@fluid-tools/build-cli": "^0.60.0",
|
|
71
71
|
"@fluidframework/build-common": "^2.0.3",
|
|
72
|
-
"@fluidframework/build-tools": "^0.
|
|
73
|
-
"@fluidframework/eslint-config-fluid": "
|
|
74
|
-
"@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.
|
|
72
|
+
"@fluidframework/build-tools": "^0.60.0",
|
|
73
|
+
"@fluidframework/eslint-config-fluid": "~2.72.0",
|
|
74
|
+
"@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.71.0",
|
|
75
75
|
"@microsoft/api-extractor": "7.52.11",
|
|
76
76
|
"concurrently": "^8.2.1",
|
|
77
77
|
"copyfiles": "^2.4.1",
|