Releases: obi1kenobi/cargo-semver-checks
v0.17.0
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
- Echo the toolchain version while generating rustdoc. by @obi1kenobi in #328
- Add vendored-openssl feature by @tonowak in #324
- Use trustfall_rustdoc v0.8.2, drop rustdoc v16 support. by @obi1kenobi in #327
- Add a test case with infinite importable paths. by @obi1kenobi in #287
- Speed up tests by 10x by compiling dependencies with optimizations. by @obi1kenobi in #329
- Detect and don't report non-breaking renaming re-exports. by @obi1kenobi in #330
- Update crates-index to v0.19.2. by @obi1kenobi in #331
- Release v0.17.0. by @obi1kenobi in #332
Full Changelog: v0.16.2...v0.17.0
v0.16.2
What's Changed
- Bump crates-index to 0.19.0 since 0.18.12 is yanked due to semver break. by @obi1kenobi in #322
- Release v0.16.2. by @obi1kenobi in #323
Full Changelog: v0.16.1...v0.16.2
v0.16.1
What's Changed
- Updated dependency versions to avoid semver violation in a dependency (#317). Reported and fixed by @demoray — thank you!
All Merged PRs
- update git2 dependency by @demoray in #318
- Release v0.16.1 with updated git2 dependency version. by @obi1kenobi in #320
New Contributors
Full Changelog: v0.16.0...v0.16.1
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_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
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_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 #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
--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