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

Parse API extractor files to diff branch against master, prohibit unsupported bump types #884

Open
dzearing opened this issue Jun 5, 2023 · 2 comments
Labels
plugin or peer Feature request requiring large deps which shouldn't be added to beachball core

Comments

@dzearing
Copy link
Member

dzearing commented Jun 5, 2023

When someone removes a named export, typing or not, this is a breaking change for consumers of that named export. This happens far more often than we'd like. Beachball has an opportunity to detect this and enforce only valid upgrade types.

Something like:

Pull api.json from master, compare with branch, determine if named exports are missing or functions change api signatures and disallow patches and minors.

Detect if a new export or function argument was added, disallow patches.

Allow for a cli argument way to override enforcement in the case there is some reasonable change it detected incorrectly.

@ecraig12345 ecraig12345 added the plugin or peer Feature request requiring large deps which shouldn't be added to beachball core label Aug 30, 2023
@ecraig12345
Copy link
Member

This would probably need to be implemented either in a plugin (if we ever add support for that) or possibly with an optional peer dependency, since not all repos using beachball also use API Extractor, and referencing that stack pulls in quite a few extra dependencies.

@dzearing
Copy link
Member Author

Or we have some separate standalone library support validating api surface diffing. I think @kenotron was working on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
plugin or peer Feature request requiring large deps which shouldn't be added to beachball core
Projects
None yet
Development

No branches or pull requests

2 participants