Skip to content

Releases: obi1kenobi/cargo-semver-checks

v0.20.0

23 Apr 17:18
e28327b
Compare
Choose a tag to compare

What's Changed

  • Massive performance boost, especially on large crates: up to 2354x faster than before thanks to the new optimizations API in Trustfall v0.4
  • Bugfix: the --release-type CLI argument was not being properly applied.
  • Bugfix: checking no longer fails for crates whose lib targets had a different name than the crate.

The v0.20.x series of releases will be the last one to support rustdoc formats v21 and v22, which are part of Rust 1.65 and 1.66, respectively. Versions v0.21+ will only support semver-checking rustdoc generated by Rust 1.67+.

All Merged PRs

  • Switch to dtolnay/rust-toolchain action for setting up Rust. by @obi1kenobi in #420
  • Eliminate the last actions-rs Action dependencies. by @obi1kenobi in #421
  • Upgrade to Trustfall v0.3.4 and matching trustfall-rustdoc version. by @obi1kenobi in #419
  • Update dependency versions. by @obi1kenobi in #422
  • Fix the ref-slice job on Linux, make it actually check stuff on Windows by @obi1kenobi in #425
  • Upgrade trustfall_rustdoc and trustfall dependencies. by @obi1kenobi in #428
  • Make ref_slice jobs use refs to commits by @mgr0dzicki in #429
  • The clap::ArgEnum trait is no longer false-positively shown missing. by @obi1kenobi in #435
  • Explicitly add Rust 1.68 to the test suite. by @obi1kenobi in #436
  • Load lib target name from cargo metadata. by @obi1kenobi in #433
  • Better placeholder name when the crate name can't be inferred. by @obi1kenobi in #437
  • Fix option --release-type by @mgr0dzicki in #439
  • Release v0.20.0 with Trustfall v0.4.0 and optimized adapters. by @obi1kenobi in #440

Full Changelog: v0.19.0...v0.20.0

v0.19.0

22 Mar 23:51
f9b1878
Compare
Choose a tag to compare

What's Changed

  • New lints: enum_tuple_variant_field_added and enum_tuple_variant_field_missing, requiring major bumps when enums' exhaustive tuple variants gain or lose fields
  • Bugfix: cached rustdoc with an older format version will now be detected & overwritten, instead of causing a crash (#415)
  • Lots of under-the-hood improvements that will help us ship faster and more confidently in the future!

All Merged PRs

Full Changelog: v0.18.3...v0.19.0

v0.18.3

22 Feb 17:56
cd235ea
Compare
Choose a tag to compare

What's Changed

In prior v0.18.x versions, CLI argument parsing bugs could lead to false-negatives or incorrect crates being selected for checking in a workspace. The false-negatives were caused by an incorrect baseline selection used as a default: "current directory" instead of "largest prior version on crates.io."

Due to the severity of these issues, all prior v0.18.x versions are yanked. Per our usual policy, we've added the reproducers for these issues to our integration test suite, so they can never happen again. Apologies for the inconvenience!

More information in #380, #378, #382, and #381.

All Merged PRs

Full Changelog: v0.18.2...v0.18.3

v0.18.2

21 Feb 15:48
863f533
Compare
Choose a tag to compare

What's Changed

  • Add a lib target so that other crates can use cargo-semver-checks as a library
  • Bugfix: target-specific optional features no longer produce false-positives (#369)
  • Bugfix: display color output from rustdoc on error (#326)

All Merged PRs

  • bump cargo-toml to 0.15.2 and remove workarounds by @skyzh in #374
  • Fix false-positives from target-specific optional features by @tonowak in #375
  • Use --color=always in rustdoc command when stderr is tty by @tonowak in #360
  • extract library by @MarcoIeni in #314
  • Release v0.18.2 with a new lib target. by @obi1kenobi in #377

New Contributors

Full Changelog: v0.18.1...v0.18.2

v0.18.1

17 Feb 23:01
8925960
Compare
Choose a tag to compare

What's Changed

  • Bugfix: support workspace-specified crate versions

All Merged PRs

New Contributors

Full Changelog: v0.18.0...v0.18.1

v0.18.0

13 Feb 16:31
f9f0732
Compare
Choose a tag to compare

What's Changed

  • Baseline rustdoc JSON is cached, since it rarely changes. This cuts project build times in half.
  • New --release-type <major/minor/patch> flag. Use it to opt out of semver-minor lints, or to override the automatic release categorization logic based on version numbers.
  • New lint: type_marked_deprecated, requiring minor bump on deprecations of structs and enums
  • Bugfixes:
    • Avoid false-positives on crates that expose 3rd party types in APIs but the local lockfile doesn't use the latest version of the 3rd party crate (#167), fixed by changing the rustdoc generation approach in #341
    • Ignore rustdoc lint errors, so that semver-checking linty crates is allowed (obi1kenobi/cargo-semver-checks-action#17), implemented in #357

Four new contributors this week: welcome @thomaseizinger, @Finomnis, @Emilgardis, @Daaiid! Almost all of the items above are things they built — well done 🎉🚀

All Merged PRs

New Contributors

Full Changelog: v0.17.1...v0.18.0

v0.17.1

31 Jan 01:47
c0f5f7d
Compare
Choose a tag to compare

What's Changed

  • Bugfix: do not crash on typedefs that omit generics with default values.

All Merged PRs

Full Changelog: v0.17.0...v0.17.1

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