Skip to content
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

Remove several types from @public scope #21142

Merged
merged 5 commits into from
May 17, 2024

Conversation

CraigMacomber
Copy link
Contributor

@CraigMacomber CraigMacomber commented May 17, 2024

Description

Due to my previous changes to make IFluidDataStoreRuntime non-public, several types no longer need to be public. This moves more of them to alpha.

Also includes a couple of IAudience related tweaks to make the types better convey what I I think is supported as far as method binding and modification.

Breaking Changes

The following types have been moved from @public to @alpha:

  • IFluidSerializer
  • ISharedObjectEvents
  • IChannelServices
  • IChannelStorageService
  • IDeltaConnection
  • IDeltaHandler

These should not be needed by users of the declarative API, which is what @public is targeting.

Reviewer Guidance

The review process is outlined on this wiki page.

@CraigMacomber CraigMacomber requested review from a team as code owners May 17, 2024 18:34
@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: propertydds area: dds: sharedstring area: dds: tree area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: runtime Runtime related issues area: tests Tests to add, test infrastructure improvements, etc public api change Changes to a public API base: main PRs targeted against main branch labels May 17, 2024
@@ -75,7 +75,7 @@ export interface ContainerWarning extends IErrorBase_2 {
export interface IAudience extends IEventProvider<IAudienceEvents> {
getMember(clientId: string): IClient | undefined;
getMembers(): Map<string, IClient>;
getSelf: () => ISelf | undefined;
getSelf(): ISelf | undefined;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

when reviewing public APIs, I spotted this. I don't think the intention in this API was to have a mutable callback users could reassign OR call without the Audience object as its this. At least one implementation implemented this with a method, so I made the API match.

Comment on lines +465 to +466
readonly client?: IClient;
readonly clientId: string;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

being able to reassign who self is seems like not something we support, do I cleaned this up too.

@CraigMacomber CraigMacomber requested a review from a team as a code owner May 17, 2024 19:18
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.

Thanks for doing this!!!

Copy link
Contributor

@jason-ha jason-ha left a comment

Choose a reason for hiding this comment

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

I never had any issue with the content of this PR. It is I think the best we can do. The thing that caught my attention was the mention of encapsulated API. It is just still fuzzy. If any of those changed are actually meant to be internal then I wouldn't say they are part of encapsulated API [surface].

@CraigMacomber CraigMacomber merged commit 983e9f0 into microsoft:main May 17, 2024
30 checks passed
@CraigMacomber CraigMacomber deleted the unpubmore branch May 17, 2024 22:15
kekachmar pushed a commit to kekachmar/FluidFramework that referenced this pull request May 21, 2024
## Description

Due to my previous changes to make IFluidDataStoreRuntime non-public,
several types no longer need to be public. This moves more of them to
alpha.

Also includes a couple of `IAudience` related tweaks to make the types
better convey what I I think is supported as far as method binding and
modification.

## Breaking Changes

The following types have been moved from `@public` to `@alpha`:

-   `IFluidSerializer`
-   `ISharedObjectEvents`
-   `IChannelServices`
-   `IChannelStorageService`
-   `IDeltaConnection`
-   `IDeltaHandler`

These should not be needed by users of the declarative API, which is
what `@public` is targeting.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: dds: propertydds area: dds: sharedstring area: dds: tree area: dds Issues related to distributed data structures area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: runtime Runtime related issues area: tests Tests to add, test infrastructure improvements, etc base: main PRs targeted against main branch public api change Changes to a public API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants