Closed polarathene closed 7 months ago
My verbosity is an issue for some, I've split this off and tried to condense / organize it. It's purely for reference to support and document the changes in the PR should anyone need more context.
Cargo.lock
for the MSRV# Resolve a `Cargo.lock` with the latest compatible deps for `rust-version` (1.56.0):
cargo +nightly update -Z msrv-policy
# Minor corrections due to deps lack of proper `-Z msrv-policy` support for the MSRV
cargo update --package memchr --precise 2.5.0
cargo update --package ordered-multimap --precise 0.4.0
cargo update --package tokio-util --precise 0.7.8
The following passes successfully with a Cargo.lock
generated from the above:
cargo +1.56.1 check --tests
cargo +1.56.1 clippy --locked --offline --all-targets --all-features -- -D warnings
-Z msrv-policy
and pinned versions-Z msrv-policy
The following will also support building without generating Cargo.lock
with -Z msrv-policy
. The versions need to be pinned (in either Cargo.toml
or Cargo.lock
).
1.59
, while this PR supports MSRV 1.56
(Comment that was here was misplaced, I entered it into the wrong MR. See https://github.com/mehcode/config-rs/pull/492#issuecomment-1795847292. Sorry.)
Full reproduction environment to verify generated lockfile: https://github.com/mehcode/config-rs/pull/492#issuecomment-1797948314
Rebased onto #496 as requested. CI passes 👍
I've additionally:
Cargo.lock.msrv
to reflect Cargo.toml
changes, which also verifies the simpler lock file generation.1.56.1
(README states 1.56.0
, which rust-version
matches). It was previously raised in Dec 2022 to 1.59.0
to make the CI pass.All tests pass again 👍
Awaiting approval from either @ijackson or @matthiasbeyer
Thanks, excellent work. It's great that we now have a non-awful method for generating a working lockfile. I have reviewed the changes and verified the lockfile creation.
The MSRV reduction is also nice.
Please do merge this.
I am on vacation until late tomorrow. I hope I can get to having a look on my rather long backlog for this repository after tomorrow! Please do bug me if I don't!
These are improvements from an extensive investigation I recently did to simplify maintenance of lockfile generation for the CI to benefit from, while respecting the MSRV.
Commit message:
Click to view
- Slight adjustments to the version fields for compatibility with `cargo +nightly update -Z direct-minimal-versions` with the MSRV of `1.56.0`. - Add `rust-version` field for leveraging `cargo +nightly update -Z msrv-policy` to generate a lockfile that respects the MSRV, and the benefit of downstreams. - Better communicate why `dev-dependencies` are required (_identify associated examples / tests_). - Avoid repeating deps again in in `dev-dependencies`. - Raise fixed `warp` dev dep to an MSRV compatible version (_for a common `tokio-util` implicit dep version_). Simplifies CI lock maintenance.