4 ms·
Following semantic versioning, libraries are essentially allowed to change very liberally on 0.x, so it makes sense to reach 1.0 only once the crate/API is stab
by pizza234 4y ago
Following semantic versioning, libraries are essentially allowed to change very liberally on 0.x, so it makes sense to reach 1.0 only once the crate/API is stable.
- burntsushi 4y agoJust to be super clear, while that is true of semver, Cargo implements something a little different. Namely, Cargo treats any difference in the leftmost non-zero digit of a version number as semver incompatible. So if you have 'foo = "0.1.2"' and then 'foo' 0.2.0 is published, Cargo will not automatically upgrade you when you run 'cargo update'. You'll have to explicitly opt into the new 0.2.0 version because it's treated as a potentially breaking release. In effect, this lets you get the benefits of semver (communication of breaking changes) without publishing 1.0. Thus, there is less pressure in the Rust crate ecosystem to publish 1.0.