cargo-semver-checks
cargo-semver-checks copied to clipboard
Scan your Rust crate for semver violations.
In approximate order of increasing difficulty: - [x] expose auto-trait / unsafe trait info on [`type Trait`](https://github.com/obi1kenobi/trustfall-rustdoc-adapter/blob/0b1f021c22aab6e48f38156e52c7b8331447149a/src/rustdoc_schema.graphql#L382) - new lints enabled by this: - [trait became unsafe](https://github.com/obi1kenobi/cargo-semver-checks/issues/231) (so its `impl`...
If a trait sealed, it should be okay to make its methods safe, since it's impossible for an external type to implement it.
### Steps to reproduce the bug with the above code #### Baseline ```rust pub struct B(usize); ``` #### Patch update ```rust pub struct A; pub type B = A; ```...
By default, `cargo semver-checks check-release` attempts to look up the most recent previous version of the crate on crates.io. This won't work for crates that are only published on a...
### Steps to reproduce the bug with the above code We've found that we can't move things around in a backwards compatible way using `pub use` since the `deprecated` attribute...
### Steps to reproduce the bug with the above code 1. Clone the repo https://github.com/KittyCAD/modeling-api and check out the branch achalmers/remove-one-enum 2. Notice that the PR adds a new Cargo...
### Steps to reproduce the bug with the above code Old crate: ```rust trait A {} trait B: A {} ``` New crate: ```rust trait B {} ``` ### Actual...
The error message says "type no longer *derives* trait" but what it means to say is that the type no longer *implements* the trait. It does not flag "`#[derive]` became...
As `cargo-semver-checks` is getting adopted by more and more projects, we're seeing more and more cases where our current APIs and config flags give users insufficient control over various edge...
For example, uncommenting the `#[doc(hidden)]` line is a breaking change since the struct is no longer considered public API, even though it is public. This is because some non-public API...