ci: raise is-terminal and tempfile dev floors so minimal-versions builds on nightly#428
Conversation
The `Minimal versions` job (`cargo +nightly update -Zminimal-versions` then build and test) is latently broken. Under minimal versions two dev-dep paths resolve rustix 0.37: `codspeed-criterion-compat -> is-terminal 0.4.6` and `proptest -> tempfile`. rustix below 0.38.6 uses the `rustc_layout_scalar_valid_range_start` attribute, which the compiler removed in rust-lang/rust#155433, so it no longer compiles on current nightly (tracked in bytecodealliance/rustix#1620). The job only still passes because it has not re-run on a post-removal nightly. Raise two dev-dep floors so minimal versions resolves a buildable rustix. `is-terminal = "0.4.8"` moves the codspeed path off the rustix 0.37 line, and `tempfile = "3.9"` raises the proptest path to rustix 0.38.26 -- the lowest tempfile floor whose rustix builds, since tempfile 3.7 and 3.8 still resolve the unbuildable rustix 0.38.0. No direct rustix floor is added, so the normal latest-versions resolution is unchanged and keeps a single rustix. Verified on nightly 2026-05-12: with `-Zminimal-versions`, rustix resolves to a single 0.38.26 and `cargo build --workspace` plus `cargo test --all-features --workspace` pass; the latest-versions build is unaffected (single rustix 1.1.4, tests pass).
|
Can you please share the exact commands that reproduce the breakage? CI on main is clean, and it doesn't reproduce for me locally. |
|
You're right that it doesn't reproduce on Under Exact commands on a clean The last command gives: So the breakage is nightly-only, and the pubgrub-rs job never compiles a dev-dependency on nightly, which is why CI on main is clean. Where I actually hit it was the astral-sh fork, whose minimal-versions job uses Given that, this PR is not needed for |
|
As nightly is unstable, we shouldn't add fixes specifically for nightly and minimal versions. |
The
Minimal versionsCI job (cargo +nightly update -Zminimal-versionsthen build and test) is latently broken. Under minimal versions, two dev-dep paths resolverustix 0.37:codspeed-criterion-compat -> is-terminal 0.4.6andproptest -> tempfile. rustix below 0.38.6 relies on therustc_layout_scalar_valid_range_startattribute, which the compiler removed in rust-lang/rust#155433, so it no longer compiles on current nightly (tracked in bytecodealliance/rustix#1620). The job only still passes because it has not re-run on a post-removal nightly.This raises two dev-dep floors so minimal versions resolves a buildable rustix.
is-terminal = "0.4.8"moves the codspeed path off the rustix 0.37 line, andtempfile = "3.9"raises the proptest path to rustix 0.38.26 (the lowest tempfile floor whose rustix builds;tempfile 3.7and3.8still resolve the unbuildable rustix 0.38.0). No direct rustix floor is added, so the normal latest-versions resolution is unchanged and keeps a single rustix.Verified locally on nightly 2026-05-12:
-Zminimal-versions, rustix resolves to a single 0.38.26 andcargo build --workspacepluscargo test --all-features --workspacepass;The astral-sh/pubgrub fork hit the same breakage; the fix there (astral-sh#55) was redirected here so the fork can rebase on top.