Skip to content

fix(ci): fail clearly when a dispatched tag does not exist - #50

Merged
david-chau merged 1 commit into
mainfrom
fix/release-as-trailer
Aug 3, 2026
Merged

fix(ci): fail clearly when a dispatched tag does not exist#50
david-chau merged 1 commit into
mainfrom
fix/release-as-trailer

Conversation

@david-chau

Copy link
Copy Markdown
Owner

Two things, one of which is why 1.0.0 did not publish.

The publish failure was a premature manual run

The failing job was a workflow_dispatch with tag: v1.0.0. That input skips
release-please entirely and tells the publish job to check out v1.0.0 — a tag
nothing had created. The push-triggered run on the same commit succeeded.

It failed unhelpfully: git failed with exit code 1, three retries deep, never
naming the tag. A pre-flight check now says what is wrong and points at the
actual route.

Why the cut released nothing

Release-As: 1.0.0 is only read in trailer position — the last block of the
message. In #49 it sat on the second line, above the body, where release-please
treats it as prose. So it saw a bare chore: and did what it should:

✔ No user facing commits found since 85936e1 - skipping

My mistake, and a subtle one: the footer was in the commit, and survived the
squash, just not in a position that counts.

Two consequences, now in CI.md:

  • the trailer goes last
  • merges here are squashed, so the message comes from the pull request title
    and body
    — the trailer has to be the final line of this description, not
    of a commit on the branch
  • worth landing a releasable commit beside it rather than relying on the footer
    to conjure a release out of a chore:

Hence this being a fix(ci):. It gives release-please something user-facing to
release, and the trailer below sets the version.

Merging this should produce the release pull request for 1.0.0.

🤖 Generated with Claude Code

Release-As: 1.0.0

A manual run of the publish workflow with a tag that has not been created yet
dies inside actions/checkout as "git failed with exit code 1", three retries
deep, never naming the tag it wanted. Reading the raw log was the only way to
see that it was looking for v1.0.0 and finding nothing.

A pre-flight check now says so, and points at the actual route: merge the
release pull request, which tags and publishes on its own. Dispatching a tag by
hand is for re-publishing one that already exists.

Also documents why the 1.0.0 cut released nothing. Release-As is only read in
trailer position — the last block of the message — and it was written on the
second line, above the body, where release-please treats it as prose. The log
said so: "No user facing commits found since 85936e1 - skipping". Since merges
here are squashed, the trailer has to be the last line of the pull request
description, because that is what becomes the commit message.

Release-As: 1.0.0
@david-chau
david-chau merged commit fbe345b into main Aug 3, 2026
8 checks passed
@david-chau
david-chau deleted the fix/release-as-trailer branch August 3, 2026 23:01
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