Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit b5311e6

Browse files
committedMar 30, 2020
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 b5311e6

File tree

3 files changed

+16
-13
lines changed

3 files changed

+16
-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

+16-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,22 @@ your_crate = "0.1.2"
109108

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

111+
### Unreleased
112+
113+
Drop support for Rust 1.31.0 since our dependencies keep releasing new
114+
patch versions that push up the minimum required Rust version. These
115+
updates mean that `version-sync` 0.8.1 no longer compiles with Rust
116+
1.31.0 because `cargo sync` will pull in too new versions of the
117+
direct and transitive dependencies. This happens even if there are no
118+
changes in `version-sync`.
119+
120+
The constant build failures in our CI makes it infeasible to keep
121+
`version-sync` compatible with any particular version of Rust. We will
122+
therefore track the latest stable version of Rust from now on.
123+
124+
At the time of writing, the code compiles with Rust 1.36, but this
125+
will likely become outdated soon.
126+
112127
### Version 0.8.1 — April 3rd, 2019
113128

114129
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)
Please sign in to comment.