Skip to content

ci: bump Zig to 0.14.1 so CI can build (.root_module is a 0.14 API)#1

Open
abhicris wants to merge 17 commits into
cryptuon:mainfrom
abhicris:ci/unbreak-zig-version
Open

ci: bump Zig to 0.14.1 so CI can build (.root_module is a 0.14 API)#1
abhicris wants to merge 17 commits into
cryptuon:mainfrom
abhicris:ci/unbreak-zig-version

Conversation

@abhicris

Copy link
Copy Markdown

Bug

Every CI run since 2026-04-07 has failed on every matrix cell (test × 3 OSes, build × 3 OSes × 3 optimize modes = 12 jobs) with the exact same error:

build.zig:9:10: error: no field named 'root_module' in struct 'Build.ExecutableOptions'

Sample from the most recent run (24318456000):

  • Test (ubuntu-latest)build.zig:9:10: error: no field named 'root_module' in struct 'Build.ExecutableOptions' → exit 2
  • Test (macos-latest) — same error
  • Test (windows-latest) — same error
  • Build (ubuntu-latest, ReleaseFast/ReleaseSmall/Debug) — same error
  • Build (macos-latest, *) / Build (windows-latest, *) — same error

Root cause

build.zig uses the 0.14 build-system API throughout:

Call 0.14 API used
b.addExecutable(.{ .root_module = b.createModule(...) }) 7 call sites
b.addLibrary(.{ .linkage = ..., .root_module = ... }) 2 call sites
b.addTest(.{ .root_module = b.createModule(...) }) 1 call site

All three of these APIs were introduced in Zig 0.14.0. The .root_module field was added to Build.ExecutableOptions / Build.LibraryOptions / Build.TestOptions as part of the 0.14.0 build-system unification (replacing the old root_source_file / addSharedLibrary / addStaticLibrary family).

.github/workflows/ci.yml pins ZIG_VERSION: "0.13.0", which doesn't know about root_module. The toolchain rejects build.zig on line 9 before anything can build.

Fix

One-line change: bump ZIG_VERSION in .github/workflows/ci.yml from "0.13.0""0.14.1" (latest 0.14.x patch, final 0.14 release). Added a comment above the pin explaining why 0.14 specifically so future bumps don't accidentally regress to 0.13.

No source files touched. build.zig already targets 0.14; this PR just makes the CI toolchain match.

Why not bump to 0.15?

  • 0.15 introduced further build-system breaking changes (notably addModule replacing some createModule patterns). Bumping past the matching major would require editing build.zig to match. Keeping the bump to 0.14.1 minimizes the blast radius — the same API build.zig already targets.
  • If the repo wants to move to 0.15+ later, that's a separate follow-up PR with the build.zig migration bundled together.

Verification

Cannot verify locally (no 0.14.1 toolchain on this box), but the fix is mechanical: build.zig uses 0.14 API, so the toolchain has to be 0.14.x. This PR's own CI run will demonstrate — once GitHub picks it up, all 12 matrix cells that were failing on 0.13 should now proceed past build.zig parsing.

kcolbchain / Abhishek Krishna

dipankar and others added 17 commits August 15, 2024 12:42
🎉 IMPLEMENTATION COMPLETE - All tasks finished successfully!

Major Updates:
✅ README.md - Updated to reflect complete implementation with 80+ opcodes
✅ PLAN.md - Marked all tasks as completed with comprehensive details
✅ IMPLEMENTATION_SUMMARY.md - New comprehensive summary document

Final Implementation Status:
- 80+ opcodes implemented across all categories
- 145 comprehensive tests (100% pass rate)
- Complete gas tracking system with realistic costs
- Full EVM core functionality ready for production use
- Comprehensive error handling and edge case management

Key Features Completed:
🔧 Complete arithmetic engine (ADD, MUL, SUB, DIV, MOD, EXP, etc.)
📚 Full stack management (PUSH1-32, DUP1-16, SWAP1-16)
💾 Memory & storage systems (MLOAD, MSTORE, SLOAD, SSTORE)
⛽ Gas tracking system with out-of-gas protection
🌍 Environmental opcodes (ADDRESS, BALANCE, TIMESTAMP, etc.)
🔀 Flow control with jump validation (JUMP, JUMPI, JUMPDEST)
🛡️ Production-grade error handling

The Zig EVM is now functionally complete and ready for:
- Smart contract testing and development
- Blockchain simulation and research
- Educational purposes and learning
- Integration into larger blockchain systems

🚀 Ready for production use with comprehensive test coverage!

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Every CI run has failed since 2026-04-07 with the same error on all
six matrix cells:

    build.zig:9:10: error: no field named 'root_module' in struct
                           'Build.ExecutableOptions'

`build.zig` uses the 0.14 build-system API throughout — `b.addExecutable(.{
.root_module = b.createModule(...) })`, `b.addLibrary`, `b.addTest(.{
.root_module = ... })` — but `.github/workflows/ci.yml` pins the toolchain
to 0.13.0, which doesn't know about the `root_module` field.

Bumping `ZIG_VERSION` from "0.13.0" to "0.14.1" (latest 0.14 patch) lets
the existing build.zig compile without touching any source. No other
edits required.

— [kcolbchain](https://kcolbchain.com) / [Abhishek Krishna](https://abhishekkrishna.com)
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.

2 participants