Skip to content

test(zig): use official zig instead of mach mirror#9659

Merged
jdx merged 2 commits intomainfrom
fix/zig-e2e-official
May 6, 2026
Merged

test(zig): use official zig instead of mach mirror#9659
jdx merged 2 commits intomainfrom
fix/zig-e2e-official

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented May 6, 2026

Summary

  • Every PR's windows-e2e job has been failing on zig.executes zig 2024.11.0-mach with TCP connect timeouts to pkg.hexops.org (the Hexops Mach Zig mirror). The mirror is currently unreachable from the GHA Windows runners, and intermittently from Linux too.
  • Drop the mach cases (zig@2024.11.0-mach, zig@mach-latest). The remaining zig@0.13.0 (and zig@master on 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_slow passes locally.
  • CI windows-e2e finishes without the pkg.hexops.org timeout.

This PR was generated by an AI coding assistant.

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-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 6, 2026

Greptile Summary

This PR removes Zig E2E test cases that depended on the unreachable Hexops Mach mirror (pkg.hexops.org). The intent, per the PR description, is to replace them with zig@0.14.0 tests against the official ziglang.org mirrors — but the actual code changes only delete the mach assertions without adding the 0.14.0 replacements in either file.

  • e2e/core/test_zig_slow: zig@2024.11.0-mach and mach-latest lines are deleted; no zig@0.14.0 assertion is added, leaving only 0.13.0 and master.
  • e2e-win/zig.Tests.ps1: zig@2024.11.0-mach block is deleted; no zig@0.14.0 block is added, leaving Windows with only 0.13.0 coverage.

Confidence Score: 4/5

Safe 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.

Comments Outside Diff (1)

  1. e2e-win/zig.Tests.ps1, line 1-5 (link)

    P1 The PR description states the Windows test replaces zig@2024.11.0-mach with zig@0.14.0, but no such replacement was added. The file now only tests 0.13.0, leaving a gap in Windows coverage for the official 0.14.0 release.

    Fix in Claude Code

Fix All in Claude Code

Reviews (2): Last reviewed commit: "test(zig): drop redundant zig 0.14.0 cas..." | Re-trigger Greptile

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.
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 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)

medium

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.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ 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.

Comment thread e2e-win/zig.Tests.ps1
It 'executes zig 0.13.0' {
mise x zig@0.13.0 -- zig version | Should -be "0.13.0"
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 53a0b3d. Configure here.

Comment thread e2e/core/test_zig_slow
Comment on lines 3 to 4
assert "mise x zig@0.13.0 -- zig version" "0.13.0"
assert "mise x zig@master -- zig version"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 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.

Suggested change
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"

Fix in Claude Code

@jdx jdx enabled auto-merge (squash) May 6, 2026 22:36
@jdx jdx merged commit f967790 into main May 6, 2026
36 of 37 checks passed
@jdx jdx deleted the fix/zig-e2e-official branch May 6, 2026 22:47
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2026

Hyperfine Performance

mise x -- echo

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
⚠️ Warning: Performance variance for 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%

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