release-agent.sh: the publish leg was unrunnable on its first real use
gates / gates (push) Successful in 7s
gates / gates (push) Successful in 7s
R-115's whole point is that publishing cannot be forgotten because it rides the release script. On the first real release through it (v0.121.0, R-86) it died at exactly that leg: scripts/release-agent.sh: line 101: .../scripts/publish-agent.sh: Permission denied publish-agent.sh has been mode 0644 since it was created on 2026-06-28 — every earlier caller ran it as `bash scripts/publish-agent.sh`, so nothing ever noticed, and release-agent.sh (written the same day it was needed) called it directly. Two fixes, both small and both wanted: restore the executable bit, and invoke it through `bash` so the release no longer depends on a file mode — the kind of thing a checkout, an archive or a copy loses again. The v0.121.0 tag created by the failed run is withdrawn and recreated on this commit; nothing was published under it (verified 404 on the package endpoint), so one version name still means one binary.
This commit is contained in:
Regular → Executable
@@ -98,7 +98,13 @@ git push origin "$TAG" || die "tag push failed — refusing to publish an untagg
|
|||||||
|
|
||||||
# ── 5. Publish (the existing script; deliberately not reimplemented) ────────────────────────────
|
# ── 5. Publish (the existing script; deliberately not reimplemented) ────────────────────────────
|
||||||
log "publishing …"
|
log "publishing …"
|
||||||
"$REPO_ROOT/scripts/publish-agent.sh" "$VERSION" "$BIN" || die "publish failed"
|
# Invoked through `bash` DELIBERATELY, not as an executable. On 2026-08-03 the first real release
|
||||||
|
# through this script died here — `publish-agent.sh` has been mode 0644 since it was created on
|
||||||
|
# 2026-06-28, because every earlier caller ran it as `bash scripts/publish-agent.sh`. So the one leg
|
||||||
|
# R-115 exists to make unforgettable was, on its first use, unrunnable. The mode bit is restored in
|
||||||
|
# the same commit; this line makes the release independent of it, because a file mode is exactly the
|
||||||
|
# kind of thing that is lost again by a checkout, an archive, or a copy.
|
||||||
|
bash "$REPO_ROOT/scripts/publish-agent.sh" "$VERSION" "$BIN" || die "publish failed"
|
||||||
|
|
||||||
# ── 6. Verify by an INDEPENDENT download ────────────────────────────────────────────────────────
|
# ── 6. Verify by an INDEPENDENT download ────────────────────────────────────────────────────────
|
||||||
# The publish step's own success is not proof: it reports on its own write. What matters is that a
|
# The publish step's own success is not proof: it reports on its own write. What matters is that a
|
||||||
|
|||||||
Reference in New Issue
Block a user