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

Document and test the minimum rustc explicitly #171

Merged
merged 1 commit into from
Dec 1, 2016

Conversation

cuviper
Copy link
Member

@cuviper cuviper commented Nov 30, 2016

Rayon currently requires 1.12.0 to allow building with impl Trait
syntax in some of the tests, as they must parse even in normal builds.

Closes #145.

Rayon currently requires 1.12.0 to allow building with `impl Trait`
syntax in some of the tests, as they must parse even in normal builds.

Closes rayon-rs#145.
@nikomatsakis
Copy link
Member

OK, so do we agree on this general policy?

  • We document our minimum rustc.
  • We make modest efforts to avoid raising the minimum, but if there is a feature or syntax we want that is on stable, we will raise the minimum.
  • However, raising the minimum is considered a breaking change.

I have mixed feelings about the last point. I guess it indisputably is a breaking change, but it would seem a shame to go to Rayon 2.0 just because we want to use some feature on stable. It would also seem a shame to not get to use the feature. But for now let's go with the "full disclosure" thing. We should think about the best way to advertise when new major versions of Rayon are available, too.

@cuviper
Copy link
Member Author

cuviper commented Nov 30, 2016

  • However, raising the minimum is considered a breaking change.

I have mixed feelings about the last point. I guess it indisputably is a breaking change, but it would seem a shame to go to Rayon 2.0 just because we want to use some feature on stable. It would also seem a shame to not get to use the feature.

I do consider it a breaking change, but there are reasonable people on both sides of that point, as seen in the closed rust-lang/rfcs#1619. As you say, it's unfortunate to be stuck on an old feature set.

The main issue to me is that Cargo doesn't have a notion of rustc compatibility for a crate, so having it select the highest semver-compatible crate is only safe if rustc is manually treated as part of semver. There are a few RFCs floating around on this point, so if Cargo learns to only select crate versions that are compatible with the local rustc, then you could bump Rayon's requirement without hurting older users. (Assuming the minimum baseline has a Cargo with this ability.)

@nikomatsakis
Copy link
Member

Let's try that policy for now. Can always change. We're not even on 1.0 yet, so worrying about 2.0 seems premature. =)

@nikomatsakis nikomatsakis merged commit e2d8593 into rayon-rs:master Dec 1, 2016
@cuviper cuviper deleted the min-rustc branch December 7, 2016 17:41
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

Successfully merging this pull request may close these issues.

2 participants