"When can a trait be implemented without touching #[doc(hidden)]
items?"
Simple question, extremely complex answer! Most intense 2000 lines I've written in a long time!
Still needs cleanup & refactoring, but it's passing tests!
https://github.com/obi1kenobi/trustfall-rustdoc-adapter/pull/742
[#]rust #rustlang #semver
=> More informations about this toot | View the thread
How the heck did I find this?
I want cargo-semver-checks to get all the edge cases right. This is what it takes.
When you become a GitHub Sponsor, you're funding that attention to detail: https://github.com/sponsors/obi1kenobi
[#]rust #rustlang #semver #sponsor
=> More informations about this toot | View the thread
The Rust docs say:
Constants cannot refer to statics.
https://doc.rust-lang.org/reference/items/static-items.html#r-items.static.const
And yet the following works fine:
pub const A: i64 = 0; pub static B: i64 = A + 1; pub const C: i64 = B + 1;
[#]rust #rustlang
=> More informations about this toot | View the thread
Happy "new cargo-semver-checks release" day!
✨ 20 new lints ✨
Full release notes here:
https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.39.0
[#]rust #rustlang #semver
=> More informations about this toot | View the thread
Today I misremembered a rule that I helped implement in cargo-semver-checks.
I described something as breaking when it isn't, and failed to remember the actually breaking part. 0/2 on my part.
cargo-semver-checks
gets this right 100% of the time. I clearly do not.
[#]rust #rustlang #semver
=> More informations about this toot | View the thread
Merged 5 new lints into cargo-semver-checks today 🦀
It's not even lunchtime yet 🔥🚀
[#]rust #rustlang #semver
=> More informations about this toot | View the thread
If you'd like to keep your finger on the pulse of cargo-semver-checks development (& maybe even contribute), we have a Discord!
Come join the party!
https://discord.gg/k9h2M2cY
=> More informations about this toot | View the thread
Here's my recap of 2024 for cargo-semver-checks:
✨ 63 new lints
✨ better linting performance
✨ shipped our most-requested features
✨ key thing I learned: as a community, we never update versions unless forced to!
https://predr.ag/blog/cargo-semver-checks-2024-year-in-review/
[#]rust #rustlang #semver
=> More informations about this toot | View the thread
Good news / bad news combo: I caught a severe perf regression in the upcoming cargo-semver-checks version, so no new release until I fix it.
Stand back, I will do performance engineering to it!
=> More informations about this toot | View the thread
I like to play "Where's Waldo" as much as the next person, but not during code review.
Let's have more tools that point out things humans might miss!
=> More informations about this toot | View the thread
Pay close attention to the spelling of the optional dependency vs the feature name.
One is mock_instant
, the other is mock-instant
. Underscore vs dash.
The change removes the mock_instant
feature, which cargo-semver-checks caught.
=> More informations about this toot | View the thread
cargo-semver-checks found the problem in this change, saving the project from breaking SemVer. Manifest linting for the win! 🔥
Do you see the breaking change?
[#]rust #rustlang #semver
=> More informations about this toot | View the thread
I wrote a post about how manifest linting in cargo-semver-checks works, if you'd like to learn more: https://predr.ag/blog/breakage-in-the-cargo-toml-how-rust-package-features-work/
=> More informations about this toot | View the thread
Manifest linting in cargo-semver-checks means we also have a path toward catching breakage in future Rust functionality!
Take the RFC on package supported targets for example. We'll be able to catch "target no longer supported" breakage!
https://github.com/rust-lang/rfcs/pull/3759
[#]rust #rustlang #semver
=> More informations about this toot | View the thread
If anyone is curious 👇
In my P99 CONF talk last year, I said that "massive perf improvements can be just a few hundred lines of code." This PR certainly fits that observation.
https://github.com/obi1kenobi/trustfall-rustdoc-adapter/pull/676
=> More informations about this toot | View the thread
I think I just figured out how to make cargo-semver-checks A LOT faster 👀
... to the point that future optimization work should target only the ~5 slowest lints, because they are now the long poles in the perf graph by a factor of 100-500x
[#]rust #rustlang #semver
=> More informations about this toot | View the thread
@orhun full release notes here: https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.38.0
=> More informations about this toot | View the thread
cargo-semver-checks v0.38 is live, enjoy 🦀🔥
@orhun and I live-streamed writing one of these new lints last weekend, if you want to see how the proverbial sausage gets made!
[#]rust #rustlang #semver
=> More informations about this toot | View the thread
As promised, five new lints:
✨ type_mismatched_generic_lifetimes
✨ trait_mismatched_generic_lifetimes
✨ enum_repr_variant_discriminant_changed
✨ enum_discriminants_undefined_non_exhaustive_variant
✨ enum_discriminants_undefined_non_unit_variant
PRs #1036, #1037, #1039, #1040 if you want to check them out.
https://github.com/obi1kenobi/cargo-semver-checks/pulls?q=is%3Apr+is%3Aclosed
[#]rust #rustlang #semver
=> More informations about this toot | View the thread
Huge thanks to @rerundotio @emilk for sponsoring my work on cargo-semver-checks 🙏
To celebrate, I'll write 5 new lints today ✨
[#]rust #rustlang #semver #sponsor
=> More informations about this toot | View the thread
=> This profile with reblog | Go to predrag@hachyderm.io account This content has been proxied by September (3851b).Proxy Information
text/gemini