New cargo-semver-checks release 🦀
I'm hard at work on solving type checking lints, so this one is just a maintenance release — one new lint plus some bug fixes. Enjoy!
https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.48.0
New cargo-semver-checks release 🦀
I'm hard at work on solving type checking lints, so this one is just a maintenance release — one new lint plus some bug fixes. Enjoy!
https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.48.0
Три мажора, две ошибки: проектирование API приостановки для интерпретатора машины Тьюринга
Когда «снисходительность к входным данным» становится ловушкой? Когда имя хука начинает диктовать потребителю модель мышления? Когда подстановка снимка состояния — это не приём, а сигнал, что фазы жизненного цикла стоят не на том такте? Три мажорных релиза одной библиотеки — про эти три вопроса. К разбору полётов
https://habr.com/ru/articles/1041090/
#машина_тьюринга #npmпакет #breaking_changes #open_source #проектирование_интерфейсов #генераторы #интерпретаторы #semver #хуки #разбор_полетов
I spent most of this year so far figuring out possible designs to solve those problems.
RustWeek + All Hands were phenomenally useful! I worked w/ rustdoc, types, compiler, cargo, and other folks to poke holes in the designs and then patch them.
Thank you @rustnl for making it happen!
What we'll get out of it:
- support for type-checking lints (#1 top user request)
- fix the remaining classes of false-positives (#2 top user request)
- Rust itself can use cargo-semver-checks to prevent accidental breakage in the standard library (!!)
- a "SemVer crater" ability:
https://predr.ag/blog/cargo-semver-checks-2025-year-in-review/#the-path-forward-for-2026-and-beyond
Hard problems:
- connecting rustdoc JSON across crate boundaries
- generating rustdoc JSON in a performant, caching-friendly way
- generating "witness programs" to catch type-related breakage
- extending our static analysis to cover std too
- making all of this not take hours to run in your CI, lol
Reflecting after the Rust All Hands: cargo-semver-checks is in a fascinating spot.
We've never simultaneously had:
- so many hard problems that must be solved at once
- so many "this is hard but we're confident it'll work" solutions in flight at once
Thrilling, but exhausting. But THRILLING 🦀
Was that change really a patch—or did you just break someone’s build? Manual #SemVer is fragile, especially in growing teams. @JagoVreede enforces it with code.
Make your versions trustworthy again and avoid hidden breaking changes: https://javapro.io/2026/03/26/semantic-versioning-done-automatically/