Skip to content

deprecate(dds): mark DDS implementation classes as deprecated#26501

Merged
tylerbutler merged 2 commits intomicrosoft:mainfrom
tylerbutler:deprecate/dds-implementation-classes
Feb 20, 2026
Merged

deprecate(dds): mark DDS implementation classes as deprecated#26501
tylerbutler merged 2 commits intomicrosoft:mainfrom
tylerbutler:deprecate/dds-implementation-classes

Conversation

@tylerbutler
Copy link
Copy Markdown
Member

Summary

Deprecate DDS implementation classes on the legacy API surface as part of the custom DDS removal effort:

  • ConsensusRegisterCollectionClass in @fluidframework/register-collection
  • ConsensusOrderedCollection in @fluidframework/ordered-collection
  • ConsensusQueueClass in @fluidframework/ordered-collection

These classes expose internal implementation details that consumers should not depend on. Consumers should use the corresponding interfaces (IConsensusRegisterCollection, IConsensusOrderedCollection) for typing and factory/singleton patterns for instance creation.

What changed

  • Added @deprecated TSDoc tags to all three implementation classes
  • Added eslint-disable comments for import-x/no-deprecated on internal usages (factories and subclasses)
  • Regenerated API reports reflecting the @deprecated annotations
  • Added changeset

Test plan

  • Both packages build successfully (tsc, api-extractor, eslint)
  • API reports updated to show @deprecated annotations

Deprecate ConsensusRegisterCollectionClass, ConsensusOrderedCollection,
and ConsensusQueueClass on the legacy API surface. These implementation
classes will be removed in a future release in favor of the interfaces
and factory/singleton patterns.
@tylerbutler tylerbutler marked this pull request as ready for review February 19, 2026 21:41
@tylerbutler tylerbutler requested review from a team as code owners February 19, 2026 21:41
Copilot AI review requested due to automatic review settings February 19, 2026 21:41
Copy link
Copy Markdown
Contributor

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

This PR deprecates legacy DDS implementation classes in the register-collection and ordered-collection packages to discourage consumer dependencies on internal implementation details as part of the custom DDS removal effort.

Changes:

  • Added @deprecated TSDoc annotations to DDS implementation classes on the legacy API surface.
  • Added targeted eslint-disable-next-line import-x/no-deprecated suppressions for internal usages (factories/subclasses).
  • Regenerated legacy API reports and added a changeset documenting the deprecations.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/dds/register-collection/src/consensusRegisterCollectionFactory.ts Suppresses deprecated-usage lint for factory’s internal instantiation of the deprecated class.
packages/dds/register-collection/src/consensusRegisterCollection.ts Marks the implementation class as @deprecated with migration guidance.
packages/dds/register-collection/api-report/register-collection.legacy.beta.api.md Updates API report to reflect deprecated class annotation.
packages/dds/ordered-collection/src/consensusQueue.ts Marks queue implementation class as @deprecated and suppresses deprecated base-class usage.
packages/dds/ordered-collection/src/consensusOrderedCollectionFactory.ts Suppresses deprecated-usage lint where the deprecated implementation class is referenced/instantiated.
packages/dds/ordered-collection/src/consensusOrderedCollection.ts Marks ordered collection implementation base class as @deprecated.
packages/dds/ordered-collection/api-report/ordered-collection.legacy.beta.api.md Updates API report to reflect deprecated class annotations.
.changeset/deprecate-dds-impl-classes.md Adds a deprecation changeset for the affected packages.

Address review feedback: the ConsensusQueue type alias exposes the
deprecated ConsensusQueueClass but wasn't itself marked deprecated,
so consumers using it for typing wouldn't see deprecation warnings.
@github-actions
Copy link
Copy Markdown
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:
  257789 links
    1822 destination URLs
    2063 URLs ignored
       0 warnings
       0 errors


@tylerbutler tylerbutler enabled auto-merge (squash) February 20, 2026 00:07
@tylerbutler tylerbutler merged commit 583a96c into microsoft:main Feb 20, 2026
35 checks passed
@tylerbutler tylerbutler deleted the deprecate/dds-implementation-classes branch February 20, 2026 00:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants