|
| 1 | +<!-- THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. --> |
| 2 | + |
| 3 | +# Fluid Framework v2.63.0 |
| 4 | + |
| 5 | +## Contents |
| 6 | + |
| 7 | +- [🌳 SharedTree DDS Changes](#-sharedtree-dds-changes) |
| 8 | + - [Add FluidSerializableAsTree domain for representing trees of serializable data (alpha) (#25604)](#add-fluidserializableastree-domain-for-representing-trees-of-serializable-data-alpha-25604) |
| 9 | + - [Promote Record node types and factories to beta (#25606)](#promote-record-node-types-and-factories-to-beta-25606) |
| 10 | + - [Add TreeBeta.create (#25623)](#add-treebetacreate-25623) |
| 11 | + - [Alpha APIs for annotated allowed types have been refactored (#25595)](#alpha-apis-for-annotated-allowed-types-have-been-refactored-25595) |
| 12 | + - [Promote importConcise and exportConcise to beta (#25629)](#promote-importconcise-and-exportconcise-to-beta-25629) |
| 13 | + - [Stabilize allowUnknownOptionalFields to beta (#25638)](#stabilize-allowunknownoptionalfields-to-beta-25638) |
| 14 | + - [Add SchemaFactoryAlpha.typesRecursive and SchemaFactoryAlpha.stagedRecursive (#25199)](#add-schemafactoryalphatypesrecursive-and-schemafactoryalphastagedrecursive-25199) |
| 15 | + - [MinimumVersionForCollab is now used in place of tree's alpha FluidClientVersion (#25402)](#minimumversionforcollab-is-now-used-in-place-of-trees-alpha-fluidclientversion-25402) |
| 16 | + |
| 17 | +## 🌳 SharedTree DDS Changes |
| 18 | + |
| 19 | +### Add FluidSerializableAsTree domain for representing trees of serializable data (alpha) ([#25604](https://github.com/microsoft/FluidFramework/issues/25604)) |
| 20 | + |
| 21 | +Like [JsonAsTree](https://fluidframework.com/docs/api/tree/jsonastree-namespace/), but also supports [Fluid Handles](https://fluidframework.com/docs/concepts/handles). |
| 22 | + |
| 23 | +#### Change details |
| 24 | + |
| 25 | +Commit: [`46e6dce`](https://github.com/microsoft/FluidFramework/commit/46e6dce6c19ce97097c888fed0d139f66e8a91d3) |
| 26 | + |
| 27 | +Affected packages: |
| 28 | + |
| 29 | +- @fluidframework/tree |
| 30 | +- fluid-framework |
| 31 | + |
| 32 | +[⬆️ Table of contents](#contents) |
| 33 | + |
| 34 | +### Promote Record node types and factories to beta ([#25606](https://github.com/microsoft/FluidFramework/issues/25606)) |
| 35 | + |
| 36 | +Record tree node schema may now be declared using [SchemaFactoryBeta](https://fluidframework.com/docs/api/tree/schemafactorybeta-class) in addition to [SchemaFactoryAlpha](https://fluidframework.com/docs/api/tree/schemafactoryalpha-class). |
| 37 | + |
| 38 | +#### Change details |
| 39 | + |
| 40 | +Commit: [`2e2de30`](https://github.com/microsoft/FluidFramework/commit/2e2de3050d39469a23f1dace8a10a30cbaf3603a) |
| 41 | + |
| 42 | +Affected packages: |
| 43 | + |
| 44 | +- @fluidframework/tree |
| 45 | +- fluid-framework |
| 46 | + |
| 47 | +[⬆️ Table of contents](#contents) |
| 48 | + |
| 49 | +### Add TreeBeta.create ([#25623](https://github.com/microsoft/FluidFramework/issues/25623)) |
| 50 | + |
| 51 | +Adds `TreeBeta.create`, which is a more stable version of the existing [`TreeAlpha.create`](https://fluidframework.com/docs/api/tree/treealpha-interface#create-methodsignature). The only difference is the new `TreeBeta.create` does not support the `@alpha` [`UnsafeUnknownSchema`](https://fluidframework.com/docs/api/tree/unsafeunknownschema-typealias) option. |
| 52 | + |
| 53 | +#### Change details |
| 54 | + |
| 55 | +Commit: [`376c2d1`](https://github.com/microsoft/FluidFramework/commit/376c2d1591b96b501704a55e06a988f3c44d9ba4) |
| 56 | + |
| 57 | +Affected packages: |
| 58 | + |
| 59 | +- fluid-framework |
| 60 | +- @fluidframework/tree |
| 61 | + |
| 62 | +[⬆️ Table of contents](#contents) |
| 63 | + |
| 64 | +### Alpha APIs for annotated allowed types have been refactored ([#25595](https://github.com/microsoft/FluidFramework/issues/25595)) |
| 65 | + |
| 66 | +Staged allowed types must now be run through `SchemaFactoryAlpha.types` to convert them into an [`AllowedTypes`](https://fluidframework.com/docs/api/tree/allowedtypes-typealias). This change also means that it is now possible to use the produced `AllowedTypesFull` in non-alpha APIs since it implements `AllowedTypes`. |
| 67 | + |
| 68 | +Reading data out of `ImplicitAllowedTypes` should now be done via `normalizeAllowedTypes` which now returns a `AllowedTypesFull` providing access to all the data in a friendly format. |
| 69 | + |
| 70 | +#### Change details |
| 71 | + |
| 72 | +Commit: [`c6ba37e`](https://github.com/microsoft/FluidFramework/commit/c6ba37e2b0afb99184ea76916e80ff2cd7fc5437) |
| 73 | + |
| 74 | +Affected packages: |
| 75 | + |
| 76 | +- fluid-framework |
| 77 | +- @fluidframework/tree |
| 78 | + |
| 79 | +[⬆️ Table of contents](#contents) |
| 80 | + |
| 81 | +### Promote importConcise and exportConcise to beta ([#25629](https://github.com/microsoft/FluidFramework/issues/25629)) |
| 82 | + |
| 83 | +`importConcise` and `exportConcise` were previously available via [TreeAlpha](https://fluidframework.com/docs/api/tree/treealpha-interface). They may now also be accessed via [TreeBeta](https://fluidframework.com/docs/api/tree/treebeta-interface). |
| 84 | + |
| 85 | +Note that the beta form of `importConcise` does not support [UnsafeUnknownSchema](https://fluidframework.com/docs/api/fluid-framework/unsafeunknownschema-typealias). |
| 86 | + |
| 87 | +#### Change details |
| 88 | + |
| 89 | +Commit: [`b5d4602`](https://github.com/microsoft/FluidFramework/commit/b5d46025ef12e71b7fdadfdf91fb54fe409e8ba8) |
| 90 | + |
| 91 | +Affected packages: |
| 92 | + |
| 93 | +- @fluidframework/tree |
| 94 | +- fluid-framework |
| 95 | + |
| 96 | +[⬆️ Table of contents](#contents) |
| 97 | + |
| 98 | +### Stabilize allowUnknownOptionalFields to beta ([#25638](https://github.com/microsoft/FluidFramework/issues/25638)) |
| 99 | + |
| 100 | +When constructing object node schema with `SchemaFactoryBeta.object` or `SchemaFactoryBeta.objectRecursive` you can now provide the `allowUnknownOptionalFields` option as well as other `metadata` which were previously only available in `SchemaFactoryAlpha.objectAlpha` and `SchemaFactoryAlpha.objectRecursive`. |
| 101 | + |
| 102 | +Additionally the alpha interface `SchemaFactoryObjectOptions` has been renamed to `ObjectSchemaOptionsAlpha` to better align with the other related types. |
| 103 | + |
| 104 | +#### Change details |
| 105 | + |
| 106 | +Commit: [`b7222d1`](https://github.com/microsoft/FluidFramework/commit/b7222d147568ddfeac30babba583c6af314c94cd) |
| 107 | + |
| 108 | +Affected packages: |
| 109 | + |
| 110 | +- fluid-framework |
| 111 | +- @fluidframework/tree |
| 112 | + |
| 113 | +[⬆️ Table of contents](#contents) |
| 114 | + |
| 115 | +### Add SchemaFactoryAlpha.typesRecursive and SchemaFactoryAlpha.stagedRecursive ([#25199](https://github.com/microsoft/FluidFramework/issues/25199)) |
| 116 | + |
| 117 | +With these new APIs, it is now possible to [`stage`](https://fluidframework.com/docs/api/fluid-framework/schemafactoryalpha-class#staged-property) changes to recursive types. |
| 118 | + |
| 119 | +#### Change details |
| 120 | + |
| 121 | +Commit: [`931e986`](https://github.com/microsoft/FluidFramework/commit/931e986d772950091175be35d581a4cb8952b527) |
| 122 | + |
| 123 | +Affected packages: |
| 124 | + |
| 125 | +- fluid-framework |
| 126 | +- @fluidframework/tree |
| 127 | + |
| 128 | +[⬆️ Table of contents](#contents) |
| 129 | + |
| 130 | +### MinimumVersionForCollab is now used in place of tree's alpha FluidClientVersion ([#25402](https://github.com/microsoft/FluidFramework/issues/25402)) |
| 131 | + |
| 132 | +`FluidClientVersion`: No longer used as the type for Fluid Client versions in APIs/codecs (for example, `oldestCompatibleClient`). Additionally, `FluidClientVersion` is now a const object with members that declare specific [`MinimumVersionForCollab`](https://fluidframework.com/docs/api/runtime-definitions/minimumversionforcollab-typealias) versions. These are intended to be used with APIs that require a version (such as `TreeAlpha.exportCompressed`). |
| 133 | + |
| 134 | +`CodecWriteOptions` and `SharedTreeOptions`: `oldestCompatibleClient` has been replaced by `minVersionForCollab`. See migration guide below. |
| 135 | + |
| 136 | +`TreeAlpha.exportCompressed`: The `options` parameter previously had `oldestCompatibleClient` and now has `minVersionForCollab`. Migrating requires a rename. Existing `FluidClientVersion.*` values are now `MinimumClientVersion`s. |
| 137 | + |
| 138 | +#### Migrating |
| 139 | + |
| 140 | +If an application is calling `loadContainerRuntime` directly and previously specified the minimum client version when initializing Shared Tree like: |
| 141 | + |
| 142 | +```ts |
| 143 | + const factory = configuredSharedTree({ ..., oldestCompatibleClient: FluidClientVersion.v2_52 }); |
| 144 | +``` |
| 145 | + |
| 146 | +Then the new implementation depends on how the application initializes Fluid. |
| 147 | + |
| 148 | +##### Applications using `AzureClient`/`OdspClient` |
| 149 | + |
| 150 | +If an application is using the declarative model (for example, `AzureClient`/`OdspClient`), it should continue to call `configuredSharedTree` but specify `minVersionForCollab` instead: |
| 151 | + |
| 152 | +```ts |
| 153 | + const factory = configuredSharedTree({ ..., minVersionForCollab: "2.52.0" }); |
| 154 | +``` |
| 155 | + |
| 156 | +##### Applications calling `loadContainerRuntime` |
| 157 | + |
| 158 | +If an application is initializing the `ContainerRuntime` directly, it should now specify the `minVersionForCollab` there: |
| 159 | + |
| 160 | +```ts |
| 161 | + const runtime = await loadContainerRuntime({ ..., minVersionForCollab: "2.52.0" }); |
| 162 | +``` |
| 163 | + |
| 164 | +#### Change details |
| 165 | + |
| 166 | +Commit: [`7f59e31`](https://github.com/microsoft/FluidFramework/commit/7f59e313f0bccb78ede0d44ea5aa57a63edbf6e9) |
| 167 | + |
| 168 | +Affected packages: |
| 169 | + |
| 170 | +- @fluidframework/tree |
| 171 | +- fluid-framework |
| 172 | + |
| 173 | +[⬆️ Table of contents](#contents) |
| 174 | + |
| 175 | +### 🛠️ Start Building Today! |
| 176 | + |
| 177 | +Please continue to engage with us on GitHub [Discussion](https://github.com/microsoft/FluidFramework/discussions) and [Issue](https://github.com/microsoft/FluidFramework/issues) pages as you adopt Fluid Framework! |
0 commit comments