Releases: microsoft/FluidFramework
Fluid Framework v2.0.0-rc.2.0.8 (patch)
What's Changed
- ci: Publish patch GitHub releases automatically
#21308
- fix(client-utils): fix node/browser dependent support
#21321
- rc2.0: Remove PublishPipelineArtifact task
#21191
- rc2.0: Upload manifest files for release branch
#21175
- fix(ci): Try workaround for Credscan failures (#20104)
#21139
- [rc2] Use public client auth for odsp e2e flows (#21091)
#21108
- Update Arrow to V4 in RC2
#21124
- [bump] client: 2.0.0-rc.2.0.7 => 2.0.0-rc.2.0.8 (patch)
#20984
Full Changelog: client_v2.0.0-rc.2.0.7...client_v2.0.0-rc.2.0.8
Fluid Framework v2.0.0-rc.3.0.6 (patch)
What's Changed
- RC3.0: Make using API trimming optional
#21285
- [bump] client: 2.0.0-rc.3.0.5 => 2.0.0-rc.3.0.6 (patch)
#21224
Full Changelog: client_v2.0.0-rc.3.0.5...client_v2.0.0-rc.3.0.6
Fluid Framework v2.0.0-rc.4.0.4 (patch)
What's Changed
- Port ConnectionStateHandler fixes
#21229
- [bump] client: 2.0.0-rc.4.0.3 => 2.0.0-rc.4.0.4 (patch)
#21225
Full Changelog: client_v2.0.0-rc.4.0.3...client_v2.0.0-rc.4.0.4
Fluid Framework v2.0.0-rc.4.0.3 (patch)
What's Changed
- fix(core-utils): Fix LazyPromise getter (#21207)
#21220
- [bump] client: 2.0.0-rc.4.0.2 => 2.0.0-rc.4.0.3 (patch)
#21206
Full Changelog: client_v2.0.0-rc.4.0.2...client_v2.0.0-rc.4.0.3
Fluid Framework v2.0.0-rc.3.0.5 (patch)
What's Changed
- fix(core-utils): Fix LazyPromise getter (#21207)
#21219
- [bump] client: 2.0.0-rc.3.0.4 => 2.0.0-rc.3.0.5 (patch)
#21205
Full Changelog: client_v2.0.0-rc.3.0.4...client_v2.0.0-rc.3.0.5
Fluid Framework v2.0.0-rc.4.0.2 (patch)
What's Changed
- RC4 Port: Add an in-memory and default implementation of detached blob storage
#21194
- [Port rc.4.0] [Service load test] Force some connections to be write mode for Tinyl…
#21189
- Port RC4: Store handles in detached DDS before attaching (#21132)
#21188
- tree: Fix reading tree during events (#21172)
#21177
- Tree: Fix TreeViewEvents.afterBatch (#21162)
#21178
- [RC.4] Port #21102 (Make handle parsing/decoding functions idempotent)
#21169
- rc4.0: Upload manifest file for release branch
#21148
- [rc4] Use public client auth for odsp e2e flows (#21091)
#21106
- Cherry-pick Update Arrow to v4 in RC4
#21116
- [bump] client: 2.0.0-rc.4.0.1 => 2.0.0-rc.4.0.2 (patch)
#21099
Full Changelog: client_v2.0.0-rc.4.0.1...client_v2.0.0-rc.4.0.2
Fluid Framework v2.0.0-rc.3.0.4 (patch)
What's Changed
- RC3 Port: Add an in-memory and default implementation of detached blob storage
#21195
- rc3.0: Remove PublishPipelineArtifact task
#21192
- Port RC3: Store handles in detached DDS before attaching (#21132)
#21187
- [Port rc.3.0] [Service load test] Force some connections to be write mode for Tinyl…
#21190
- rc3.0: Upload manifest for release branch
#21174
- [RC.3] Port #21102 (Make handle parsing/decoding functions idempotent)
#21170
- fix(id-compressor): Prevent resubmission of ID allocation ops (#21043)
#21159
- [rc3] Use public client auth for odsp e2e flows (#21091)
#21107
- Cherry-pick Update Arrow to v4 in RC3
#21112
- Port RC.3: Move datastore transition to attaching state to after summary retrieved
#21032
- [bump] client: 2.0.0-rc.3.0.3 => 2.0.0-rc.3.0.4 (patch)
#20894
- rc.3 Port: Fix "savedOp" metadata property propagation for grouped ops (#20837)
#20899
- rc.3 Port: Disable GC summary compatibility tests that are failing for ODSP and FRS
#20897
Full Changelog: client_v2.0.0-rc.3.0.3...client_v2.0.0-rc.3.0.4
server v4.0.1 (patch)
This is a patch release.
Fluid Framework v2.0.0-rc.4.0.1 (patch)
What's Changed
- fix(id-compressor): Prevent resubmission of ID allocation ops (#21043)
#21074
- [bump] client: 2.0.0-rc.4.0.0 => 2.0.0-rc.4.0.1 (patch)
#21061
Full Changelog: client_v2.0.0-rc.4.0.0...client_v2.0.0-rc.4.0.1
Fluid Framework v2.0.0-rc.4.0.0 (major)
This is a major release.
With this release, we're moving closer to General Availability of Fluid Framework 2.0 later this summer.
Breaking changes
Minor API fixes for "@fluidframework/tree" package.
Changes constructor for FieldSchema
from public to private. Users should call makeFieldSchema
to create instance of FieldSchema
.
telemetry-utils: Internal telemetry types removed from public API surface
We have updated the tags for the following telemetry-related types in the FluidFramework: TelemetryEventCategory, TelemetryEventPropertyTypeExt, ITelemetryPropertiesExt, ITelemetryGenericEventExt, ITelemetryErrorEventExt, ITelemetryPerformanceEventExt, ITelemetryLoggerExt. For developers using any of these types, the primary action required is to transition to using the corresponding "base" type. For example, replace ITelemetryPerformanceEventExt with ITelemetryBaseEvent from @core-interfaces.
Audience & connection sequencing improvements
Here are breaking changes in Audience behavior:
- IAudience no longer implements EventEmmiter. If you used addListener() or removeListener(), please replace with on() & off() respectively.
- IAudience interface implements getSelf() method and "selfChanged" event.
- IContainerContext.audience is no longer optional
- "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.
- If this change in behavior breaks some scenario, please let us know immediately, but you can revert that behavior using the following feature gates:
- "Fluid.Container.DisableCatchUpBeforeDeclaringConnected"
- "Fluid.Container.DisableJoinSignalWait"
matrix: SharedMatrix class hidden
The SharedMatrix
class has been hidden from the alpha API. In its place:
- The constant
SharedMatrix
is exposed as the entrypoint forSharedMatrix
creation. See documentation onISharedObjectKind
. - The type
SharedMatrix
is aliased toISharedMatrix
, which contains matrix's public API. This API has no semantic changes from previous versions.
Additionally, SharedMatrixFactory
has been deprecated. Rather than construct the factory directly, use SharedMatrix.getFactory()
(e.g. for usage in DataObject
registries).
This change is part of a larger effort to clean up the API surface of various DDSes we have to leak less implementation details. See e.g. #20030. Most code which uses SharedMatrix
should continue to function without changes.
cell: SharedCell now uses ISharedObjectKind and does not export class
Most users of SharedCell just need to replace usages of the SharedCell
type with ISharedCell
.
counter: SharedCounter now uses ISharedObjectKind and does not export the class
Most users of SharedCounter
should be unaffected as long as they stick to the factory patterns supported by ISharedObjectKind.
SharedString now uses ISharedObjectKind and does not export the factory
Most users of SharedString
should be unaffected as long as they stick to the factory patterns supported by ISharedObjectKind. If the actual class type is needed it can be found as SharedStringClass
.
Rename AzureMember.userName
to AzureMember.name
and IMember.userId
to IMember.id
- Renamed
AzureMember.userName
toAzureMember.name
to establish uniform naming across odsp-client and azure-client. - Renamed
IMember.userId
toIMember.id
to align with the properties received from AFR.
copyContainer API replaced by the viewContainerVersion API
The copyContainer API has been removed in favor of the viewContainerVersion API. viewContainerVersion does not automatically produce a new container, but instead retrieves the existing container version for reading only. To produce a new container with the data, use the normal createContainer API surface and write the data prior to attaching it.
Deprecated members of IFluidHandle are split off into new IFluidHandleInternal interface
Split IFluidHandle into two interfaces, IFluidHandle
and IFluidHandleInternal
. Code depending on the previously deprecated members of IFluidHandle can access them by using toFluidHandleInternal
from @fluidframework/runtime-utils/legacy
.
External implementation of the IFluidHandle
interface are not supported: this change makes the typing better convey this using the ErasedType
pattern. Any existing and previously working, and now broken, external implementations of IFluidHandle
should still work at runtime, but will need some unsafe type casts to compile. Such handle implementation may break in the future and thus should be replaced with use of handles produced by the Fluid Framework client packages.
container-runtime: Make op grouping On by default
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. 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.
The feature has been proven in production in Loop app, as it was enabled through feature gates at 100% in PROD. All internal applications (Loop, Whiteboard) that send telemetry to our common Kusto tenant are already at or above minimal required version of runtime.
If your application does not satisfy these deployment requirements, please disable op grouping via passing IContainerRuntimeOptions.enableGroupedBatching = false when calling ContainerRuntime.load().
Type Erase IFluidDataStoreRuntime.deltaManager
Make IFluidDataStoreRuntime.deltaManager have an opaque type. Marks the following types which were reachable from it as alpha:
- IConnectionDetails
- IDeltaSender
- IDeltaManagerEvents
- IDeltaManager
- IDeltaQueueEvents
- IDeltaQueue
- ReadOnlyInfo
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.
Implementing a custom IFluidDataStoreRuntime
is not supported: this is now indicated by it being marked with @sealed
.
Make several driver types no longer public
Move the following types from @public
to @alpha
:
- ITokenClaims
- IDocumentMessage
- IClientConfiguration
- IAnyDriverError
- IDriverErrorBase
- DriverErrorTypes
DriverErrorTypes
is no longer exported from the fluid-framework
package.