Uh oh!
There was an error while loading. Please reload this page.
chore: raise prqlc MSRV to Rust 1.85 - #6246
Conversation
prql-bot
left a comment
There was a problem hiding this comment.
test-deps-min-versions is red on this commit, and it's caused by the mdBook bump rather than being flaky — main's last tests run was green shortly before this one started. It's in check-ok-to-merge's needs and isn't in allowed-failures, so it blocks the merge gate.
mdbook-core 0.5.4 raised its anyhow floor to ^1.0.103, but the workspace still declares anyhow = "1.0.102" under [workspace.dependencies] in the root Cargo.toml. cargo minimal-versions test --direct resolves mdbook-prql's directanyhow requirement to its minimum, 1.0.102, which then can't satisfy mdbook-core's transitive ^1.0.103:
error: failed to select a version for `anyhow`.
... required by package `mdbook-core v0.5.4`
... which satisfies dependency `mdbook-core = "^0.5.4"` of package `mdbook-prql v0.13.15`
versions that meet the requirements `^1.0.103` are: 1.0.104, 1.0.103
all possible versions conflict with previously selected packages.
previously selected package `anyhow v1.0.102`
... which satisfies dependency `anyhow = "^1.0.102"` of package `mdbook-prql v0.13.15`
Raising that workspace declaration to anyhow = "1.0.103" should clear it — web/book takes anyhow = { workspace = true }, and the lockfile is already on 1.0.104, so nothing else moves. prqlc/prqlc's own anyhow = { version = "1.0.102", features = ["backtrace"], optional = true } doesn't need to change: it isn't in the conflicting path, and 1.0.103 satisfies it. Happy to push that one-liner if you'd like.
The MSRV change itself checks out. indexmap really is in prqlc's default-feature graph — default = ["cli"] pulls in serde_yaml, which depends on it — so the floor does have to move for cargo msrv verify to pass against the regenerated lockfile, and the description's reasoning holds. No stale 1.81 references remain anywhere in the repo, the Dependabot ignore removal leaves the cargo entry well-formed, and test-msrv does run on this PR since the nightly path filter matches both **/Cargo.toml and Cargo.lock.
Two smaller things:
- No
CHANGELOG.mdentry. This is a user-facing support-floor change for a published crate, anddevelopment.mdasks for a line when a change is user-facing; prior MSRV bumps landed as changelog entries (#3876, #3521). The**Internal changes**:section under[unreleased]is currently empty, so there's a spot for it. Cargo.lockalso moves from formatversion = 3toversion = 4, which the description doesn't mention alongside the other resolution changes. It's harmless — v4 needs Cargo ≥ 1.78, well under the new 1.85 floor — but worth confirming it was intended rather than incidental to the regeneration.
prql-bot
left a comment
There was a problem hiding this comment.
One thing worth knowing about rather than finding in a later diff: chore: align minimum dependency versions also moves seven windows-sys pointers down to the low end of their ranges — errno, is-terminal, quinn-udp, rustix, tempfile and winapi-util to 0.52.0, nu-ansi-term to 0.59.0 (rustix 1.1.4 declares windows-sys >=0.52, <0.62, so both ends are legal). It isn't a minimal-versions leak: a bare cargo update -p clap_complete on bebf357's lockfile reproduces those seven lines exactly, while cargo generate-lockfile from scratch on this tree picks 0.61.2 for all of them. So it's cargo's re-resolution rather than anything in the diff, and it'll recur on the next lock touch — but the nightly release binaries build from this lockfile, so the Windows ones will link the older bindings.
Raise the published PRQL compiler MSRV from Rust 1.81 to 1.85 in both the workspace package metadata and
cargo-msrvcompatibility metadata.This lets the unpublished mdBook tooling move from 0.5.2 to 0.5.4. The regenerated workspace lockfile selects
indexmap2.14.1, which is also inprqlc's dependency graph and declares Rust 1.85 as its minimum. Becausemdbook-prqldoes not inherit the workspace MSRV, this is a deliberate public support-floor change rather than an MSRV declaration for the book tool.The direct
anyhow,serde_json, andregexminimums now satisfy mdBook 0.5.4's requirements. The lockfile and shell-completion snapshots also align withclap_complete4.6.9, which becomes eligible in the direct-minimum resolver at the new workspace MSRV, without re-resolving unrelated Windows dependency edges. The temporary Dependabot ignores added in #6240 are removed.The change also applies the mechanical Clippy improvements required by the repository's Rust 1.97 CI, including
Option::is_none_or, which is available at the new support floor.Verified with
cargo msrv verify,cargo +nightly-2025-11-10 minimal-versions test --direct,cargo +1.97.1 clippy --all-targets --no-default-features --features=default -- -D warnings,task prqlc:pull-request, andcargo +1.97.1 test -p mdbook-prql --locked.