release: prepare 1.0.1 — amd64 build fix (xmrig-proxy has no arm64) + supersede 1.0.0#245
Merged
Merged
Conversation
#243 set the release to multi-arch (amd64+arm64), but the binary-bearing Dockerfiles download linux-x64 binaries and **xmrig-proxy has no arm64 build at all**, so the stack can't run on arm64. A multi-arch build would put an x64 binary in the arm64 image and ship a broken arm64 manifest. The v1.0.0 defect was building the WRONG single arch (arm64, the Apple-Silicon host's) — not 'not multi-arch'. Pin PLATFORMS to linux/amd64 (still via buildx, to force amd64 on an arm64 host); the smoke guard now requires the target platform; tests + comments updated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
VERSION + dashboard pyproject -> 1.0.1. CHANGELOG: move the full feature set to [1.0.1] with two ### Fixed entries (correct linux/amd64 builds #243, complete install bundle #242), and a short [1.0.0] tombstone for transparency. No feature changes. (Folds in the still-open #244 prep, with the build fix reframed from multi-arch to amd64-only — see the preceding commit.) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
VijitSingh97
added a commit
that referenced
this pull request
Jun 14, 2026
…#246) Two bugs in the buildx flow (#243/#245) that surfaced on the first real amd64 release run from an arm64 host: 1. Digest capture used `imagetools inspect --format '{{.Manifest.Digest}}'`, which for a buildx OCI index renders the whole descriptor block, not the sha — so the stored "digest" was multi-line garbage and promote would have failed. Parse the `Digest:` line instead (verified == `imagetools inspect --raw | shasum -a 256`). Factored into manifest_digest(), used by stage_push and the --resume-promote path. 2. Smoke did a plain `docker pull`, which resolves the build HOST's arch — on an arm64 host an amd64-only image fails "no matching manifest for linux/arm64". Pull the target platform explicitly (`--platform ${PLATFORMS%%,*}`); Docker can pull (not run) a non-native image, which is all the label check needs. Verified against the live v1.0.1-rc.1 images: manifest_digest returns the clean index sha, and `pull --platform linux/amd64` succeeds on the arm64 build host. The 1.0.1 rc images are already built + valid, so this unblocks promoting them (no rebuild). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Makes the release build the correct architecture and prepares 1.0.1. Supersedes #244 (folds in its version/CHANGELOG prep with corrected wording).
Why amd64-only, not multi-arch (corrects #243)
#243 set the release to multi-arch (
amd64,arm64). But the stack can't run on arm64:linux-x64(and have arm64), but xmrig-proxy shipslinux-static-x64only — no arm64 build exists.x64binary, so a multi-arch build would put an x86_64 binary inside the arm64 image → a broken arm64 manifest the smoke guard wouldn't catch.The v1.0.0 defect was building the wrong single arch (arm64 — the Apple-Silicon host's), not "not multi-arch". So the fix is
buildx --platform linux/amd64(force amd64 even on an arm64 host), not multi-arch.Changes
PLATFORMS=linux/amd64; smoke guard requires the target platform; comments/logs corrected. (buildx machinery from fix(release): build multi-arch images (amd64 + arm64) — v1.0.0 shipped arm64-only #243 kept — it's what forces amd64 on the arm64 build host.)[1.0.1]+ two### Fixed(amd64 builds fix(release): build multi-arch images (amd64 + arm64) — v1.0.0 shipped arm64-only #243, bundle fix(release): bundle every ./build runtime mount, not just tari (broken monerod install) #242) + a[1.0.0]tombstone (kept, superseded — your call).Verification
shellcheckclean ·make testgreen (amd64 guards +pyproject==VERSION) ·PLATFORMS=linux/amd64.Next
Merge this →
make releasebuilds amd64:1.0.1+ a complete bundle, runs the full e2e gate, publishes 1.0.1 → then v1.0.0 gets a "superseded" note. (Closing #244 in favor of this.)