@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.
Files changed (2) hide show
  1. package/CHANGELOG.md +4 -32
  2. 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.71.0",
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.71.0",
61
- "@fluidframework/container-definitions": "~2.71.0",
62
- "@fluidframework/core-interfaces": "~2.71.0",
63
- "@fluidframework/driver-definitions": "~2.71.0",
64
- "@fluidframework/id-compressor": "~2.71.0",
65
- "@fluidframework/telemetry-utils": "~2.71.0"
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.58.3",
70
+ "@fluid-tools/build-cli": "^0.60.0",
71
71
  "@fluidframework/build-common": "^2.0.3",
72
- "@fluidframework/build-tools": "^0.58.3",
73
- "@fluidframework/eslint-config-fluid": "^7.0.0",
74
- "@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.70.0",
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",