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

Bump MSRV to 1.41 #6

Merged
merged 1 commit into from
Dec 18, 2020
Merged

Bump MSRV to 1.41 #6

merged 1 commit into from
Dec 18, 2020

Conversation

commonquail
Copy link
Owner

@commonquail commonquail commented Dec 18, 2020

Cargo 1.41 produces a backwards incompatible lock file format [1], and
Cargo 1.47 automatically migrates old lock files to the new format on
"cargo update" [2]. The former means that any new lock file requires
Cargo 1.38 [3] to build, which didn't work with the current MSRV of 1.36
and broke builds before commit 2981ccd ("Track Cargo.lock", 2020-12-17).
The latter means that already existing lock files will also break; while
cargo-lock [4] can change the format of a lock file, that really isn't a
sustainable workflow.

To avoid both insanity and most breakage we must bump MSRV to at least
1.38. To avoid all breakage we must move to 1.41. That works for
openSUSE Leap 15.2, Ubuntu 16.04, and Debian "buster" (stable).

[1] https://github.com/rust-lang/cargo/blob/rust-1.47.0/CHANGELOG.md#cargo-141-2020-01-30
[2] https://github.com/rust-lang/cargo/blob/rust-1.47.0/CHANGELOG.md#cargo-147-2020-10-08
[3] https://github.com/rust-lang/cargo/blob/rust-1.47.0/CHANGELOG.md#cargo-138-2019-09-26
[4] https://github.com/rustsec/cargo-lock

@commonquail
Copy link
Owner Author

Ah, it looks like perhaps 1.40 is the version that produces the new format and 1.38 is the first read support for the transition period.

Cargo 1.41 produces a backwards incompatible lock file format [1], and
Cargo 1.47 automatically migrates old lock files to the new format on
"cargo update" [2]. The former means that any new lock file requires
Cargo 1.38 [3] to build, which didn't work with the current MSRV of 1.36
and broke builds before commit 2981ccd ("Track Cargo.lock", 2020-12-17).
The latter means that already existing lock files will also break; while
cargo-lock [4] can change the format of a lock file, that really isn't a
sustainable workflow.

To avoid both insanity and most breakage we must bump MSRV to at least
1.38. To avoid all breakage we must move to 1.41. That works for
openSUSE Leap 15.2, Ubuntu 16.04, and Debian "buster" (stable).

[1] https://github.com/rust-lang/cargo/blob/rust-1.47.0/CHANGELOG.md#cargo-141-2020-01-30
[2] https://github.com/rust-lang/cargo/blob/rust-1.47.0/CHANGELOG.md#cargo-147-2020-10-08
[3] https://github.com/rust-lang/cargo/blob/rust-1.47.0/CHANGELOG.md#cargo-138-2019-09-26
[4] https://github.com/rustsec/cargo-lock
@commonquail commonquail changed the title Bump MSRV to 1.40 Bump MSRV to 1.41 Dec 18, 2020
@commonquail commonquail merged commit a59c12b into master Dec 18, 2020
@commonquail commonquail deleted the bump-msrv branch December 18, 2020 17:45
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.

1 participant