Skip to content

fix(release): create signed annotated tags safely under tag.gpgsign#727

Merged
Chemaclass merged 1 commit into
mainfrom
fix/release-gpgsign-signed-tags
Jun 16, 2026
Merged

fix(release): create signed annotated tags safely under tag.gpgsign#727
Chemaclass merged 1 commit into
mainfrom
fix/release-gpgsign-signed-tags

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

Summary

release.sh could not tag a release when tag.gpgsign=true is set in git config (the maintainer's setup). A plain git tag <name> under that config tries to create a signed tag, needs a message, and aborts with Please supply the message using either -m or -F option in any non-interactive/CI run — leaving the release half-done.

Changes

  • Extract tagging into release::create_tags, which:
    • creates the version tag as annotated with an inline -m message (git signs it automatically when tag.gpgsign=true, and never opens an editor)
    • moves the floating major tag (v0) with -f, pinned to the release commit via ^{} rather than the version tag object
  • Apply the same gpgsign-safe tagging in the sandbox flow.
  • Add regression tests (test_create_tags_*) — CI-safe (no GPG key needed), asserting tags are annotated, the major tag points at the release commit, and the major tag name is returned.
  • Slim the /release skill to a thin reminder now that the whole e2e flow lives in release.sh.

Test plan

  • ./bashunit tests/unit/release_*.sh — all green (incl. new tests)
  • make sa && make lint — clean
  • shfmt — clean
  • Reproduced the original failure and verified the fix in a throwaway repo with tag.gpgsign=true

A plain `git tag <name>` aborts with "Please supply the message" when
`tag.gpgsign=true` and no editor is available (CI / non-interactive runs).
Extract tagging into `release::create_tags`, which always creates annotated
`-m` tags (signed when gpgsign is on) and pins the floating major tag to the
release commit via `^{}`. Add regression tests and slim the /release skill to
a thin reminder now that the flow is fully handled in release.sh.
@Chemaclass Chemaclass added the bug Something isn't working label Jun 16, 2026
@Chemaclass Chemaclass self-assigned this Jun 16, 2026
@Chemaclass Chemaclass merged commit 09f35e1 into main Jun 16, 2026
31 checks passed
@Chemaclass Chemaclass deleted the fix/release-gpgsign-signed-tags branch June 16, 2026 19:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant