-
Notifications
You must be signed in to change notification settings - Fork 535
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into navParameterAddition
- Loading branch information
Showing
581 changed files
with
9,598 additions
and
3,714 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--- | ||
"@fluidframework/devtools": minor | ||
"@fluidframework/devtools-core": minor | ||
--- | ||
--- | ||
"section": other | ||
--- | ||
|
||
Mark APIs as `@sealed` and `@system` as appropriate, and make interface properties `readonly` | ||
|
||
APIs that were never intended for direct consumer use have been marked as `@system`. | ||
These are: | ||
|
||
- HasContainerKey | ||
|
||
APIs that were not intended to be extended by consumers have been marked as `@sealed`. | ||
These are: | ||
|
||
- ContainerDevtoolsProps | ||
- DevtoolsProps | ||
- HasContainerKey | ||
- IDevtools | ||
|
||
Additionally, interface properties have been marked as `readonly`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- | ||
"@fluidframework/core-interfaces": minor | ||
"@fluidframework/tree": minor | ||
--- | ||
--- | ||
"section": other | ||
--- | ||
|
||
Relocating Events Library to `@fluidframework/core-interfaces` and `@fluid-internal/client-utils` | ||
|
||
The events library's types and interfaces are moved to `@fluidframework/core-interfaces`, while its implementation is relocated to `@fluid-internal/client-utils`. There are no changes to how the events library is used; the relocation simply organizes the library into more appropriate packages. This change has no impact on external consumers of Fluid. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
--- | ||
"@fluidframework/presence": minor | ||
--- | ||
--- | ||
"section": feature | ||
--- | ||
|
||
Presence updates are now batched and throttled | ||
|
||
Presence updates are grouped together and throttled to prevent flooding the network with messages when presence values are rapidly updated. This means the presence infrastructure will not immediately broadcast updates but will broadcast them after a configurable delay. | ||
|
||
The `allowableUpdateLatencyMs` property configures how long a local update may be delayed under normal circumstances, enabling batching with other updates. The default `allowableUpdateLatencyMs` is **60 milliseconds** but may be (1) specified during configuration of a [States Workspace](https://github.com/microsoft/FluidFramework/tree/main/packages/framework/presence#value-managers#states-workspace) or [Value Manager](https://github.com/microsoft/FluidFramework/tree/main/packages/framework/presence#value-managers#value-managers) and/or (2) updated later using the `controls` member of Workspace or Value Manager. [States Workspace](https://github.com/microsoft/FluidFramework/tree/main/packages/framework/presence#value-managers#states-workspace) configuration applies when a Value Manager does not have its own setting. | ||
|
||
Notifications are never queued; they effectively always have an `allowableUpdateLatencyMs` of 0. However, they may be batched with other updates that were already queued. | ||
|
||
Note that due to throttling, clients receiving updates may not see updates for all values set by another. For example, | ||
with `Latest*ValueManagers`, the only value sent is the value at the time the outgoing batched message is sent. Previous | ||
values set by the client will not be broadcast or seen by other clients. | ||
|
||
#### Example | ||
|
||
You can configure the batching and throttling behavior using the `allowableUpdateLatencyMs` property as in the following example: | ||
|
||
```ts | ||
// Configure a states workspace | ||
const stateWorkspace = presence.getStates("app:v1states", | ||
{ | ||
// This value manager has an allowable latency of 100ms. | ||
position: Latest({ x: 0, y: 0 }, { allowableUpdateLatencyMs: 100 }), | ||
// This value manager uses the workspace default. | ||
count: Latest({ num: 0 }), | ||
}, | ||
// Specify the default for all value managers in this workspace to 200ms, | ||
// overriding the default value of 60ms. | ||
{ allowableUpdateLatencyMs: 200 } | ||
); | ||
|
||
// Temporarily set count updates to send as soon as possible | ||
const countState = stateWorkspace.props.count; | ||
countState.controls.allowableUpdateLatencyMs = 0; | ||
countState.local = { num: 5000 }; | ||
|
||
// Reset the update latency to the workspace default | ||
countState.controls.allowableUpdateLatencyMs = undefined; | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
--- | ||
"@fluidframework/presence": minor | ||
--- | ||
--- | ||
"section": feature | ||
--- | ||
|
||
`off` event deregistration pattern now supported | ||
|
||
Event subscriptions within `@fluidframework/presence` may now use `off` to deregister event listeners, including initial listeners provided to `Notifications`. | ||
|
||
Some type names have shifted within the API though no consumers are expected to be using those types directly. The most visible rename is `NotificationSubscribable` to `NotificationListenable`. Other shifts are to use types now exported thru `@fluidframework/core-interfaces` where the most notable is `ISubscribable` that is now `Listenable`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -100,7 +100,7 @@ | |
"@fluidframework/azure-service-utils-previous": "npm:@fluidframework/[email protected]", | ||
"@fluidframework/build-common": "^2.0.3", | ||
"@fluidframework/build-tools": "^0.51.0", | ||
"@fluidframework/eslint-config-fluid": "^5.4.0", | ||
"@fluidframework/eslint-config-fluid": "^5.6.0", | ||
"@microsoft/api-extractor": "7.47.8", | ||
"@types/jsrsasign": "^10.5.12", | ||
"@types/uuid": "^9.0.2", | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.