Skip to content

Fix Minimal versions CI by lifting tempfile and is-terminal floors#55

Open
RyanJamesStewart wants to merge 1 commit into
astral-sh:mainfrom
RyanJamesStewart:ci/tempfile-floor
Open

Fix Minimal versions CI by lifting tempfile and is-terminal floors#55
RyanJamesStewart wants to merge 1 commit into
astral-sh:mainfrom
RyanJamesStewart:ci/tempfile-floor

Conversation

@RyanJamesStewart
Copy link
Copy Markdown

The Minimal versions job has been red on main since 2026-05-07. Root cause is two transitive paths pulling rustix = "0.37":

  • proptest 1.6.0 -> tempfile 3.0 -> rustix 0.37
  • codspeed-criterion-compat 4.0.1 -> is-terminal 0.4.6 -> rustix 0.37

rustix 0.37.x uses rustc_layout_scalar_valid_range_start, the perma-unstable attribute removed from the compiler in rust-lang/rust#155433 (merged 2026-05-03). Tracking issue: bytecodealliance/rustix#1620. The 0.37 line is in deep maintenance (0.37.28 released 2025-01-07) and no backport is in flight.

This adds two direct dev-dep floors, the minimum each path needs to land on rustix 0.38+:

  • tempfile = "3.7" (3.7.0 is the first to require rustix = "0.38")
  • is-terminal = "0.4.8" (0.4.8 is the first to require rustix = "0.38")

Normal builds are unaffected: the resolver already picks tempfile 3.15.0 and is-terminal 0.4.15.

Verified locally with cargo +nightly update -Zminimal-versions && cargo +nightly build --workspace: the lockfile resolves to a single rustix v0.38.0, no rustix v0.37.x anywhere in the tree.

AI assistance

Diagnosis, dep-chain trace, and Cargo.toml diff drafted with AI assistance and verified locally against the failing CI job. Reviewed and own the change.

…ns` doesn't pull `rustix = "0.37"`

The `Minimal versions` CI job resolves the workspace to its earliest
compatible versions on nightly, which pulls `rustix 0.37.0` via two
transitive paths:

- `proptest 1.6.0 -> tempfile 3.0 -> rustix 0.37`
- `codspeed-criterion-compat 4.0.1 -> is-terminal 0.4.6 -> rustix 0.37`

rustix 0.37.x uses `rustc_layout_scalar_valid_range_start`, which was
removed from the compiler in rust-lang/rust#155433 (merged 2026-05-03).
Tracking issue at bytecodealliance/rustix#1620; the 0.37 line is in
deep maintenance (0.37.28 released 2025-01-07) and no backport is in
flight.

Add two direct dev-dep floors, the minimum each path needs to land on
rustix `0.38+`:

- `tempfile = "3.7"` (3.7.0 is the first to require `rustix = "0.38"`)
- `is-terminal = "0.4.8"` (0.4.8 is the first to require `rustix = "0.38"`)

Normal builds are unaffected: the resolver already picks `tempfile
3.15.0` and `is-terminal 0.4.15`.

Verified locally with `cargo +nightly update -Zminimal-versions` and
`cargo +nightly build --workspace`: the lockfile resolves to a single
`rustix v0.38.0`, no `rustix v0.37.x` anywhere in the tree.
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