Summary
service-python ships only darwin/amd64, darwin/arm64, and linux/amd64 — there is no linux/arm64 build. This blocks running the agent on any arm64 Linux target (arm64 companion images, arm64 CI runners, arm64 K8s nodes). Core's downloader already resolves service-python_<version>_linux_arm64.tar.gz by host arch, so on arm64 Linux it 404s today purely because this repo doesn't publish that asset.
Confirmed missing on the latest release (v0.0.55): assets are darwin_amd64, darwin_arm64, linux_amd64 only.
Why it's not a one-line goarch add
The agent requires cgo (it links its own tree-sitter grammar, CGO_ENABLED=1), so a linux/arm64 build needs the aarch64 cross-cgo toolchain. That toolchain is already present — the release runs under ghcr.io/goreleaser/goreleaser-cross, which ships aarch64-linux-gnu-gcc. So this is a goreleaser-only change; no release-workflow change is needed.
Change
Add after the linux-amd64 build stanza in .goreleaser.yaml, before archives::
- id: linux-arm64binary: service-pythonenv:
- CGO_ENABLED=1
- CC=aarch64-linux-gnu-gcc
- CXX=aarch64-linux-gnu-g++goos:
- linuxgoarch:
- arm64
(binary: matches the existing linux-amd64 stanza's value.) The archivesname_template already emits {name}_{version}_{os}_{arch}.tar.gz, so the new ..._linux_arm64.tar.gz asset matches core's downloader contract automatically — no archive change.
Then cut a new release.
Verification
gh release view v<version> --repo codefly-dev/service-python --json assets \
--jq '[.assets[].name | select(contains("linux_arm64"))]'
Related
Part of the multi-arch rollout tracked in codefly-dev/core#346 (which established core needs no change — the gap is purely the missing platform in each service-* release matrix).
Summary
service-pythonships onlydarwin/amd64,darwin/arm64, andlinux/amd64— there is nolinux/arm64build. This blocks running the agent on any arm64 Linux target (arm64 companion images, arm64 CI runners, arm64 K8s nodes). Core's downloader already resolvesservice-python_<version>_linux_arm64.tar.gzby host arch, so on arm64 Linux it 404s today purely because this repo doesn't publish that asset.Confirmed missing on the latest release (v0.0.55): assets are
darwin_amd64,darwin_arm64,linux_amd64only.Why it's not a one-line
goarchaddThe agent requires cgo (it links its own tree-sitter grammar,
CGO_ENABLED=1), so alinux/arm64build needs the aarch64 cross-cgo toolchain. That toolchain is already present — the release runs underghcr.io/goreleaser/goreleaser-cross, which shipsaarch64-linux-gnu-gcc. So this is a goreleaser-only change; no release-workflow change is needed.Change
Add after the
linux-amd64build stanza in.goreleaser.yaml, beforearchives::(
binary:matches the existinglinux-amd64stanza's value.) Thearchivesname_templatealready emits{name}_{version}_{os}_{arch}.tar.gz, so the new..._linux_arm64.tar.gzasset matches core's downloader contract automatically — no archive change.Then cut a new release.
Verification
Related
Part of the multi-arch rollout tracked in codefly-dev/core#346 (which established core needs no change — the gap is purely the missing platform in each
service-*release matrix).