Skip to content

Comments

fix(ci): pin udeps nightly to work around shellexpand breakage#827

Merged
refcell merged 1 commit intomainfrom
fix/pin-udeps-nightly
Feb 23, 2026
Merged

fix(ci): pin udeps nightly to work around shellexpand breakage#827
refcell merged 1 commit intomainfrom
fix/pin-udeps-nightly

Conversation

@niran
Copy link
Contributor

@niran niran commented Feb 23, 2026

Summary

  • Pin the udeps CI job to nightly-2026-02-21 to work around a Rust nightly regression that breaks shellexpand 3.1.1
  • nightly-2026-02-22+ stabilized str::as_str() as an inherent method (rust-lang/rust#151603), which shadows shellexpand's WstrExt::as_str() trait method (returns Option<&str> vs &str), causing a compile error
  • Invoke cargo +nightly-2026-02-21 udeps directly instead of just check-udeps since the justfile hardcodes cargo +nightly
  • A revert PR exists upstream: rust-lang/rust#152963

This is currently blocking all merges to main — the last two pushes to main have failed on udeps.

Test plan

  • Verified cargo +nightly-2026-02-22 check -p shellexpand fails with the type mismatch error
  • Verified cargo +nightly-2026-02-21 check -p shellexpand compiles cleanly
  • Verified cargo +nightly-2026-02-21 udeps --workspace --all-features --all-targets passes ("All deps seem to have been used")

nightly-2026-02-22+ includes the str::as_str() stabilization
(rust-lang/rust#151603) which shadows shellexpand 3.1.1's
WstrExt::as_str() trait method, causing a compile error.

Pin to nightly-2026-02-21 and invoke cargo-udeps directly since
`just check-udeps` hardcodes `cargo +nightly`.

Revert once rust-lang/rust#152963 lands in nightly.
@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Feb 23, 2026

✅ Heimdall Review Status

Requirement Status More Info
Reviews 1/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@github-actions
Copy link
Contributor

Review Summary

No issues found. This is a clean, minimal workaround for the upstream Rust nightly regression (str::as_str() shadowing shellexpand's WstrExt::as_str()).

The change correctly mirrors what just check-udeps does (build-contracts + cargo udeps --workspace --all-features --all-targets) while pinning to nightly-2026-02-21. The TODO comment with the upstream revert PR reference (rust-lang/rust#152963) makes it easy to track when this can be reverted.

Copy link
Contributor

@refcell refcell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for debugging and fixing this @niran !!

@refcell refcell added this pull request to the merge queue Feb 23, 2026
@danyalprout
Copy link
Collaborator

@niran can we add an issue to undo this when it's fixed

Merged via the queue into main with commit baa7466 Feb 23, 2026
21 checks passed
@refcell refcell deleted the fix/pin-udeps-nightly branch February 23, 2026 14:25
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.

4 participants