v0.28.0
What's Changed
New lints, new functionality, UX improvements, and an awesome new logo courtesy of NUMI!
Performance
Now running lints in parallel using rayon
(#625), for a ~3-4x speedup in lint execution time (i.e. not counting rustdoc generation and parsing time, which still dominate).
- In my measurements, the wall-clock time gains here are on the order of 12s (16s -> 4s) on the biggest crate I know of (
aws-sdk-ec2
, 240k+ items), and ~1s on most crates of more reasonable size. - Also added a better breakdown of where time is actually spent, between generating rustdoc, parsing the JSON, and running lints: #630
- The parallelization and the time breakdown improvements were both contributed by @jw013 🎉
New lints
enum_repr_transparent_removed
, contributed by @fprasx in #627- Ability to write lints for
union
types, also contributed by @fprasx: obi1kenobi/trustfall-rustdoc-adapter#309- This immediately enables writing at least a half dozen new lints, for which I'm happy to mentor contributors: #633
New functionality
Support for custom build.target
cargo configurations, contributed by @Nemo157: #619
It also supports setting an explicit cargo build target via our new --build-target
CLI flag.
Bugfixes
Bugfix for an unusual situation where having RUSTFLAGS="-Dwarnings"
would prevent rustdoc JSON from being built in case a dependency of the crate we're checking had warnings.
This would sometimes happen with the actions-rust-lang/setup-rust-toolchain
GitHub Action, which sets RUSTFLAGS="-Dwarnings"
by default.
All Merged PRs
- Add table of contents to FAQ and add a few more questions and answers. by @obi1kenobi in #618
- Add Rust 1.74 to the test matrix. by @obi1kenobi in #623
- Add test crate to test async fn and impl Future by @jw013 in #622
- update repr-related reference links by @fprasx in #626
- implement enum_repr_transparent_removed lint by @fprasx in #627
- Add timing output for rustdoc and crate total by @jw013 in #630
- Parallel lints by @jw013 in #625
cargo update
to enable queryingUnion
types' information. by @obi1kenobi in #631- Weekly
cargo update
of dependencies by @obi1kenobi in #636 - New Logo by @agreea in #628
- Add separate issue templates for false-positive and false-negatives. by @obi1kenobi in #639
- Mention our lint wishlist issue in the false-negative issue template. by @obi1kenobi in #640
- Update schema link in CONTRIBUTING.md by @obi1kenobi in #641
- Weekly
cargo update
of dependencies by @obi1kenobi in #642 - Detect when
build.target
is configured, and allow overriding it from the command line by @Nemo157 in #619 - Fix occasional failure to generate rustdoc when
RUSTFLAGS="-Dwarnings"
. by @obi1kenobi in #643 - Manually update dependencies before publishing new release. by @obi1kenobi in #644
- Release v0.28.0. by @obi1kenobi in #645
New Contributors
- @fprasx made their first contribution in #626
- @agreea made their first contribution in #628
- @Nemo157 made their first contribution in #619
Full Changelog: v0.27.0...v0.28.0