From 4d825910525afbe1d7a82607b506856409ce5eea Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Mon, 3 Aug 2026 15:04:52 +0200 Subject: [PATCH] release-agent.sh: the publish leg was unrunnable on its first real use MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- scripts/publish-agent.sh | 0 scripts/release-agent.sh | 8 +++++++- 2 files changed, 7 insertions(+), 1 deletion(-) mode change 100644 => 100755 scripts/publish-agent.sh diff --git a/scripts/publish-agent.sh b/scripts/publish-agent.sh old mode 100644 new mode 100755 diff --git a/scripts/release-agent.sh b/scripts/release-agent.sh index ff39876..4b55d2d 100755 --- a/scripts/release-agent.sh +++ b/scripts/release-agent.sh @@ -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) ──────────────────────────── 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 ──────────────────────────────────────────────────────── # The publish step's own success is not proof: it reports on its own write. What matters is that a