Skip to content

test(e2e): pin uv to 0.11.8 around astral-sh/uv#19278#9618

Merged
jdx merged 1 commit intomainfrom
fix/uv-attestation-tests
May 5, 2026
Merged

test(e2e): pin uv to 0.11.8 around astral-sh/uv#19278#9618
jdx merged 1 commit intomainfrom
fix/uv-attestation-tests

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented May 5, 2026

Summary

  • Pin uv to 0.11.8 in the four e2e tests that install it via the aqua backend (shell/test_xonsh, cli/test_activate_multiple_xonsh, cli/test_deactivate_xonsh, sync/test_sync_python_uv).
  • Workaround for astral-sh/uv#19278: uv 0.11.9 was manually published due to a crates.io timeout, which skipped GitHub Artifact Attestations generation. mise's aqua backend correctly rejects the unattested release with Workflow verification failed: ... found certificate: None, provenance: None, breaking these tests on main and on every open PR.
  • Revert the pins once uv 0.11.10 ships with attestations restored.

Why pinning instead of disabling attestations

Disabling MISE_AQUA_GITHUB_ATTESTATIONS in the tests would silently mask the same class of regression in the future. Pinning the only known-bad version keeps attestation coverage intact and is trivially reverted once upstream is fixed.

Test plan

  • CI e2e runs that previously failed on shell/test_xonsh, cli/test_activate_multiple_xonsh, cli/test_deactivate_xonsh, sync/test_sync_python_uv now pass.
  • Other e2e tests unaffected.

🤖 Generated with Claude Code


Note

Low Risk
Test-only change that pins a tool version to avoid a known-bad upstream release; no production code paths are affected.

Overview
Pins uv to 0.11.8 in four e2e scripts so tests don’t pull uv 0.11.9, which was published without SLSA/GitHub attestations and is rejected by the aqua backend.

Adds inline comments referencing astral-sh/uv#19278 and noting the pin should be removed once 0.11.10 restores attestations.

Reviewed by Cursor Bugbot for commit 5e332ef. Bugbot is set up for automated code reviews on this repo. Configure here.

uv 0.11.9 was manually published due to a crates.io timeout, which
skipped GitHub Artifact Attestations generation (astral-sh/uv#19278).
Tests that install uv via the aqua backend now fail because mise
correctly rejects the unattested release.

Pin uv@0.11.8 in the four affected tests to keep CI green without
weakening attestation coverage. Revert the pins once 0.11.10 ships
with attestations restored.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 5, 2026

Greptile Summary

This PR pins uv to 0.11.8 across four e2e test files as a targeted workaround for astral-sh/uv#19278, where uv 0.11.9 was manually published without GitHub Artifact Attestations, causing mise's aqua backend to reject it. Each changed file includes a clear comment documenting the reason and the revert condition (uv 0.11.10).

Confidence Score: 5/5

Safe to merge — minimal, well-scoped workaround with clear revert instructions in every modified file.

All four changes are identical in pattern, pin to a known-good version, include explanatory comments, and align exactly with the stated goal. No logic changes, no new dependencies, no security implications.

No files require special attention.

Reviews (1): Last reviewed commit: "test(e2e): pin uv to 0.11.8 in attestati..." | Re-trigger Greptile

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request pins the uv tool to version 0.11.8 across several end-to-end test files, including Xonsh activation and Python sync tests. This change is a temporary measure because uv version 0.11.9 was manually published and lacks SLSA attestations. I have no feedback to provide.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.0 x -- echo 20.2 ± 1.1 18.0 26.4 1.00
mise x -- echo 22.9 ± 2.7 18.8 34.4 1.14 ± 0.15
⚠️ Warning: Performance variance for x -- echo is 14%

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.0 env 21.8 ± 1.3 19.2 27.8 1.00
mise env 22.7 ± 1.2 19.9 28.3 1.04 ± 0.08

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.0 hook-env 23.0 ± 1.2 20.2 31.1 1.00
mise hook-env 25.4 ± 2.4 20.9 35.1 1.10 ± 0.12

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.0 ls 24.7 ± 1.9 20.7 32.4 1.01 ± 0.12
mise ls 24.6 ± 2.3 19.0 35.4 1.00

xtasks/test/perf

Command mise-2026.5.0 mise Variance
install (cached) 142ms 148ms -4%
ls (cached) 80ms 79ms +1%
bin-paths (cached) 79ms 80ms -1%
task-ls (cached) 612ms 615ms +0%

@jdx jdx merged commit b4f8c39 into main May 5, 2026
37 of 38 checks passed
@jdx jdx deleted the fix/uv-attestation-tests branch May 5, 2026 14:27
mise-en-dev added a commit that referenced this pull request May 7, 2026
### 🚀 Features

- **(aqua)** support registry libc variants by @jdx in
[#9652](#9652)
- **(bin-paths)** add executable names output by @risu729 in
[#9617](#9617)

### 🐛 Bug Fixes

- **(aqua)** preserve configured file extensions by @risu729 in
[#9611](#9611)
- **(aqua)** support registry file links by @risu729 in
[#9610](#9610)
- **(backend)** reject bare package backend names by @risu729 in
[#9608](#9608)
- **(backend)** apply inline tool option overrides by @risu729 in
[#9306](#9306)
- **(backend)** skip versions host for local tool opts by @risu729 in
[#9568](#9568)
- **(github)** chmod explicit archive bin by @risu729 in
[#9609](#9609)
- **(install)** skip remote-versions refresh in prefer-offline mode by
@jdx in [#9627](#9627)
- **(lock)** scope targets to active project root by @risu729 in
[#9319](#9319)
- **(lockfile)** respect existing platforms during auto-lock by @jdx in
[#9621](#9621)
- **(pipx)** filter yanked pypi releases by @risu729 in
[#9607](#9607)
- **(pipx)** declare python as a backend dependency by @jdx in
[#9678](#9678)
- **(schema)** update refs to $defs in mise-registry-tool.json by
@risu729 in [#9671](#9671)
- **(task)** terminate parallel siblings on failure via process groups
by @jdx in [#9655](#9655)
- **(task)** stable MISE_PROJECT_ROOT for monorepo tasks, add
MISE_MONOREPO_ROOT by @jdx in
[#9657](#9657)
- **(trust)** run enter hooks after trusting config by @risu729 in
[#9634](#9634)
- **(ui)** stop clearing screen for prompts by @jdx in
[#9619](#9619)
- use /bin/cp on macos by @pdehlke in
[#9656](#9656)

### 🚜 Refactor

- **(aqua)** store aqua var defaults as strings by @risu729 in
[#9645](#9645)
- **(config)** support structured TOML values in registry backend
options by @risu729 in [#9584](#9584)
- **(deps)** remove serde_derive dependency by @risu729 in
[#9670](#9670)
- **(deps)** remove anyhow dependency by @risu729 in
[#9661](#9661)
- **(deps)** use std::sync::LazyLock instead of once_cell::Lazy by
@risu729 in [#9668](#9668)
- **(schema)** generate task schema from mise schema by @risu729 in
[#9581](#9581)
- **(schema)** reuse task props with unevaluatedProperties by @risu729
in [#9582](#9582)
- **(schema)** reuse registry common types by @risu729 in
[#9648](#9648)
- **(schema)** reuse plugin script config by @risu729 in
[#9647](#9647)
- **(schema)** use $defs in schema files by @risu729 in
[#9646](#9646)

### 📚 Documentation

- **(node)** add tips for enabling node idiomatic by @fu050409 in
[#9675](#9675)

### 🧪 Testing

- **(cli)** remove nondeterministic tool depends assertion by @risu729
in [#9633](#9633)
- **(e2e)** pin uv to 0.11.8 around astral-sh/uv#19278 by @jdx in
[#9618](#9618)
- **(e2e)** wait for docker env cleanup by @risu729 in
[#9631](#9631)
- **(zig)** use official zig instead of mach mirror by @jdx in
[#9659](#9659)

### 📦️ Dependency Updates

- fall through to hash check when providers have no outputs by @jdx in
[#9622](#9622)
- bump Cargo.lock by @jdx in
[#9625](#9625)

### 📦 Registry

- remove registry depends by @risu729 in
[#9571](#9571)
- add code-review-graph (pipx:code-review-graph) by @chautruonglong in
[#9673](#9673)

### Chore

- **(ci)** split large registry test-tool changes by @risu729 in
[#9628](#9628)
- **(ci)** make perf script robust to runner noise by @jdx in
[#9635](#9635)
- **(ci)** skip hyperfine comments without permission by @risu729 in
[#9629](#9629)

### New Contributors

- @chautruonglong made their first contribution in
[#9673](#9673)
- @pdehlke made their first contribution in
[#9656](#9656)

## 📦 Aqua Registry Updates

### New Packages (5)

-
[`anthropics/anthropic-cli`](https://github.com/anthropics/anthropic-cli)
- [`crates.io/wasmi_cli`](https://github.com/wasmi-labs/wasmi)
- [`openclaw/gogcli`](https://github.com/openclaw/gogcli)
- `racket-lang.org/racket-minimal`
- [`runs-on/cli`](https://github.com/runs-on/cli)

### Updated Packages (13)

- [`UpCloudLtd/upcloud-cli`](https://github.com/UpCloudLtd/upcloud-cli)
- [`aristocratos/btop`](https://github.com/aristocratos/btop)
- [`dprint/dprint`](https://github.com/dprint/dprint)
- [`j178/prek`](https://github.com/j178/prek)
- [`jdx/hk`](https://github.com/jdx/hk)
- [`jdx/mise`](https://github.com/jdx/mise)
- [`jdx/usage`](https://github.com/jdx/usage)
- [`jreleaser/jreleaser`](https://github.com/jreleaser/jreleaser)
-
[`jreleaser/jreleaser/standalone`](https://github.com/jreleaser/jreleaser)
- [`pnpm/pnpm`](https://github.com/pnpm/pnpm)
- [`suzuki-shunsuke/cmdx`](https://github.com/suzuki-shunsuke/cmdx)
- [`suzuki-shunsuke/ghir`](https://github.com/suzuki-shunsuke/ghir)
- [`twpayne/chezmoi`](https://github.com/twpayne/chezmoi)
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