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

Set up Travis to test against specific minimum Rust version #1100

Closed
hobofan opened this Issue Aug 14, 2017 · 4 comments

Comments

Projects
None yet
3 participants
@hobofan

hobofan commented Aug 14, 2017

I just noticed that Diesel requires Rust 1.18, not 1.17 as claimed on the website. In order to make sure accidental bumping of minimum Rust versions doesn't happen in the future Travis can be set up to test a specific version of Rust besides the three main release channels.

@killercup

This comment has been minimized.

Member

killercup commented Aug 14, 2017

Oh, good catch! Maybe we can set up another travis matrix entry to just build the examples—this way we ensure that the diesel crates can be build (as dependencies) but can use newer features in the test code. (I'm specifically thinking about some pending changes to how include! works doc tests.)

hobofan added a commit to hobofan/diesel.rs-website that referenced this issue Aug 14, 2017

@sgrif

This comment has been minimized.

Member

sgrif commented Dec 16, 2017

@diesel-rs/core We need to make a decision on our policy for Rust versions. RFC #1105 does not explicitly state whether increasing the minimum required Rust version is considered a major breaking change or not. I think we need to explicitly decide whether we are allowed to increase our minimum required Rust version or not without a major version bump.

My vote is that yes, we should be allowed to increase our minimum supported Rust version in minor versions (but not patch versions). Updating to a new stable version should never be difficult. Future enhancements like specialization, overlapping marker traits, and generic associated types will make new features in Diesel possible, and we should be able to take advantage of that.

@killercup

This comment has been minimized.

Member

killercup commented Dec 18, 2017

I've been thinking about this for a bit (basically since seeing your tweet), but don't have a definitive answer. Here are some arguments that come to mind:

  • Applications written in Jan 2018 that have diesel = "1" in them will break if we release 1.1 that uses features added in Rust 1.25 unless the user also happens to update their compiler. So it is a breaking change.
  • Important crates like regex treat requiring a new compiler version as breaking change (cf. rust-lang/regex#209)
  • Other important crates, like futures, bump the min rust version in a minor (here 0.1.x) version (cf. 0.1.15)
  • Rust Epochs will happen, maybe even LTS releases.
  • The unwillingness to release Diesel 2.0 in half a year is most likely only a psychological barrier

A pragmatic solution would be to trail a few month behind the latest compiler version. This probably won't help all the people who are using a Linux distro's Rust compiler version, but might cover a signification enough number cases.

@sgrif

This comment has been minimized.

Member

sgrif commented May 22, 2018

Fixed by #1714

@sgrif sgrif closed this May 22, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment