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

Minimum rustc version bumped in patch version #240

Closed
danburkert opened this issue Sep 9, 2017 · 5 comments
Closed

Minimum rustc version bumped in patch version #240

danburkert opened this issue Sep 9, 2017 · 5 comments

Comments

@danburkert
Copy link

danburkert commented Sep 9, 2017

Hi, the minimum supported rustc version was bumped in a patch version. This is disruptive to downstream crates which have their own minimum supported rustc version, and which depend on gcc using a Cargo.toml directive like gcc = "0.3". Unless I'm misinterpreting the Cargo SemVer rules, it would be ideal if you could yank the affected versions.

@alexcrichton
Copy link
Member

The rules around semver and "minimum supported rustc" are squishy at best, but the policy I personally use is at least 2 versions back from the current stable and otherwise updates can happen whenever. Are you unable to update rustc for other reasons though?

@danburkert
Copy link
Author

No, I'm the author of a library which depends on gcc. I personally consider it a breaking change to bump the minimum supported rustc version, since bumping the minimum version can be just as painful (or more) for downstream applications as breaking an API.

Now, speaking as the author of a (different) crate going through the lib blitz, it would be nice if this were standardized, since minimum rustc versions are viral. I'm going to file an issue with the api-guidelines repository accordingly.

@alexcrichton
Copy link
Member

Ok, in the case that it's not actively causing problems I'm going to go ahead and close this. This issue has come up many many times historically and we've never come up with a good guideline that's practical, but it's worth having a tracking issue!

@stevenroose
Copy link

We also just noticed this. What was the rationale for suddenly bumping MSRC from 1.16.0 to 1.31.0?? We're using cc in several libraries that support Rust 1.24.0 or sometimes 1.19.0 (respectively the latest on Debian Stretch and the latest mrustc supports), so support is suddenly broken.

What's worst is that it seems like the bump was just made for using the crate:: use prefix..

$ rustup run 1.22.0 cargo build              
   Compiling cc v1.0.42
error: expected identifier, found keyword `crate`
  --> /home/steven/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.42/src/windows_registry.rs:16:5
   |
16 | use crate::Tool;
   |     ^^^^^

error: aborting due to previous error

error: Could not compile `cc`.

To learn more, run the command again with --verbose

@alexcrichton
Copy link
Member

There's an excellent comment explaining MSRV and maintainers here, I'd recommend reading over that personally.

I've decided to use the 2018 edition in this crate, so the minimum version is now 1.31.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants