The Rust packaging story is incredibly good: https://blog.rust-lang.org/2016/05/05/cargo-pillars.html (JS is the only other lang I know of that allows versions to coexist)