-
Notifications
You must be signed in to change notification settings - Fork 9
Add API subcommand #43
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
a7565ff to
9eb4d82
Compare
ea7bc7e to
dc254d6
Compare
|
utACK 88b818c. Needs rebase. Overall this looks amazing. I'm super excited to try this. Unfortunately I suspect both the additivity checking and the semver checking are going to have too many false positives. For example, imagine we have a sealed trait and we have Maybe it's okay. Worth a shot. But I suspect we'll need to disable/weaken this, and fall back to using cargo-semver-checks for these sorts of checks. |
Changes get_packages (previously get_crate_dirs) to return both package names and directory paths as tuples.
I'll admit this is making my head hurt a bit, so going to think on it, but the underlying EDIT: looking at this |
|
d0abec0: rebased |
tcharding
left a comment
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.
ACK d0abec0
|
This is sick. The |
|
I'm going to merge, we are running review, ack, merge, yolo policy ATM here. |
Ideally this command takes over these scripts in rust-bitcoin, so hopefully can be run on PRs? But probably needs a little work still. |
|
I realize the command will be used, its just the |
|
Yeah, my read of the code is also that these questionable checks only run on |
This is a little more complex than the other
rbmtcommands. Up to now,rbmthas just orchestratedcargocommands, no other tool dependencies. But this patch adds anapicommand which takes over the exposed API checks and uses an internal dependency.The legacy scripts in rust-bitcoin use the
cargo-public-apitool has a nice library crate,public-api. This patch uses the library crate under the hood forrbmt'sapicommand.The
apicommand has two modes which I think models mostly the usage in rust-bitcoin. The standardcargo rbmt apigenerates exposed API files for all packages. It can use the global-pflag to filter which packages. It checks to make sure the feature flags are additive and if anything has changed. The second mode iscargo rbmt api --baseline $REFwhich takes a git ref and does a comparison. It fails if there are any breaking changes.