Releases: microsoft/FluidFramework
Fluid Framework v2.0.0-internal.3.3.0 - Deprecated
This version is deprecated. Please use the latest minor for 2.0.0.internal.3.x
Fluid Framework v2.0.0-internal.3.2.2 - deprecated
This version is deprecated. Please use the latest minor for 2.0.0.internal.3.x.
Fluid Framework v2.0.0-internal.3.2.1 - deprecated
This version is deprecated. Please use the latest minor for 2.0.0.internal.3.x.
Fluid Framework v2.0.0-internal.3.2.0 - deprecated
This version is deprecated. Please use the latest minor for 2.0.0.internal.3.x.
Fluid Framework v2.0.0-internal.3.1.0 - deprecated
This version is deprecated. Please use the latest minor for 2.0.0.internal.3.x
Fluid Framework v2.0.0-internal.3.0.0
This is a major release that includes several breaking changes in addition to deprecations that will take effect in a future major release.
💥 Breaking changes
This release contains the following breaking changes:
existing
parameter is now required in IRuntimeFactory::instantiateRuntime- Removed: @fluidframework/iframe-driver
- Removed: Deprecated Fields from ISummaryRuntimeOptions
- Removed: ISummarizerRuntime batchEnd listener
- Removed: ISummaryBaseConfigurationsummarizerClientElection
- Removed: Deprecated IFluidObject Interface
- Removed: @fluid-experimental/get-container
existing
parameter is now required in IRuntimeFactory::instantiateRuntime
Breaking change first announced in v2.0.0-internal.2.0.0.
The existing
flag was added as optional in client version 0.44 and has been updated to be expected
and required in the IRuntimeFactory.instantiateRuntime
function. This flag is used to determine whether the runtime should
be created for the first time or from an existing context. Similarly, the load
function in containerRuntime
is being deprecated and replaced with loadRuntime
, in which existing
is a required parameter.
Removed: @fluidframework/iframe-driver
Breaking change first announced in v2.0.0-internal.1.3.0.
The iframe-driver package was deprecated in 2.0.0-internal.1.3.0 and has now been removed.
Removed: Deprecated Fields from ISummaryRuntimeOptions
Breaking change first announced in v1.0.0.
The following fields have been removed from ISummaryRuntimeOptions
as they became properties from ISummaryConfiguration
:
ISummaryRuntimeOptions.disableSummaries
ISummaryRuntimeOptions.maxOpsSinceLastSummary
ISummaryRuntimeOptions.summarizerClientElection
ISummaryRuntimeOptions.summarizerOptions
Removed: ISummarizerRuntime batchEnd listener
Breaking change first announced in v2.0.0-internal.2.1.0.
The "batchEnd"
listener in ISummarizerRuntime
has been removed. Please remove all usage and implementations of ISummarizerRuntime.on("batchEnd", ...)
and ISummarizerRuntime.removeListener("batchEnd", ...)
.
If these methods are needed, refer to the IContainerRuntimeBase
interface.
Removed: ISummaryBaseConfigurationsummarizerClientElection
Breaking change first announced in v2.0.0-internal.2.1.0.
ISummaryBaseConfiguration.summarizerClientElection
was deprecated and is now removed.
There is no replacement for this property.
Removed: Deprecated IFluidObject Interface
Breaking change first announced in v1.0.0.
IFluidObject is removed and has been replaced with FluidObject.
Removed: @fluid-experimental/get-container
Breaking change first announced in v0.39.0.
The @fluid-experimental/get-container package was deprecated in version 0.39 and has now been removed.
Behavior changes coming soon
Op re-entry will no longer be supported
Submitting an op while processing an op will no longer be supported as it can lead to inconsistencies in the document and to DDS change events observing out-of-order changes. An example scenario is changing a DDS inside the handler for the valueChanged
event of a DDS.
This behavior change is currently disabled but it can be enabled using the IContainerRuntimeOptions.enableOpReentryCheck
property, which will eventually become the default. If the option is enabled, the functionality can be disabled at runtime using the Fluid.ContainerRuntime.DisableOpReentryCheck
feature gate.
With the feature enabled, if the runtime detects an op which was submitted in this manner, an error will be thrown and the current container will close.
sharedMap.on("valueChanged", (changed) => {
if (changed.key !== "key2") {
sharedMap.set("key2", "2");
}
});
sharedMap.set("key1", "1"); // executing this statement will cause an exception to be thrown
Other clients will not be affected.
Because we are planning to enable this feature by default, we are advising our partners to use the IContainerRuntimeOptions.enableOpReentryCheck
option to identify existing code using this pattern and to let us know in case the proposed API behavior is problematic.
Deprecations
This list includes deprecations new to v2.0.0-internal.3.0.0 and those made in the previous minor release, 2.0.0-internal.2.4.0.
Deprecated: ensureContainerConnected()
in @fluidframework/test-utils
This change was made in v2.0.0-internal.2.4.0.
ensureContainerConnected()
is now deprecated.
Use waitForContainerConnection()
from the same package instead.
NOTE: the default value for the failOnContainerClose
parameter of waitForContainerConnection()
is currently set
to false
for backwards compatibility but will change to true
in a future release.
This is overall a safer default because it ensures that unexpected errors which cause the Container to close are surfaced
immediately, instead of potentially being hidden by a timeout.
We recommend that you start passing failOnContainerClose=true
when calling waitForContainerConnection()
in
preparation for this upcoming breaking change.
Deprecated: internal connection details from IConnectionDetails
This change was made in v2.0.0-internal.2.4.0.
The existing
, mode
, version
and initialClients
properties in IConnectionDetails
are deprecated and no longer exposed to the runtime. No replacement API recommended.
Reasons for deprecation:
existing
: this will always be true, which no longer provides useful information.mode
: this is an implementation detail of the connection.initialClients
andversion
: these are implementation details of handshake protocol of establishing connection, and should not be accessible.
Deprecated: IPendingFlush
New deprecation in v2.0.0-internal.3.0.0.
IPendingFlush
has been deprecated. Use batch metadata on IPendingMessage
instead to indicate the end of a batch.
Deprecated: AzureFunctionTokenProvider
in @fluidframework/azure-client
New deprecation in @fluidframework/azure-client
v1.2.0.
AzureFunctionTokenProvider
is now deprecated. To be removed in @fluidframework/azure-client v2.0.0
.
The @fluidframework/azure-client will no longer expose the AzureFunctionTokenProvider as it is not a
production-ready token provider implementation. Developers who are currently consuming this token provider
should look to implement a custom token provider as a replacement.