Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rust version compatibility of features #64

Closed
vks opened this issue Aug 2, 2019 · 2 comments
Closed

Rust version compatibility of features #64

vks opened this issue Aug 2, 2019 · 2 comments
Labels

Comments

@vks
Copy link
Contributor

vks commented Aug 2, 2019

The README specifies that Rust 1.15 is supported. However, Rand 0.5 requires at least 1.22, so at least the rand features does break the promise from the README. Are non-default features exempt from the Rust version requirements? Does that mean I could submit a pull request for upgrading to Rand 0.7, requiring Rust 1.32?

@cuviper
Copy link
Member

cuviper commented Aug 2, 2019

Yeah, it's a pragmatic decision -- we can't force the choice of minimum Rust on other crates. So features that exist for interoperability with other crates, like rand and serde, are necessarily bound to their requirements. (Although serde is very conservative too, so 1.15 is fine there.)

But because it's a public dependency, it's still a breaking change to move to a new rand semver, regardless of compiler requirements. I think we probably should do this in the near future though.

@termoshtt
Copy link
Contributor

serde says it supports 1.13+, but "derive" feature requires serde-derive which requires 1.31. IMO, we should allow multiple MSRV corresponding to each features, and following requirement is reasonable:

  • num-complex 0.2 requires Rust 1.15+, but "rand" feature (with rand 0.5) requires Rust 1.22+
  • num-complex 0.3 (?) requires Rust 1.15+, but "rand" feature (with rand 0.7) requires Rust 1.32+

I guess this will be compatible with rust-lang/rfcs#2495. num-complex/Cargo.toml says rust >= 1.15, and rand/Cargo.toml says rust >= 1.32.

BTW, Rust 1.25 or older has security advisory. Should we bump up MSRV at least 1.26?
https://blog.rust-lang.org/2019/09/30/Security-advisory-for-cargo.html

@cuviper cuviper closed this as not planned Won't fix, can't repro, duplicate, stale May 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants