Semantic Versioning - Rust Project Primer
Rust’s dependency ecosystem relies on Semantic Versioning (SemVer). When you publish a crate, your version number is a promise to downstream users: patch releases contain only bugfixes, minor releases add functionality without breaking existing code, and only major releases may introduce breaking changes. Cargo’s dependency resolver depends on these promises being accurate — it will happily upgrade to a new minor release without asking, trusting that nothing will break. Getting this right manually is harder than it looks. Some breaking changes are obvious (removing a public function), but others are subtle: adding a new variant to a non-exhaustive enum, changing a type’s auto-trait implementations, or even adding a new public item can break downstream code that uses glob imports. An analysis of the 1,000 most-downloaded crates found that roughly 1 in 6 crates violated semver at least once, affecting about 1 in 31 releases. This is not a failure of discipline — it is a failure of toolin
Keyboard shortcuts Press ← or → to navigate between chapters Press S or / to search in the book Press ? to show this help Press Esc to hide this help Semantic Versioning Rust’s dependency ecosystem relies on Semantic Versioning (SemVer). When you publish a crate, your version number is a promise to downstream users: patch releases contain only bugfixes, minor releases add functionality without breaking existing code, and only major releases may introduce breaking changes. Cargo’s dependency resolver depends on these promises being accurate — it will happily upgrade to a new minor…
saved by
related reading
- Semantic Versioning 2.0.0 | Semantic Versioningsemver.org
- About - Rust API Guidelinesrust-lang.github.io
- Conventional Commitsconventionalcommits.org
- Rewriting Bun in Rust | Bun Blogbun.com
- Overriding Dependencies - The Cargo Bookdoc.rust-lang.org
- The Rust Programming Language - The Rust Programming Languagedoc.rust-lang.org
- Fixing Rust's supply chain security: The good, the bad and the uglykerkour.com
- Programming a Guessing Game - The Rust Programming Languagedoc.rust-lang.org
- The Rust Programming Language - The Rust Programming Languagedoc.rust-lang.org
- A half-hour to learn Rustfasterthanli.me
- commonware > Change is the Only Constantcommonware.xyz
- Summary - Rust for C-Programmersrust-for-c-programmers.com