cargo-semver-checks
cargo-semver-checks copied to clipboard
Scan your Rust crate for semver violations.
https://rust-lang.github.io/unsafe-code-guidelines/layout/enums.html#explicit-repr-annotation-with-c-compatibility  Currently, I suspect that `#[repr(C, u8)]` won't get detected as either `#[repr(C)]` or as `#[repr(u8)]`, which I believe can lead to both false-positives and false-negatives. Due to the...
At the moment, rustdoc is coupled to a specific range of nightly versions. We should clearly document this for users (and maybe provide helpful runtime errors about it) so users...
I'm thinking "if this were merged into cargo, what name should it have?" Quick thoughts on criteria - Brief - Informative, including the idea of non-semver checks Ideas - `cargo...
Semver says deprecations are minor changes. Reference: https://doc.rust-lang.org/reference/attributes/diagnostics.html#the-deprecated-attribute Will require separate checks for: - [ ] items (struct, trait, fn, etc.) - [x] struct, enum - [ ] union -...
Currently, before `cargo publish`, the new version of `cargo-semver-checks` is tested by running the most-recent-prior version of `cargo-semver-checks` on its API changes. This makes sure we don't break semver for...
Right now, glob imports are ignored for purposes of calculating the "importable paths" of an item. This is likely to cause false-negative issues where items aren't scanned but they should...
Consider the following code, in an imaginary `lib` crate. ``` pub mod foo { pub struct Bar; } pub use foo::Bar; ``` `Bar` is now importable both directly as `lib::Bar`...
There are valid use cases for running additional (not-necessarily-semver) user-provided checks against a codebase. A few examples: - Ensuring that a builder pattern struct always uses either `&mut self` or...
Not sure what the easiest and best way to do this is.