4 ms·
There is additional subtlety here. For example, sometimes projects that have a 0.y version get depended on a lot, and so moving to 1.0.0 can be super painful.
by steveklabnik 6mo ago
There is additional subtlety here.
For example, sometimes projects that have a 0.y version get depended on a lot, and so moving to 1.0.0 can be super painful. This is the case with the libc crate in Rust, which the 0.1.0 -> 0.2.0 transition was super painful for the ecosystem. Even though it should be a 1.0.0 crate, it is not, because the pain of causing an ecosystem split isn't considered to be worth the version number change.
- mort96 6mo agoOh hey I recently saw a comment which discussed this exact issue: https://news.ycombinator.com/item?id=47752915 https://news.ycombinator.com/item?id=47752915
- steveklabnik 6mo ago99% of the time this situation is okay, because Cargo allows you to have both 0.1 and 0.2 in the same project as dependencies. It's just packages that call out to external dependencies, like libc, where it enforces the single version rule.
- mort96 6mo agoYou can have both 0.1 and 0.2 in the same project, but you really don't want to.
- steveklabnik 6mo agoMost of the time, it works so well people don't even notice. The only time you run into a problem is if you try and use values with a type from 0.1 with a function that takes a 0.2 as an argument, or whatever. Then you get a type error.