Skip to content

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

Merged
merged 2 commits into from
May 27, 2025

Conversation

jason-ha
Copy link
Contributor

@jason-ha jason-ha commented May 24, 2025

leaving Notifications at alpha

AB#39512

leaving Notifications at alpha
@Copilot Copilot AI review requested due to automatic review settings May 24, 2025 00:38
@jason-ha jason-ha requested review from a team as code owners May 24, 2025 00:38
@github-actions github-actions bot added area: examples Changes that focus on our examples area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: website changeset-present public api change Changes to a public API base: main PRs targeted against main branch labels May 24, 2025
Copy link
Contributor

@Copilot Copilot AI left a 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 in package.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 to Presence can blur the distinction between the base presence API and the extended notifications API. Consider importing and using the explicit type name PresenceWithNotifications 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": {

Copy link
Member

@tylerbutler tylerbutler left a 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.

@tylerbutler tylerbutler added the release-blocking Must be addressed before we cut and publish the next release label May 24, 2025
@tylerbutler
Copy link
Member

Added release blocking tag to make sure this isn't missed for the next release.

- remove stale internal exports
- add /beta exports
Copy link
Contributor

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output


> fluid-framework-docs-site@0.0.0 ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-docs-site@0.0.0 serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> fluid-framework-docs-site@0.0.0 check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

Crawling...

Stats:
  209835 links
    1663 destination URLs
    1895 URLs ignored
       0 warnings
       0 errors


readonly states: {
getWorkspace<StatesSchema extends StatesWorkspaceSchema>(workspaceAddress: WorkspaceAddress, requestedStates: StatesSchema, controls?: BroadcastControlSettings): StatesWorkspace<StatesSchema>;
};
}

// @alpha @sealed (undocumented)
// @beta @sealed (undocumented)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs?

Copy link
Contributor

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.

Copy link
Contributor Author

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.

Copy link
Contributor

@Josmithr Josmithr left a 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.

@jason-ha jason-ha merged commit 6fce410 into microsoft:main May 27, 2025
50 checks passed
@jason-ha jason-ha deleted the presence/promote-to-beta branch May 27, 2025 21:30
jason-ha added a commit to jason-ha/FluidFramework that referenced this pull request May 28, 2025
- 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
jason-ha added a commit to jason-ha/FluidFramework that referenced this pull request May 28, 2025
adds documentation to beta APIs that are not `@system` nor `attendees` or `states` properties of `Presence`

Follow-up for microsoft#24710
jason-ha added a commit that referenced this pull request May 29, 2025
adds documentation to beta APIs that are not `@system` nor `attendees`
or `states` properties of `Presence`

Follow-up for #24710
jason-ha added a commit that referenced this pull request May 30, 2025
- removes `@internal` where API is not package exported and adding real
notes where none were.
- adds documentation to exported APIs

Follow-up for #24399 and #24710
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: examples Changes that focus on our examples area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: website base: main PRs targeted against main branch changeset-present public api change Changes to a public API release-blocking Must be addressed before we cut and publish the next release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants