Skip to content

Releases: microsoft/FluidFramework

Fluid Framework v2.0.0-rc.2.0.8 (patch)

06 Jun 16:37
d0f1e5f
Compare
Choose a tag to compare

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)

04 Jun 20:32
23c2373
Compare
Choose a tag to compare

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)

29 May 18:44
de1a53d
Compare
Choose a tag to compare

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)

23 May 19:05
0d458cb
Compare
Choose a tag to compare

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)

23 May 19:00
419c0d1
Compare
Choose a tag to compare

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)

29 May 18:43
d5ed28e
Compare
Choose a tag to compare

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)

29 May 18:44
bf7c048
Compare
Choose a tag to compare

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)

04 Jun 20:33
f92ca08
Compare
Choose a tag to compare

This is a patch release.

Fluid Framework v2.0.0-rc.4.0.1 (patch)

29 May 18:45
d495c13
Compare
Choose a tag to compare

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)

13 May 19:05
ad6f8c6
Compare
Choose a tag to compare

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:

  1. IAudience no longer implements EventEmmiter. If you used addListener() or removeListener(), please replace with on() & off() respectively.
  2. IAudience interface implements getSelf() method and "selfChanged" event.
  3. IContainerContext.audience is no longer optional
  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.
  • 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 for SharedMatrix creation. See documentation on ISharedObjectKind.
  • The type SharedMatrix is aliased to ISharedMatrix, 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

  1. Renamed AzureMember.userName to AzureMember.name to establish uniform naming across odsp-client and azure-client.
  2. Renamed IMember.userId to IMember.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.