4 ms·
Just 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-zer
by burntsushi 4y ago
Just 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.