Skip to content

v0.44.0

Choose a tag to compare

@obi1kenobi obi1kenobi released this 21 Sep 01:31
· 61 commits to main since this release

In this release

  • 22 new lints, for a total of 200 πŸŽ‰
  • Spotlight: The Road to 200 lints

semver-mk3-optimized
✨ This adorable animation was made by @dekirisu ✨

This release requires Rust 1.88+ both to install (MSRV) and at runtime. Future releases will require Rust 1.89+.

Spotlight: The Moore's Law of Lints

We have a kind of "Moore's Law" for lints: every year we run twice as many lints in the same total time.

  • 30 lints at the end of 2022
  • 57 lints at the end of 2023
  • 120 lints at the end of 2024
  • We'd need 240 lints at the end of 2025 to keep up the pace; with ~3.3 months to go, we're at 200 lints.
  • Meanwhile, as of the optimizations shipped 2.5 years ago, running lints on crates.io's largest library required only 8s or less.

This is rare and remarkable, and requires overcoming many complex socio-technical challenges! Here are a few examples from conference talks related to cargo-semver-checks:

We're also fortunate to have two extraordinary students working on cargo-semver-checks this year as part of Google Summer of Code! Their work is key to continuing this positive exponential trend, and we look forward to showcasing their impact more closely later this year.

New lints

The 22 new lints are grouped in several categories.

API or ABI breakage

  • function_const_generic_reordered
  • function_generic_type_reordered
  • function_now_returns_unit
  • inherent_method_const_generic_reordered
  • inherent_method_generic_type_reordered
  • inherent_method_now_returns_unit
  • repr_align_added
  • repr_align_changed
  • repr_align_removed
  • repr_packed_changed
  • trait_const_generic_reordered
  • trait_generic_type_reordered
  • trait_method_const_generic_reordered
  • trait_method_generic_type_reordered
  • trait_method_now_returns_unit
  • trait_method_return_value_added
  • type_const_generic_reordered
  • type_generic_type_reordered

Compatibility risks, such as changes that may require a SemVer major bump to revert, or may otherwise represent unintended API changes without being SemVer-major themselves:

  • pub_api_sealed_trait_method_return_value_added

Additive-only API changes (opt-in only; more work required):

  • function_must_use_removed
  • struct_must_use_removed
  • union_must_use_removed

All merged PRs

New Contributors

  • @nk9 made their first contribution in #1392

Full Changelog: v0.43.0...v0.44.0