-
Notifications
You must be signed in to change notification settings - Fork 549
feat(client-presence): promote to beta #24710
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
Conversation
leaving Notifications at alpha
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Promote the Fluid Framework presence client APIs to beta support, leaving notifications functionality in alpha. Changes include updating JSDoc support levels, exposing a new beta entrypoint, and refreshing imports and documentation.
- Switch public types and interfaces from
@alpha
to@beta
tags. - Add a new
@fluidframework/presence/beta
export inpackage.json
and corresponding API-extractor configs. - Update README, docs, and example code to import from
/beta
where appropriate.
Reviewed Changes
Copilot reviewed 40 out of 40 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
packages/framework/presence/src/datastorePresenceManagerFactory.ts | Import PresenceWithNotifications as the default Presence |
packages/framework/presence/src/broadcastControls.ts | Bump @alpha tags to @beta on broadcast controls |
packages/framework/presence/src/baseTypes.ts | Bump @alpha tag to @beta on ClientConnectionId |
packages/framework/presence/package.json | Add ./beta export entrypoint and new lint scripts |
packages/framework/presence/api-report/presence.beta.api.md | Regenerate public API report for the beta entrypoint |
packages/framework/presence/api-report/presence.alpha.api.md | Update alpha API report with new beta-related exports |
packages/framework/presence/api-extractor/api-extractor-lint-beta.esm.json | Add ESM lint config for beta |
packages/framework/presence/api-extractor/api-extractor-lint-beta.cjs.json | Add CJS lint config for beta |
packages/framework/presence/README.md | Document importing from /beta |
packages/framework/presence/.eslintrc.cjs | Allow linting of /beta paths |
examples/service-clients/azure-client/external-controller/src/view.ts | Swap imports from presence/alpha to presence/beta |
examples/service-clients/azure-client/external-controller/src/presence.ts | Swap imports from presence/alpha to presence/beta |
examples/service-clients/azure-client/external-controller/src/app.ts | Swap imports from presence/alpha to presence/beta |
examples/apps/presence-tracker/src/reactions.ts | Cast beta Presence to PresenceWithNotifications in alpha |
examples/apps/presence-tracker/src/MouseTracker.ts | Swap imports from presence/alpha to presence/beta |
examples/apps/presence-tracker/src/FocusTracker.ts | Swap imports from presence/alpha to presence/beta |
examples/apps/ai-collab/src/app/presence.ts | Swap imports from presence/alpha to presence/beta |
examples/apps/ai-collab/src/app/page.tsx | Swap imports from presence/alpha to presence/beta |
docs/docs/build/presence.md | Update code sample to import from presence/beta |
.changeset/fluffy-donkeys-obey.md | Describe beta rollout and notification-alpha note |
Comments suppressed due to low confidence (2)
packages/framework/presence/src/datastorePresenceManagerFactory.ts:21
- [nitpick] Aliasing
PresenceWithNotifications
toPresence
can blur the distinction between the base presence API and the extended notifications API. Consider importing and using the explicit type namePresenceWithNotifications
or updating the default export to avoid confusion.
import type { PresenceWithNotifications as Presence } from "./presence.js";
packages/framework/presence/package.json:16
- Consider adding or updating automated tests to verify that the new
/beta
entrypoint exports the expected API surface and typings to catch regressions early.
"./beta": {
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving for docs. Haven't reviewed code yet.
Added release blocking tag to make sure this isn't missed for the next release. |
- remove stale internal exports - add /beta exports
🔗 No broken links found! ✅ Your attention to detail is admirable. linkcheck output
|
readonly states: { | ||
getWorkspace<StatesSchema extends StatesWorkspaceSchema>(workspaceAddress: WorkspaceAddress, requestedStates: StatesSchema, controls?: BroadcastControlSettings): StatesWorkspace<StatesSchema>; | ||
}; | ||
} | ||
|
||
// @alpha @sealed (undocumented) | ||
// @beta @sealed (undocumented) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Docs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There appear to be a fair number of new @beta
exports that are reported as undocumented. It would probably be worth a pass to fill in those gaps. Doesn't have to be in this PR IMO, but we should make sure it gets done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like the only top-level APIs that don't have comments are Events interfaces. Will fast follow with updates.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
API changes look good, at least in terms of the promotion mechanics. It would probably be good to review the architecture with the team again sometime between now and the promotion to public.
- removes @internal where API is not package exported and adding real notes where none were. - adds documentation to exported APIs Follow-up for microsoft#24399 and microsoft#24710
adds documentation to beta APIs that are not `@system` nor `attendees` or `states` properties of `Presence` Follow-up for microsoft#24710
adds documentation to beta APIs that are not `@system` nor `attendees` or `states` properties of `Presence` Follow-up for #24710
leaving Notifications at alpha
AB#39512