Skip to content

Commit ba04ff5

Browse files
committed
Drop Rust 2018 compatibility
I've been trying to keep the crate compatible with Rust 2018, which corresponds to Rust version 1.31.0. However, this has proven impossible because of how our dependencies keep releasing new patch versions that push up the minimum required Rust version. Because of this, the current code no longer compiles with Rust 1.31.0 because `cargo sync` will pull in too new versions of the direct and transitive dependencies. This happens even if there are no changes in `version-sync`. The failure to compile shows up as spurious and unexpected build failures in our CI, which in turn makes it hard to trust CI. I'm concluding that it's infeasible to keep `version-sync` compatible with any particular version of Rust. While not perfect, we'll track the latest stable version of Rust from now on. This is not perfect since even stable Rust sometimes decides to turn warnings into hard errors: rust-lang/rust#64221
1 parent 8d9ce91 commit ba04ff5

File tree

3 files changed

+18
-13
lines changed

3 files changed

+18
-13
lines changed

Cargo.toml

-5
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,6 @@ appveyor = { repository = "mgeisler/version-sync" }
2121
codecov = { repository = "mgeisler/version-sync" }
2222

2323
[dependencies]
24-
# This crate is compatible with Rust 2018, i.e., Rustc version 1.31.0.
25-
# Version requirements of dependencies can be bumped as long as the
26-
# dependencies compile with that compiler version. Some versions
27-
# requirements below an upper limit to indicate when the dependency
28-
# stops compiling with a Rust 2018 compatible compiler.
2924
pulldown-cmark = { version = "0.4, <0.5", default-features = false }
3025
semver-parser = "0.9"
3126
syn = { version = "1.0", features = ["full"] }

README.md

+18-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
[![](https://img.shields.io/crates/v/version-sync.svg)][crates-io]
44
[![](https://docs.rs/version-sync/badge.svg)][api-docs]
5-
[![](https://img.shields.io/badge/rustc-1.31.0-4d76ae.svg)][rust-2018]
65
[![](https://travis-ci.org/mgeisler/version-sync.svg?branch=master)][travis-ci]
76
[![](https://ci.appveyor.com/api/projects/status/github/mgeisler/version-sync?branch=master&svg=true)][appveyor]
87
[![](https://codecov.io/gh/mgeisler/version-sync/branch/master/graph/badge.svg)][codecov]
@@ -109,6 +108,24 @@ your_crate = "0.1.2"
109108

110109
This is a changelog describing the most important changes per release.
111110

111+
### Version 0.9.0 — March 30th, 2020
112+
113+
![Rust 1.36.0](https://img.shields.io/badge/rustc-1.36.0-4d76ae.svg)
114+
115+
Drop support for Rust 1.31.0 since our dependencies keep releasing new
116+
patch versions that push up the minimum required Rust version. These
117+
updates mean that `version-sync` 0.8.1 no longer compiles with Rust
118+
1.31.0 because `cargo sync` will pull in too new versions of the
119+
direct and transitive dependencies. This happens even if there are no
120+
changes in `version-sync`.
121+
122+
The constant build failures in our CI makes it infeasible to keep
123+
`version-sync` compatible with any particular version of Rust. We will
124+
therefore track the latest stable version of Rust from now on.
125+
126+
At the time of writing, the code compiles with Rust 1.36, but this
127+
will likely become outdated soon.
128+
112129
### Version 0.8.1 — April 3rd, 2019
113130

114131
Dependencies were relaxed to make it easier to upgrade `version-sync`.

tests/version-numbers.rs

-7
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,6 @@ fn test_readme_changelog() {
1111
);
1212
}
1313

14-
#[test]
15-
fn test_minimum_rustc_version() {
16-
let version = r"1\.31\.0";
17-
version_sync::assert_contains_regex!(".travis.yml", &format!(r"^ - {}", version));
18-
version_sync::assert_contains_regex!("README.md", &format!("badge/rustc-{}", version));
19-
}
20-
2114
#[test]
2215
fn test_html_root_url() {
2316
version_sync::assert_html_root_url_updated!("src/lib.rs");

0 commit comments

Comments
 (0)