regex: 0.1.66 breaks semver
0.1.66 includes cdee1e7, which introduces a breaking change. Existing code that compiles under Rust 1.3.0-1.5.0 stops compiling due to the transitive dependency on void.
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 15 (12 by maintainers)
Commits related to this issue
- Revert "Replace mempool with thread_local" This caused regex to require Rust 1.6, which really should require a semver bump since it will break existing code. For now, we'll stick with mempool and mo... — committed to rust-lang/regex by BurntSushi 8 years ago
- Bump thread_local version and test on Rust 1.3. Fixes #206. — committed to rust-lang/regex by BurntSushi 8 years ago
- Bump thread_local version and test on Rust 1.3. Fixes #206. — committed to rust-lang/regex by BurntSushi 8 years ago
@alexcrichton Just to quickly address your question: because Cargo is ignorant of language version requirements, and because I said I would. If you’re using 1.3, there’s no way to stop Cargo from selecting a version of a dependency that you just can’t use. I do consider that a breaking change, since it means that existing code can stop working, without modification. This applies to both
cargo updateand just checking the code out for the first time as a new contributor or user.I’ve worked on projects that were, for various reasons technical and practical, stuck on older compilers and libraries. As a result, I’m somewhat militant about sticking to compatibility promises, even the implicit ones. 😃
@BurntSushi Thanks for your work; again, I know this is a pain to deal with. ❤️