You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(release): embed version in binary asset names (#1603)
## Summary
Homebrew's URL→version detection misparses the **x86_64** release assets: `mergify-x86_64-unknown-linux-gnu.tar.gz` is read as version `64-unknown-linux-gnu` (a fallback stem regex grabs the `_64` before the GitHub release-path parser runs). `aarch64` parses fine, so only amd64 breaks. This blocks the Homebrew tap's `brew audit --strict`.
**Fix:** embed the release version *before* the Rust target triple — `mergify-<version>-<triple>.{tar.gz,zip}` — so Homebrew's dotted-version parser wins on every arch. The tap then auto-detects the version from the URL (no explicit `version` line, no misparse, no "redundant version" complaint).
## Changes
- **`release.yml`** — repack emits `mergify-${tag}-${target}.{tar.gz,zip}`; `SHA256SUMS` + asset-presence check follow.
- **`self_update.rs`** — builds `mergify-{latest}-{target}.{ext}` (already resolves the latest tag); tests updated.
- **`install.sh`** — resolves the latest tag (GitHub API, or a `latest-release.json` stub in fixture mode) before constructing the per-version asset name. (The `releases/latest/download/<asset>` redirect can't be used once the version is in the filename.)
- **`ci.yaml`** — install/self-update fixtures use the new names + serve `latest-release.json`.
- **`README.md` / `RELEASING.md`** — documented asset names updated.
Complementary to #1602 (which fixes the Linux binaries self-reporting `0.0.0`): #1602 fixes `mergify --version`; this fixes Homebrew's URL parsing.
0 commit comments