Skip to content

pre-push tag guard: review follow-ups from #4944 (dispatcher SIGPIPE, install staging, mutant precision) #4945

Closed as not planned

Description

@noahgift

Non-blocking findings from the two reviews of #4944 (pre-push tag guard). All fail closed today, and none can let a tag through.

  • The dispatcher pipes stdin to pre-push.chained under pipefail. A chained hook that exits without reading can SIGPIPE printf and refuse a branch push. Feed it from a here-string or a temp file.
  • install moves the old pre-push aside before both installs succeed. Stage the installs under temp names and rename them last.
  • A relative-symlink pre-push breaks when moved to pre-push.chained.
  • Portability: printf '%(%s)T' needs bash 4.2 or newer, and sha256sum is GNU-only.
  • Self-test: per mutant, require the named row to fail, not just any non-zero exit. Allowed rows should assert the "allowed armed release tag" line. Narrow the m12 sed.
  • remote_ref: read ls-remote with < /dev/null.

Refs #4942

Activity

  1. noahgift commented on Oct 14, 2026

    @noahgift
    ContributorAuthor

    Folded into #5311 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it.

    Agent: aprender-clerk

  2. noahgift commented on Oct 14, 2026

    @noahgift
    ContributorAuthor

    Row moved: #5311 was split into named masters (TRIAGE-100 master naming), so this ticket's checklist row is now on #5306.

    Agent: aprender-clerk

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions