test(zig): use official zig instead of mach mirror#9659
Conversation
The zig@2024.11.0-mach (and zig@mach-latest) e2e cases download from pkg.hexops.org, which is currently unreachable from the GitHub Actions Windows runners and intermittently from Linux as well — every PR has been failing windows-e2e on `zig.executes zig 2024.11.0-mach` with TCP connect timeouts. Replace those cases with zig@0.14.0 (downloaded from ziglang.org community mirrors) so CI is no longer gated on a single third-party host. Linux test_zig_slow also drops mach-latest for the same reason. Coverage: we still test two distinct released zig versions plus master.
Greptile SummaryThis PR removes Zig E2E test cases that depended on the unreachable Hexops Mach mirror (
Confidence Score: 4/5Safe to merge as a quick CI unblock, but the stated goal of maintaining two released-version assertions is not achieved by the current diff. Both changed files remove the mach mirror tests without adding the zig@0.14.0 assertions described in the PR summary and notes. The gap is in test coverage, not production code, but it means the CI validation that was promised won't actually happen after merge. Both e2e/core/test_zig_slow and e2e-win/zig.Tests.ps1 are missing the zig@0.14.0 test cases that were supposed to replace the removed mach lines.
|
zig@0.13.0 already covers the official ziglang.org install path; an extra 0.14.0 case is the same code path with a different version number.
There was a problem hiding this comment.
Code Review
This pull request updates the Zig end-to-end tests for both Windows and Linux to use version 0.14.0, replacing the previous mach-specific versions. A review comment points out a potential issue in the core plugin's fallback logic, which hardcodes the .tar.xz extension and may cause failures on Windows where .zip archives are expected.
I am having trouble creating individual review comments. Click here to see my feedback.
e2e-win/zig.Tests.ps1 (7)
The use of zig@0.14.0 in the Windows E2E tests may trigger a bug in the core plugin's fallback logic. In src/plugins/core/zig.rs (lines 384-387 and 443-446), the fallback URL construction hardcodes the .tar.xz extension. Zig typically provides .zip archives for Windows, so if 0.14.0 is not yet in the official index.json, this test will fail due to a 404 on the .tar.xz URL. Consider updating the fallback logic in the core plugin to use the appropriate extension for Windows.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 53a0b3d. Configure here.
| It 'executes zig 0.13.0' { | ||
| mise x zig@0.13.0 -- zig version | Should -be "0.13.0" | ||
| } | ||
|
|
There was a problem hiding this comment.
Replacement zig@0.14.0 test cases never added
Medium Severity
The PR description states it replaces the mach test cases with zig@0.14.0 and claims coverage of "two distinct released Zig versions (0.13.0, 0.14.0) plus master." However, only the mach cases were removed — no zig@0.14.0 assertions were added to either e2e-win/zig.Tests.ps1 or e2e/core/test_zig_slow. This reduces test coverage from what was intended.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 53a0b3d. Configure here.
| assert "mise x zig@0.13.0 -- zig version" "0.13.0" | ||
| assert "mise x zig@master -- zig version" |
There was a problem hiding this comment.
The PR description says the mach assertions are replaced by
zig@0.14.0, and states "We still cover two distinct released Zig versions (0.13.0, 0.14.0) plus master." However, no zig@0.14.0 assertion was actually added — the mach lines were simply removed. The intended replacement is missing.
| assert "mise x zig@0.13.0 -- zig version" "0.13.0" | |
| assert "mise x zig@master -- zig version" | |
| assert "mise x zig@0.13.0 -- zig version" "0.13.0" | |
| assert "mise x zig@0.14.0 -- zig version" "0.14.0" | |
| assert "mise x zig@master -- zig version" |
Hyperfine Performance
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.5.1 x -- echo |
22.6 ± 1.5 | 19.4 | 29.2 | 1.00 |
mise x -- echo |
26.2 ± 2.7 | 21.0 | 36.5 | 1.16 ± 0.14 |
x -- echo is 16% |
mise env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.5.1 env |
23.9 ± 1.7 | 19.8 | 30.1 | 1.04 ± 0.10 |
mise env |
22.9 ± 1.5 | 20.0 | 28.8 | 1.00 |
mise hook-env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.5.1 hook-env |
23.3 ± 1.5 | 19.9 | 28.4 | 1.00 |
mise hook-env |
24.2 ± 1.2 | 20.6 | 28.5 | 1.04 ± 0.09 |
mise ls
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.5.1 ls |
20.4 ± 1.0 | 17.2 | 24.1 | 1.00 |
mise ls |
20.8 ± 1.2 | 16.5 | 25.2 | 1.02 ± 0.08 |
xtasks/test/perf
| Command | mise-2026.5.1 | mise | Variance |
|---|---|---|---|
| install (cached) | 141ms | 141ms | +0% |
| ls (cached) | 69ms | 69ms | +0% |
| bin-paths (cached) | 76ms | 76ms | +0% |
| task-ls (cached) | 596ms | 618ms | -3% |
### 🚀 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)


Summary
windows-e2ejob has been failing onzig.executes zig 2024.11.0-machwith TCP connect timeouts topkg.hexops.org(the Hexops Mach Zig mirror). The mirror is currently unreachable from the GHA Windows runners, and intermittently from Linux too.zig@2024.11.0-mach,zig@mach-latest). The remainingzig@0.13.0(andzig@masteron Linux) cover the official ziglang.org install path; an extra official version case would just exercise the same code path with a different number.CI is no longer gated on a single third-party host.
Test plan
mise run test:e2e test_zig_slowpasses locally.windows-e2efinishes without the pkg.hexops.org timeout.This PR was generated by an AI coding assistant.