Skip to content

release: prepare 1.0.1 — amd64 build fix (xmrig-proxy has no arm64) + supersede 1.0.0#245

Merged
VijitSingh97 merged 2 commits into
mainfrom
fix/release-amd64-target
Jun 14, 2026
Merged

release: prepare 1.0.1 — amd64 build fix (xmrig-proxy has no arm64) + supersede 1.0.0#245
VijitSingh97 merged 2 commits into
mainfrom
fix/release-amd64-target

Conversation

@VijitSingh97

Copy link
Copy Markdown
Collaborator

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:

  • monero/p2pool ship linux-x64 (and have arm64), but xmrig-proxy ships linux-static-x64 only — no arm64 build exists.
  • The Dockerfiles hardcode the x64 binary, 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

Verification

shellcheck clean · make test green (amd64 guards + pyproject==VERSION) · PLATFORMS=linux/amd64.

Next

Merge this → make release builds 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.)

VijitSingh97 and others added 2 commits June 13, 2026 23:29
#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 VijitSingh97 merged commit 3c4d810 into main Jun 14, 2026
12 checks passed
@VijitSingh97 VijitSingh97 deleted the fix/release-amd64-target branch June 14, 2026 04:37
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>
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