Skip to content

Releases: obi1kenobi/cargo-semver-checks

v0.17.0

30 Jan 05:06
353ecd8
Compare
Choose a tag to compare

What's Changed

  • Requires Rust 1.65+ when generating rustdoc.
  • Support for re-exports, renames, pub type, and globs. Eliminated many false-positive bugs related to these. #288
  • Bugfix for a path handling bug on Windows: #276

All Merged PRs

Full Changelog: v0.16.2...v0.17.0

v0.16.2

24 Jan 22:46
ee1fa79
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.16.1...v0.16.2

v0.16.1

24 Jan 01:20
97f55f8
Compare
Choose a tag to compare

What's Changed

  • Updated dependency versions to avoid semver violation in a dependency (#317). Reported and fixed by @demoray — thank you!

All Merged PRs

New Contributors

Full Changelog: v0.16.0...v0.16.1

v0.16.0

23 Jan 19:59
1258faf
Compare
Choose a tag to compare

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_added
  • function_must_use_added
  • inherent_method_must_use_added
  • struct_must_use_added
  • trait_must_use_added
  • struct_with_pub_fields_changed_type
  • constructible_struct_changed_type

False positives fixed in existing lints:

  • struct_missing: #306

Other bugfixes:

  • Setting cargo's target-dir caused 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_missing false-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

06 Jan 06:54
f6b41f4
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.15.1...v0.15.2

v0.15.1

06 Jan 04:00
fe5167e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.15.0...v0.15.1

v0.15.0

05 Jan 04:33
2bdc041
Compare
Choose a tag to compare

What's Changed

  • Added 11 new lints:

    • constructible_struct_adds_field
    • constructible_struct_adds_private_field
    • enum_struct_variant_field_added
    • function_const_removed
    • function_unsafe_added
    • inherent_method_const_removed
    • inherent_method_unsafe_added
    • trait_missing
    • trait_unsafe_added
    • trait_unsafe_removed
    • tuple_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 #218
    • struct_marked_non_exhaustive: Document private items to fix non-exhaustive false-positives. by @obi1kenobi in #222
    • method_parameter_count_changed: Do not report removed methods as changing their number of parameters. by @obi1kenobi in #220
  • Eliminated false-negatives in 5 lints

    • Improved attribute parsing can now handle repr combinations like #[repr(C, u8)]: New schema for attributes by @SmolSir in #171
    • Affected lints:
      • enum_repr_c_removed
      • enum_repr_int_changed
      • enum_repr_int_removed
      • struct_repr_c_removed
      • struct_repr_transparent_removed
  • Support for rustdoc JSON format v24, the most recent nightly version as of this release

    • via updated dependency on trustfall_rustdoc
  • Prebuilt binaries now available

  • 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 --locked in the README by @obi1kenobi in #213
  • Updated CONTRIBUTING.md after 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 const from 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_removed disregards method deletions. by @obi1kenobi in #227
  • Add lints for adding unsafe to 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_missing lint. 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.sh script. 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