You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This should happen automatically as part of the release process, but if you need to generate the release notes manually, you can use the above command.
Deprecation Notice: Events Interfaces Migrated to @fluidframework/core-interfaces (#23313)
The following interfaces and types are now deprecated in @fluidframework/tree. It is recommended to import them from either @fluidframework/core-interfaces or fluid-framework.
Listeners
IsListener
Listenable
Off
These deprecated interfaces are planned for removal from @fluidframework/tree package in Fluid Framework 3.0 release.
MockLogger has been removed from the alpha+legacy API surface (#23473)
The MockLogger class previously exposed in the alpha+legacy API surface of @fluidframework/telemetry-utils has been removed. No replacement is provided, as this class was only intended for use in testing scenarios, and should be trivial to re-implement in any codebase that still uses it.
The only use case that will continue to be supported is determining if a segment is removed. For this purpose we've added the free function segmentIsRemoved(segment: ISegment): boolean.
For example, checking if a segment is not removed would change as follows:
ContainerRuntime class is no longer exported (#23341)
Use IContainerRuntime to replace type usages and use the free function loadContainerRuntime to replace usages of the static method ContainerRuntime.loadRuntime.
Replace 'any' in return type for several APIs (#23238)
To improve type safety of the Fluid Framework legacy+alpha API surface, we're moving away from using the any type in favor of unknown.
We mostly expect that any changes required in consumers of these APIs will be limited to having to provide explicit types when calling any of the APIs whose return value changed to unknown, like IFluidSerializer.parse().
So code that looked like this:
// 'myVariable' ended up typed as 'any' here and TypeScript would not do any type-safety checks on it.constmyVariable=this.serializer.parse(stringHeader);
Will now have to look like this:
// Do this if you know the type of the object you expect to get back.constmyVariable=this.serializer.parse(stringHeader)asMyType;// Alternatively, this will maintain current behavior but also means no type-safety checks will be done by TS.// const myVariable = this.serializer.parse(stringHeader) as any;
The appropriate type will depend on what the calling code is doing and the objects it expects to be dealing with.
We further encourage consumers of any of these APIs to add runtime checks to validate that the returned object actually matches the expected type.
The list of affected APIs is as follows:
IFluidSerializer.encode(...) now takes value: unknown instead of value: any and returns unknown instead of any.
IFluidSerializer.decode(...) now takes input: unknown instead of input: any and returns unknown instead of any.
IFluidSerializer.stringify(...) now takes value: unknown instead of value: any.
IFluidSerializer.parse(...) now returns unknown instead of any.
SharedObjectCore.applyStashedOps(...) now takes content: unknown instead of content: any.
SharedObjectCore.rollback(...) now takes content: unknown instead of content: any.
SharedObjectCore.submitLocalMessage(...) now takes content: unknown instead of content: any.
SharedObjectCore.reSubmitCore(...) now takes content: unknown instead of content: any.
In SharedObjectCore.newAckBasedPromise<T>(...) the executor parameter now takes reject: (reason?: unknown) instead of reject: (reason?: any).
makeHandlesSerializable(...) now returns unknown instead of any.
parseHandles(...) now returns unknown instead of any.
Additionally, the following APIs were never designed to return a value and have thus been updated to return void instead of any:
Removed SummarizerStopReason, ISummarizeEventProps, and ISummarizerEvents (#23483)
SummarizerStopReason, ISummarizeEventProps, and ISummarizerEvents have all been removed from the "@fluidframework/container-runtime" package. Please migrate all uses of these APIs to their respective copies in the "@fluidframework/container-runtime-definitions" package.
This issue is automatically updated with a preview of the release notes for the upcoming Fluid Framework release.
To generate release notes locally to commit to the
RELEASE_NOTES
folder in the repo, run the following command:To generate the release notes to paste into the GitHub Release, run the following command:
This should happen automatically as part of the release process, but if you need to generate the release notes manually, you can use the above command.
Fluid Framework v2.20.0
Contents
@fluidframework/core-interfaces
(#23313)🐛 Bug Fixes
Deprecation Notice: Events Interfaces Migrated to
@fluidframework/core-interfaces
(#23313)The following interfaces and types are now deprecated in
@fluidframework/tree
. It is recommended to import them from either@fluidframework/core-interfaces
orfluid-framework
.These deprecated interfaces are planned for removal from
@fluidframework/tree
package in Fluid Framework 3.0 release.Change details
Commit:
69a755e
Affected packages:
⬆️ Table of contents
Legacy API Changes
MockLogger has been removed from the alpha+legacy API surface (#23473)
The
MockLogger
class previously exposed in the alpha+legacy API surface of@fluidframework/telemetry-utils
has been removed. No replacement is provided, as this class was only intended for use in testing scenarios, and should be trivial to re-implement in any codebase that still uses it.Change details
Commit:
237f042
Affected packages:
⬆️ Table of contents
Remove deprecated Merge-Tree and SharedString ISegment members (#23448)
The current ISegment interface over-exposes a number of properties which do not have an external use case, and any external usage could result in damage to the underlying merge-tree including data corruption. In Fluid Framework release 2.12.0 these properties and associated types were deprecated.
The only use case that will continue to be supported is determining if a segment is removed. For this purpose we've added the free function
segmentIsRemoved(segment: ISegment): boolean
.For example, checking if a segment is not removed would change as follows:
The following properties are removed from ISegment and its implementations:
Additionally, the following types are also removed:
Change details
Commit:
e98574f
Affected packages:
⬆️ Table of contents
IContainerRuntimeOptions.flushMode has been removed (#23337)
See 2.12.0 release note
Change details
Commit:
fe8279c
Affected packages:
⬆️ Table of contents
ContainerRuntime class is no longer exported (#23341)
Use
IContainerRuntime
to replace type usages and use the free functionloadContainerRuntime
to replace usages of the static methodContainerRuntime.loadRuntime
.See the deprecation release note for more details.
Change details
Commit:
61ba06a
Affected packages:
⬆️ Table of contents
Replace 'any' in return type for several APIs (#23238)
To improve type safety of the Fluid Framework legacy+alpha API surface, we're moving away from using the
any
type in favor ofunknown
.We mostly expect that any changes required in consumers of these APIs will be limited to having to provide explicit types when calling any of the APIs whose return value changed to
unknown
, likeIFluidSerializer.parse()
.So code that looked like this:
Will now have to look like this:
The appropriate type will depend on what the calling code is doing and the objects it expects to be dealing with.
We further encourage consumers of any of these APIs to add runtime checks to validate that the returned object actually matches the expected type.
The list of affected APIs is as follows:
IFluidSerializer.encode(...)
now takesvalue: unknown
instead ofvalue: any
and returnsunknown
instead ofany
.IFluidSerializer.decode(...)
now takesinput: unknown
instead ofinput: any
and returnsunknown
instead ofany
.IFluidSerializer.stringify(...)
now takesvalue: unknown
instead ofvalue: any
.IFluidSerializer.parse(...)
now returnsunknown
instead ofany
.SharedObjectCore.applyStashedOps(...)
now takescontent: unknown
instead ofcontent: any
.SharedObjectCore.rollback(...)
now takescontent: unknown
instead ofcontent: any
.SharedObjectCore.submitLocalMessage(...)
now takescontent: unknown
instead ofcontent: any
.SharedObjectCore.reSubmitCore(...)
now takescontent: unknown
instead ofcontent: any
.SharedObjectCore.newAckBasedPromise<T>(...)
theexecutor
parameter now takesreject: (reason?: unknown)
instead ofreject: (reason?: any)
.makeHandlesSerializable(...)
now returnsunknown
instead ofany
.parseHandles(...)
now returnsunknown
instead ofany
.Additionally, the following APIs were never designed to return a value and have thus been updated to return
void
instead ofany
:SharedObjectCore.processCore(...)
.SharedObjectCore.onDisconnect(...)
Change details
Commit:
0783a31
Affected packages:
⬆️ Table of contents
Removed SummarizerStopReason, ISummarizeEventProps, and ISummarizerEvents (#23483)
SummarizerStopReason
,ISummarizeEventProps
, andISummarizerEvents
have all been removed from the"@fluidframework/container-runtime"
package. Please migrate all uses of these APIs to their respective copies in the"@fluidframework/container-runtime-definitions"
package.Change details
Commit:
6666d49
Affected packages:
⬆️ Table of contents
Unknown section: _unknown
# The createDataStoreWithProps APIs on ContainerRuntime and IContainerRuntimeBase have been removed (#22996)
ContainerRuntime.createDataStoreWithProps
andIContainerRuntimeBase.createDataStoreWithProps
have been removed.Replace uses of these APIs with
PureDataObjectFactory.createInstanceWithDataStore
and pass in props via theinitialState
parameter.Initial deprecation/removal announcement
The initial deprecations of the now changed or removed types were announced #1537 in Fluid Framework v0.25 #2931
Change details
Commit:
bd243fb
Affected packages:
⬆️ Table of contents
🛠️ Start Building Today!
Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!
The text was updated successfully, but these errors were encountered: