Releases: obi1kenobi/cargo-semver-checks
Releases · obi1kenobi/cargo-semver-checks
v0.16.0
What's Changed
The v0.16.x series is the final set of releases to support the v16 rustdoc format, used by Rust 1.64.
Future versions of cargo-semver-checks will only be able to scan projects that can be built on Rust 1.65+. This will allow the addition of new semver lints based on data that rustdoc v16 does not include.
New lints:
enum_must_use_addedfunction_must_use_addedinherent_method_must_use_addedstruct_must_use_addedtrait_must_use_addedstruct_with_pub_fields_changed_typeconstructible_struct_changed_type
False positives fixed in existing lints:
struct_missing: #306
Other bugfixes:
- Setting cargo's
target-dircaused the generated rustdoc JSON files to overwrite each other, causing semver-issues to be missed. This caused #269 and #309, and was fixed in #270.
All Merged PRs
- Add a field to the bug report form for config.toml information. by @obi1kenobi in #271
- New lint: Struct
#[must_use]added by @SmolSir in #279 - New lint: Trait
#[must_use]added by @SmolSir in #280 - New lint: Function
#[must_use]added by @SmolSir in #281 - New lint: Enum
#[must_use]added by @SmolSir in #278 - Optimize the
#[must_use]lint queries by improving filtering. by @obi1kenobi in #286 - Nit: broken link by @bgeron in #289
- Test crates should not be published, make them
publish = false. by @obi1kenobi in #290 - New lint: Inherent method
#[must_use]added by @SmolSir in #283 - New test crate: method moved to trait
#[must_use]added by @SmolSir in #282 - Non-constructible struct becoming an enum is not per se breaking. by @obi1kenobi in #299
- Another tricky edge case for nonbreaking struct to enum conversions. by @obi1kenobi in #301
- Only parse test rustdocs once, for ~2x test time speedup. by @obi1kenobi in #300
- Fix
struct_missingfalse-positive: only look for deleted structs. by @obi1kenobi in #306 - Improve the test coverage for structs that change to enums. by @obi1kenobi in #307
- Lint: constructible struct with no fields became an enum or union. by @obi1kenobi in #308
- Update issue template to reference
CARGO_env vars. by @obi1kenobi in #310 - Lint: struct with pub fields changed type to enum or union. by @obi1kenobi in #312
- Fix rustdoc .json files overwriting each other by @staniewzki in #270
- Release v0.16.0. by @obi1kenobi in #316
New Contributors
Full Changelog: v0.15.2...v0.16.0
v0.15.2
What's Changed
- Fix for #265: Include implicit features from optional dependencies. by @obi1kenobi in #266
Full Changelog: v0.15.1...v0.15.2
v0.15.1
What's Changed
- Fix for #261: Use exact version when generating a registry baseline by @obi1kenobi in #262
Full Changelog: v0.15.0...v0.15.1
v0.15.0
What's Changed
-
Added 11 new lints:
constructible_struct_adds_fieldconstructible_struct_adds_private_fieldenum_struct_variant_field_addedfunction_const_removedfunction_unsafe_addedinherent_method_const_removedinherent_method_unsafe_addedtrait_missingtrait_unsafe_addedtrait_unsafe_removedtuple_struct_to_plain_struct
-
Eliminated false-positives in 3 lints:
struct_missing: "Struct missing" lint shouldn't care about the kind of struct. by @obi1kenobi in #218struct_marked_non_exhaustive: Document private items to fix non-exhaustive false-positives. by @obi1kenobi in #222method_parameter_count_changed: Do not report removed methods as changing their number of parameters. by @obi1kenobi in #220
-
Eliminated false-negatives in 5 lints
-
Support for rustdoc JSON format v24, the most recent nightly version as of this release
- via updated dependency on
trustfall_rustdoc
- via updated dependency on
-
Prebuilt binaries now available
- Upload binaries to github release in actions by @staniewzki in #208
-
Other bugfixes
- Exclude yanked releases when choosing baseline version by @mgr0dzicki in #255
- Bugfix of printed baseline version when ran on given Manifest by @tonowak in #248
- Fix for rustdoc no longer inlining foreign traits, including built-in traits — via updated dependency on
trustfall-rustdoc
-
Internal improvements
- A massive revamp of the test suite, led by @tonowak. This is what allowed us to build so many new lints in so little time.
- Streamlined workflow for adding new lints: just run
scripts/make_new_lint.sh <new-lint-name>to generate all needed stubs
New Contributors
All Merged PRs
- Add Rust caching steps to a few more test stages. by @obi1kenobi in #212
- Suggest installing with
--lockedin the README by @obi1kenobi in #213 - Updated
CONTRIBUTING.mdafter the test directory renames by @tonowak in #216 - One macro to include lints by @tonowak in #204
- Split each source code in test_crates/ into pair of crates by @tonowak in #203
- Eliminate new lints raised by new clippy version. by @obi1kenobi in #219
- Do not report removed methods as changing their number of parameters. by @obi1kenobi in #220
- "Struct missing" lint shouldn't care about the kind of struct. by @obi1kenobi in #218
- Document private items to fix non-exhaustive false-positives. by @obi1kenobi in #222
- Remove accidentally-committed dead code. by @obi1kenobi in #221
- Add lints for removing
constfrom functions and methods. by @obi1kenobi in #224 - Ignore directories in test_crates that don't have Cargo.toml. by @obi1kenobi in #228
- Ensure
inherent_method_const_removeddisregards method deletions. by @obi1kenobi in #227 - Add lints for adding
unsafeto methods and functions. by @obi1kenobi in #226 - Protect against more possible false-positives in the const/unsafe lints. by @obi1kenobi in #229
- Upload binaries to github release in actions by @staniewzki in #208
- Add the
trait_missinglint. by @obi1kenobi in #230 - Add lints for structs that are no longer externally-constructible as before. by @obi1kenobi in #233
- Ensure the lint files are part of the binary file itself. by @obi1kenobi in #234
- Add script for creating everything needed to add a new lint. by @obi1kenobi in #236
- Make the "new lint" script idempotent for each step separately. by @obi1kenobi in #237
- Add lint for exhaustive struct variants gaining new fields. by @obi1kenobi in #238
- Minor polish items for the
make_new_lint.shscript. by @obi1kenobi in #239 - Run lints on nonchanged crates by @tonowak in #206
- Clippy lint "variables can be used directly in the
format!string" by @tonowak in #244 - Bugfix of printed baseline version when ran on given Manifest by @tonowak in #248
- Run cargo build and test built binary to ensure it works by @tonowak in #246
- Describe the new more-automated process for adding new lints. by @obi1kenobi in #240
- Make the make_new_lint.sh script executable. by @obi1kenobi in #251
- New lint: exhaustive tuple struct changed to plain struct by @staniewzki in #249
- Exclude yanked releases when choosing baseline version by @mgr0dzicki in #255
- New schema for attributes by @SmolSir in #171
- Generate CI test rustdocs with the toolchain being tested. by @obi1kenobi in #245
- New lints: Trait becomes/stops being unsafe by @staniewzki in #252
- Release v0.15.0 with 11 new lints and support for latest nightly. by @obi1kenobi in #258
Full Changelog: v0.14.0...v0.15.0