Skip to content

fix(release): avoid SIGPIPE in tag-release changelog generation - #121

Merged
jverhoeks merged 1 commit into
mainfrom
fix/release-tag-sigpipe
Sep 19, 2026
Merged

jverhoeks merged 1 commit into
mainfrom
fix/release-tag-sigpipe

Conversation

@jverhoeks

Copy link
Copy Markdown
Owner

Problem

make tag (via scripts/tag-release.sh) aborts with exit 141 (SIGPIPE) when the commit range since the previous tag exceeds 30 commits. Under set -o pipefail, this line:

CHANGELOG=$(git log "${PREV}..HEAD" --oneline | head -30)

makes git log receive SIGPIPE when head -30 closes the pipe early, and pipefail propagates 141, killing the script before any tag is created.

This bit the v1.11.0 release — 156 commits since v1.10.1. (Worked around at release time by running with the fix in the working tree; this PR persists it.)

Fix

  • tag-release.sh: use git log -n 30 (no pipe, no SIGPIPE).
  • update-homebrew-tap.sh: make the cosmetic grep | head -4 display line non-fatal with || true (same latent class of bug; harmless but defensive).

No functional change to release output.

git log piped to `head` under `set -o pipefail` aborts the script with
exit 141 when the commit range exceeds the head limit. This bit the v1.11.0
release (156 commits since v1.10.1): tag-release.sh died before tagging.

Use `git log -n 30` instead of `| head -30`, and make the tap script's
cosmetic grep|head display line non-fatal with `|| true`.
@jverhoeks
jverhoeks merged commit fbff06b into main Sep 19, 2026
1 check passed
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