v1.0.0-preview.15 release - includes breaking changes!!! #582
ryanbliss
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
We will stop making breaking changes to
minorandpatchversions for@microsoft/live-share,@microsoft/live-share-media, and@microsoft/live-share-canvason May 24th, 2023. Thanks for your patience as we prepare for this major release!LivePresence
LivePresenceConnections api enabling viewing PresenceState and data on a per connection basis.presence.toArray()andpresence.forEach(), in favor of a more standardpresence.getUsers()API..update()to be an async method. This will now throw an error if the local user does not have the required roles.LiveState
.set()to be an async method. This will now throw an error if the local user does not have the required roles.LiveTimer
.start(),play(), etc. to be async methods. This will now throw an error if the local user does not have the required roles.LiveEvent
.send()to be async. This will now throw an error if the local user does not have the required roles.MediaPlayerSynchronizer & LiveMediaSessionCoordinator
.play(),pause(), etc. to be async methods. This will now throw an error if the local user does not have the required roles.LiveShareRuntime
LiveDataObjectabstract class from which all Live Share DDS's now extendLiveShareRuntimeclass which is injected into allLiveDataObjectinstances when joining a container as a non-static reference.getLiveShareContainerSchemaProxyAPI for injecting theLiveDataObjectwithliveRuntimeinto the static Fluid factories. Even though these factories & constructors are static, this is done in a way such that each Fluid container gets a separate proxy class for eachLiveDataObjectused. That allows you to have differentLiveShareRuntimeinstances for each container, should you have multiple (useful for unit testing, for example).LiveShareClient.getTimestamp()toLiveShareRuntime, if usingLiveShareClient.getTimestamp()in your app, please use the newtimestampProviderwhich is returned when callingjoinContaineronLiveShareClient.LiveShareClient.verifyRolesAllowed()toLiveShareRuntimeLiveShareClient.getClientRoles()toLiveShareRuntimeLiveShareClient.setTimestampProvider()toLiveShareRuntimeLiveShareClient.setRoleVerifier()toLiveShareRuntimeLiveShareRuntimeAzureLiveShareHost
AzureLiveShareHostclass, which allows developers usingAzureClientwithoutLiveShareClientto still useLiveDataObjectinstances.LivePresenceandLiveCanvascan still be used now thatdisplayNameis set by default. It usesIAzureAudienceto still securely getdisplayNameanduserIdfrom the AFR token.AzureTurboClientto do this by default usinggetLiveShareContainerSchemaProxy, mostly to give partners depending on this change an example they can reference.LiveObjectSynchronizer
LiveObjectSynchronizerto be centralized without static properties, enabling pre-send validation of roles, removed the requirement to have bothLiveEventScopeandLiveObjectSynchronizer, and significantly reduced the amount of "connect" events being sent. This significantly reduce the performance of our backend service.Other changes
AzureLiveShareHost, I found out that the backwards-compat decorator would try toregisterClientId("fakeId")even if we had a valid error (which is what we expect) forfakeId. I improved that behavior so that valid rejections (ideal behavior for "fakeId") are promptly returned w/o extra requests.BackwardsCompatibilityHostDecoratorandLiveShareHostDecoratorthat caused the polyfill to be used when it shouldn't.waitForResultutil more flexible for better type validation, ability to have valid undefined results, ability to transform results, the ability to bypass the retry schedule for certain non-timeout error responses, and the ability to handle nonErrortype promise rejections (e.g.,SdkErrorfrom teams-js). This allowed me to fix the above bug while also greatly simplifying thewaitForResultimplementations in our host decorators.BackwardsCompatibilityHostDecoratorpolyfill was being used forgetClientInfoisTestinginLiveShareClientwould be false if usingTestLiveShareHost.This discussion was created from the release v1.0.0-preview.15 release - includes breaking changes!!!.
Beta Was this translation helpful? Give feedback.
All reactions