-
Notifications
You must be signed in to change notification settings - Fork 547
Upcoming Release: FluidFramework v2.33.0 #22101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Merged
CraigMacomber
added a commit
that referenced
this issue
Sep 11, 2024
## Description Fix a couple changesets based on #22101
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.33.0
Contents
AllowedTypes
arrays (#24441)@system
types toSystem_Unsafe
namespace (#24443)✨ New Features
Latest and LatestMap support more types (#24417)
Latest
(StateFactory.latest
) permitsnull
so that nullable types may be used.LatestMap
(StateFactory.latestMap
) permitsboolean
,number
,string
, andnull
.Change details
Commit:
619af0b
Affected packages:
⬆️ Table of contents
🌳 SharedTree DDS Changes
Improve handling of deleted nodes (#24345)
TreeNodes which are deleted were not handled correctly. This has been improved in two ways:
TreeNode
is deleted, but the node still exists within theITree
, then becomes accessible again later, now a newTreeNode
is allocated instead of trying to reuse the deleted one. Note that this can only happen when the entire view of theITree
is disposed then recreated. This happens when disposing and recreating a TreeView or when the contents of the view are disposed due to being out of schema (another client did a schema upgrade), then brought back into schema (the schema upgrade was undone).Change details
Commit:
0ab3e51
Affected packages:
⬆️ Table of contents
New allowUnused utility function (#24076)
The new
allowUnused
utility function discards its type or runtime argument. When TypeScript is configured to reject code with unused locals, this function can be used to suppress that error enabling use of ValidateRecursiveSchema to compile.Change details
Commit:
13c62b6
Affected packages:
⬆️ Table of contents
Fix typing derived from unions of
AllowedTypes
arrays (#24441)Unions of array types provided as an AllowedTypes used to result in incorrectly computed insertable content types. This happened because InsertableTreeNodeFromAllowedTypes distributed over the union, violating the policy documented in Input for how schema derived input types should be computed. This has been fixed. To get usable Input types, SharedTree schema's types should always capture the exact schema provided at runtime and not unions of possible different schema. Any code impacted by this change should be updated to replace any such unions with more specific types.
Change details
Commit:
a27ef0a
Affected packages:
⬆️ Table of contents
Remote edits to nodes which have never been accessed locally now correctly trigger "treeChanged" events (#24421)
There was a bug where "treeChanged" events would not always trigger if the node which was edited had never been accessed in the current view. This has been fixed.
Change details
Commit:
916ad05
Affected packages:
⬆️ Table of contents
Move "Unsafe"
@system
types toSystem_Unsafe
namespace (#24443)Working code conforming to the rules regarding API Support Levels should be unaffected, but this resolves an issue which required violating these rules and directly referencing
@system
types.Sometimes packages exporting SharedTree schema related types for recursive schema could hit errors like:
Mitigating this error could require explicitly referencing these
@system
types frominternalTypes
. Any such references to the moved types should be able to be deleted, as TypeScript will now be able to find them in the new namespace without assistance.This does not migrate all types out of
internalTypes
, so some occurrences of this issue may remain.Change details
Commit:
dd4abfc
Affected packages:
⬆️ Table of contents
Other Changes
Presence APIs have been renamed (#24384)
The following API changes have been made to improve clarity and consistency:
acquirePresence
getPresence
acquirePresenceViaDataObject
getPresenceViaDataObject
ClientSessionId
AttendeeId
IPresence
Presence
IPresence.events["attendeeJoined"]
Presence.attendees.events["attendeeConnected"]
IPresence.events["attendeeDisconnected"]
Presence.attendees.events["attendeeDisconnected"]
IPresence.getAttendee
Presence.attendees.getAttendee
IPresence.getAttendees
Presence.attendees.getAttendees
IPresence.getMyself
Presence.attendees.getMyself
IPresence.getNotifications
Presence.notifications.getWorkspace
IPresence.getStates
Presence.states.getWorkspace
ISessionClient
Attendee
Latest
(import)StateFactory
Latest
(call)StateFactory.latest
LatestEvents.updated
LatestRawEvents.remoteUpdated
LatestMap
(import)StateFactory
LatestMap
(call)StateFactory.latestMap
LatestMapEvents.itemRemoved
LatestMapRawEvents.remoteItemRemoved
LatestMapEvents.itemUpdated
LatestMapRawEvents.remoteItemUpdated
LatestMapEvents.updated
LatestMapRawEvents.remoteUpdated
LatestMapItemValueClientData
LatestMapItemUpdatedClientData
LatestMapValueClientData
LatestMapClientData
LatestMapValueManager
LatestMapRaw
LatestMapValueManager.clients
LatestMapRaw.getStateAttendees
LatestMapValueManager.clientValue
LatestMapRaw.getRemote
LatestMapValueManager.clientValues
LatestMapRaw.getRemotes
LatestMapValueManagerEvents
LatestMapRawEvents
LatestValueClientData
LatestClientData
LatestValueData
LatestData
LatestValueManager
LatestRaw
LatestValueManager.clients
LatestRaw.getStateAttendees
LatestValueManager.clientValue
LatestRaw.getRemote
LatestValueManager.clientValues
LatestRaw.getRemotes
LatestValueManagerEvents
LatestRawEvents
LatestValueMetadata
LatestMetadata
PresenceEvents.attendeeDisconnected
AttendeesEvents.attendeeDisconnected
PresenceEvents.attendeeJoined
AttendeesEvents.attendeeConnected
PresenceNotifications
NotificationsWorkspace
PresenceNotifications.props
NotificationsWorkspace.notifications
PresenceNotificationsSchema
NotificationsWorkspaceSchema
PresenceStates
StatesWorkspace
PresenceStates.props
StatesWorkspace.states
PresenceStatesEntries
StatesWorkspaceEntries
PresenceStatesSchema
StatesWorkspaceSchema
PresenceWorkspaceAddress
WorkspaceAddress
PresenceWorkspaceEntry
StatesWorkspaceEntry
SessionClientStatus
AttendeeStatus
ValueMap
StateMap
Note
To fully replace the former
Latest
andLatestMap
functions, you should importStateFactory
and callStateFactory.latest
andStateFactory.latestMap
respectively. The newLatestRaw
andLatestMapRaw
APIs replaceLatestValueManager
andLatestMapValueManager
respectively.Change details
Commit:
ea95ef0
Affected packages:
⬆️ Table of contents
Presence object is now accessible from Workspaces and State objects (#24396)
Users can now access the
Presence
object through.presence
on all Workspaces and State objects:Latest.presence
LatestMap.presence
Notifications.presence
NotificationsWorkspace.presence
StatesWorkspace.presence
Change details
Commit:
c056567
Affected packages:
⬆️ Table of contents
StateFactory.latest/latestMap now takes an object as its only argument (#24414)
The
StateFactory.latest
andStateFactory.latestMap
functions now take a single object argument. To convert existing code, pass any initial data in thelocal
argument, and broadcast settings in thesettings
argument. For example:Before:
After:
Change details
Commit:
446d418
Affected packages:
⬆️ Table of contents
Unknown section: _unknown
---
"section": deprecation --- (#24411)
Replace generic types for IntervalCollections with non-generic types
This change deprecates the following generic types and provides non-generic alternatives where necessary:
IIntervalCollection
is replaced byISequenceIntervalCollection
IIntervalCollectionEvent
is replaced byISequenceIntervalCollectionEvents
IntervalIndex
is replaced bySequenceIntervalIndex
IOverlappingIntervalsIndex
is replaced byISequenceOverlappingIntervalsIndex
ISharedIntervalCollection
is deprecated without replacementThese types are no longer required to be generic, and replacing them with non-generic alternatives keeps our typing less complex.
Change details
Commit:
1c743e8
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: