Releases: microsoft/FluidFramework
Fluid Framework v2.0.0-internal.4.0.0 (major)
This is a major release that includes breaking changes in addition to deprecations that will take effect in a future major release.
💥 Breaking changes
This release contains the following breaking changes:
Container and RelativeLoader no longer exported
Container and RelativeLoader are no longer exported. All Container usages should have previously moved to IContainer. RelativeLoader is an internal implementation which should not be exposed or used directly.
Remove ensureContainerConnected()
in @fluidframework/test-utils
This function was deprecated in a previous release and has now been removed.
Use waitForContainerConnection()
from the same package instead.
See the note about breaking
changes in that function in this release.
New default parameter values for waitForContainerConnection()
in @fluidframework/test-utils
The default value for the failOnContainerClose
parameter has changed from false
to true
for function
waitForContainerConnection()
exported by @fluidframework/test-utils
.
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.
Most use cases should prefer true
; explicit passing of false
should only be necessary when the caller expects the
Container to connect or close for some reason.
Some test packages no longer published
These packages were previously published under the @fluidframework
scope:
@fluidframework/test-drivers
@fluidframework/test-pairwise-generator
@fluidframework/test-version-utils
@fluidframework/test-loader-utils
These have been moved to the @fluid-internal
scope and are no longer published.
IFluidHTMLView, ReactViewAdapter, and HTMLViewAdapter removed
IFluidHTMLView
, ReactViewAdapter
, and HTMLViewAdapter
were deprecated in 2.0.0-internal.3.2.0, and are now removed.
IFluidTokenProvider removed
The IFluidTokenProvider interface was deprecated in 2.0.0-internal.3.2.0, and is now removed.
Summarizer node and related items removed
The following functions, interfaces, and types currently available in @fluidframework/runtime-utils
were deprecated in 2.0.0-internal.3.0.0 and are now removed.
createRootSummarizerNode
createRootSummarizerNodeWithGC
IFetchSnapshotResult
IRootSummarizerNode
IRootSummarizerNodeWithGC
ISummarizerNodeRootContract
RefreshSummaryResult
web-code-loader and ICodeAllowList removed
The @fluidframework/web-code-loader
and the ICodeAllowList
were deprecated in 2.0.0-internal.3.2.0, and are now removed.
Container and IContainer no longer raise events when a new listener is registered
Container
and IContainer
had previously raised the connected
, disconnected
, dirty
, and saved
events when a new listener was registered and the corresponding state was true. This behavior has been removed. To avoid issues, add checks to the state of the container before registering listeners.
// Ensure client is connected
+ if (container.connectionState !== ConnectionState.Connected) {
await new Promise<void>((resolve) => {
container.once("connected", resolve);
});
+ }
Remove deprecated PendingStateManager interfaces
The following interfaces used by the PendingStateManager
are no longer exported:
IPendingMessage
IPendingFlush
IPendingState
IPendingLocalState
Aqueduct members removed
ContainerServices
in @fluidframework/aqueduct
and waitForAttach()
was deprecated in 2.0.0-internal.3.0.0 and has now been removed.
driver-utils members removed
The following members of the @fluidframework/driver-utils
package were deprecated in 2.0.0-internal.3.0.0 or earlier, and are now removed:
waitForConnectedState
MapWithExpiration
configurableUrlResolver
MultiUrlResolver
MultiDocumentServiceFactory
BlobCacheStorageService
EmptyDocumentDeltaStorageService
convertSnapshotAndBlobsToSummaryTree
ISummaryTreeAssemblerProps
SummaryTreeAssembler
BlobAggregationStorage
SnapshotExtractor
isUnpackedRuntimeMessage
IAnyDriverError
Remove IConnectableRuntime.deltaManager
Note: IConnectableRuntime
is only to be implemented internally, so removing this should not be impactful.
IDocumentServiceFactory.protocolName removed
IDocumentServiceFactory.protocolName
was deprecated in 2.0.0-internal.3.0.0 and has now been removed.
Changes to Summarizer's public API
The following interfaces and exports in @fluidframework/container-runtime
deprecated since 0.14.0
have been removed and have no replacement:
IProvideSummarizer
interfaceISummarizer
const (note: theISummarizer
interface still exists and is used)
Additionally, the ISummarizer
interface no longer extends IFluidLoadable
nor Partial<IProvideSummarizer>
.
This means it no longer has readonly properties IFluidLoadable
and handle
.
Deprecations
- bindToContext deprecated in IFluidDataStoreContext
- getBaseGCDetails deprecated in IFluidDataStoreContext and CreateChildSummarizerNodeFn
bindToContext deprecated in IFluidDataStoreContext
bindToContext
in IFluidDataStoreContext was deprecated in 2.0.0-internal.2.0.0. This is a heads up that it will be removed in 2.0.0-internal.5.0.0. Its usage in FluidDataStoreRuntime was removed in this release.
getBaseGCDetails deprecated in IFluidDataStoreContext and CreateChildSummarizerNodeFn
getBaseGCDetails() has been deprecated in IFluidDataStoreContext and CreateChildSummarizerNodeFn. The functionality to update the base GC details of nodes has been moved to summarizer nodes. These will be removed in 2.0.0-internal.5.0.0.
Fluid Framework v2.0.0-internal.3.4.2 (patch)
This is a patch release that fixes a failure when trying to access localStorage (PR #14760)
SweepReadyUsageDetectionHandler accesses localStorage which can fail if access to localStorage is not allowed. We are seeing this happening in production. This removes the usage of SweepReadyUsageDetectionHandler in garbage collector - It was added by #12004 but the sweep ready detection feature was never enabled.
Fluid Framework v2.0.0-internal.3.4.1 (patch)
This is a patch release that fixes the dependency ranges of the published packages (PR #14727)
In the previous release (v2.0.0-internal.3.4.1), dependencies on other Fluid Framework packages were specified using a caret (^
). However, they should have been using >= <
range dependencies. This release contains corrected >= <
dependencies.
Fluid Framework v2.0.0-internal.3.0.5 (patch)
This is a patch release that fixes a failure when trying to access localStorage (PR #14760)
SweepReadyUsageDetectionHandler accesses localStorage which can fail if access to localStorage is not allowed. We are seeing this happening in production. This removes the usage of SweepReadyUsageDetectionHandler in garbage collector - It was added by #12004 but the sweep ready detection feature was never enabled.
server v0.1038.4000
This is a minor release.
build-tools v0.13.0
The 0.13 build-tools release includes a new command, flub exec
, and various bug fixes. These release notes
cover the major changes in this release.
✨ Features
flub exec
runs shell commands in the context of repo projects
The flub exec
command can be used to execute shell commands in the context of packages or release groups in the repo.
The following example runs pnpm -r remove @rushstack/eslint-config
on all independent packages and all release group root packages:
flub exec --all --releaseGroupRoots "pnpm -r remove @rushstack/eslint-config"
check policy
has a setting to ignore single-package pnpm workspaces
pnpm does not support nesting packages under a workspace that is not managed by the workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the package individually like one might expect.
Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy for our independent packages as well. We put a workspace file in each independent package so pnpm treats the project as a one-package workspace.
However, for check policy
, we need to be able to treat these single-package workspaces differently. In particular we
don't want to enforce the preinstall script that we use in release group roots. There is now a setting that contains a list of packages that are single-package workspaces.
🐛 Bug fixes
This list only includes notable bug fixes. See the changelog for a full list of fixes in this release.
check policy
now uses the correct indentation when editing package.json files
Previously the indentation was changed to spaces when check policy was run. This has been corrected.
Fluid Framework v2.0.0-internal.3.4.0
This is a minor release that includes several deprecations that will take effect in a future major release.
Deprecations
This list includes deprecations new to v2.0.0-internal.3.4.0 and those made in the previous minor release, 2.0.0-internal.3.3.0.
IResolvedUrl will be equivalent to IFluidResolvedUrl
In @fluidframework/driver-definitions IResolvedUrlBase and IWebResolvedUrl are deprecated as they are not used.
This will make IResolvedUrl and IFluidResolvedUrl equivalent. Since all ResolvedUrls will now be FluidResolvedUrls we no longer need to differentiate them. In @fluidframework/driver-utils isFluidResolvedUrl and
ensureFluidResolvedUrl will be deprecated and removed due to this.
LoaderHeader.cache deprecated
In @fluidframework/container-definitions
, the cache
value from the LoaderHeader
enum has been deprecated.
Therefore, the [LoaderHeader.cache]
property from ILoaderHeader
is also deprecated. They will both be removed in the next major release, as well as all caching functionality of containers. Cache support will be removed soon, please try not to rely on caching, and inform us if you cannot do so.
deltaManager property in IConnectableRuntime moved
The deltaManager property in IConnectableRuntime has been moved to ISummarizerRuntime directly. ISummarizerRuntime extends IConnectableRuntime so it hasn't been changed.
attachGraph and bind methods in IFluidHandle deprecated
attachGraph
and bind
methods in IFluidHandle have been deprecated. These are internal methods used by the Fluid Framework and should not be used. They will be removed in a future release.
Some APIs meant only for internal usage are deprecated
IGarbageCollectionRuntime
in the @fluidframework/container-runtime
package should not be used outside the FF codebase. It has been deprecated and is expected to be removed in the next major release.
IConnectableRuntime.deltaManager
in the same package is no longer used and deprecated as well.
Fluid Framework v2.0.0-internal.3.3.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.3.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.3.0 - Deprecated
This version is deprecated. Please use the latest minor for 2.0.0.internal.3.x