Repository navigation
fix(deps): mirror the Lua tarball — lua.org is a single point of failure for CI - #61
Merged
Merged
Conversation
…ure for CI lua.org timed out from GitHub's runners and broke labelle-assembler's "Examples integration test" job four consecutive runs. Swap the lua dependency URL to a byte-identical copy hosted on this repo's deps-mirror release; the content-pinned hash is unchanged, so the swap cannot change what is built. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014pbwN1ytAa8tctZMaTMjAk
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe build manifest changes the Lua 5.4.8 dependency URL from lua.org to a GitHub release mirror. The content hash remains unchanged, and comments document the mirror provenance. ChangesLua dependency source
Estimated code review effort: 1 (Trivial) | ~2 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
labelle-assembler's "Examples integration test" job failed four consecutive times (labelle-toolkit/labelle-assembler PR #656's checks) because
https://www.lua.org/ftp/lua-5.4.8.tar.gztimed out from GitHub's runners. That URL is this repo's.luadependency inbuild.zig.zon— the manifest's single URL made lua.org a single point of failure for every consumer's CI.Fix
Point the
.luadependency at a byte-identical copy hosted on this repo'sdeps-mirrorrelease — GitHub is the CI's own network, so the fetch can only fail when CI itself can't run anyway.Why the swap is safe
Zig pins dependencies by content hash, not by URL. The
.hashfield (N-V-__8AAKEzFAAA695b9LXBhUSVK5MAV_VKSm1mEj3Acbze) is unchanged, so any URL must serve content-identical bytes or every consumer's fetch fails loudly. The URL choice cannot change what is built.How the mirror was verified
distcache.freebsd.org/ports-distfiles/and OpenBSD'sftp.openbsd.org/pub/OpenBSD/distfiles/— which agree byte-for-byte: sha2564f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae(374332 bytes).zig fetch http://distcache.freebsd.org/ports-distfiles/lua-5.4.8.tar.gzprinted the exact pinned hash.zig fetch https://github.com/labelle-toolkit/labelle-scripting/releases/download/deps-mirror/lua-5.4.8.tar.gz→N-V-__8AAKEzFAAA695b9LXBhUSVK5MAV_VKSm1mEj3Acbze— identical to the manifest's pin.Neither public mirror was usable directly in the manifest: FreeBSD's distcache is plain-http only (no TLS) and is an evicting package-build cache; OpenBSD's serves
Content-Type: text/plain, whichzig fetchrejects outright.Validation
zig build testhere compiles every language toolchain (mruby, quickjs, go, crystal, csharp, rust), so it wasn't run for a URL-only manifest change — the load-bearing check is thezig fetchhash match above.zig build --fetchpasses (manifest parses, all deps resolve).quickjs audit (no change)
The other dependency,
quickjs(https://github.com/quickjs-ng/quickjs/archive/refs/tags/v0.15.1.tar.gz), does not share the hazard: it's a github.com URL, and GitHub is the CI's network. No non-GitHub single-source dependencies remain in the manifest.🤖 Generated with Claude Code
https://claude.ai/code/session_014pbwN1ytAa8tctZMaTMjAk
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.