Skip to content

[STF-1869] Fix release notes and tag handling - #169

Merged
horgh merged 1 commit into
mainfrom
greg/stf-1869-release-fixes
Oct 1, 2026
Merged

horgh merged 1 commit into
mainfrom
greg/stf-1869-release-fixes

Conversation

@oschwald

@oschwald oschwald commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Related to STF-1869. Companion to mmdbinspect #253.

GoReleaser ignores the supplied notes while changelog.disable is true. Remove that setting so releases receive the annotated tag body. This also fixes tag formatting and selection errors found while reviewing mmdbinspect #253.

Changes

  • Reject empty or whitespace-only notes before pushing.
  • Preserve Markdown headings and valid signatures in annotated tags with --cleanup=whitespace.
  • Use full tag refs for pushes and object lookup, and pin GoReleaser to the triggering tag.

Validation

  • ShellCheck 0.11.0, shfmt 3.13.1, and zizmor 1.30.1 pass.
  • Temporary-repository tests cover empty notes, signed and unsigned tags, preserved headings, branch/tag name collisions, and pushing only the selected tag. Workflow extraction rejects lightweight tags and tags without notes.
  • GoReleaser smoke tests with builds disabled load supplied notes, reject a missing notes file, and retain the selected version when multiple tags point to one commit.
  • Snapshot packaging passes with GoReleaser 2.18.2 and Go 1.27.1. No releases were published.

Repository settings

GitHub settings were checked: immutable releases are enforced by the organization, Actions are enabled, and the release environment permits v* tags. The same releaser team approves deployments and can create protected release tags. The workflow grants contents: write only to the release job and uses the built-in GITHUB_TOKEN. No settings changes or additional secrets are needed.

Summary by CodeRabbit

  • Release Improvements
    • Release builds now include changelog information.
    • Releases are blocked when the tag has no meaningful release notes, with guidance to add notes to the changelog.
    • Tag handling has been updated to improve release creation and publishing reliability.

@coderabbitai

coderabbitai Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: c4f6cddb-487d-45f9-bf0d-14c489e4c00f

📥 Commits

Reviewing files that changed from the base of the PR and between 83ee575 and ab93eaf.

📒 Files selected for processing (3)
  • .github/workflows/release.yml
  • .goreleaser.yml
  • dev-bin/release.sh
💤 Files with no reviewable changes (1)
  • .goreleaser.yml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The release script rejects empty or whitespace-only release notes and changes how it creates and pushes annotated tags. The release workflow uses a fully qualified tag reference and passes the current ref name to GoReleaser. The GoReleaser configuration no longer disables changelog handling.

Changes

Release Process

Layer / File(s) Summary
Release notes and changelog setup
dev-bin/release.sh, .goreleaser.yml
The script exits when extracted release notes are empty or whitespace-only. GoReleaser no longer explicitly disables changelog handling.
Annotated-tag publication and workflow handoff
dev-bin/release.sh, .github/workflows/release.yml
The script uses whitespace cleanup when creating annotated tags and pushes an explicit tag ref. The workflow resolves the tag object through its fully qualified ref and passes the current ref name to GoReleaser.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to ab93e

The release workflow carries the curated notes into GoReleaser, and no actionable merge risk is established by the reviewed changes.

Architecture Summary

Architecture risk: 🔵 Low · up to ab93e

The change affects 1 system.

Changed systems: dev-bin

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — dev-bin (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in dev-bin/release.sh: The script now exits with an error when the extracted release notes are empty or whitespace-only.
  • observed — Modified behavior in dev-bin/release.sh: The tag message comments now describe whitespace cleanup, and annotated tags are created with --cleanup=whitespace instead of --cleanup=verbatim; the push explicitly targets refs/tags/$tag rather than $tag.
  • observed — Modified behavior in .github/workflows/release.yml: The annotated-tag check now resolves the tag object using the fully qualified refs/tags/ reference.
  • observed — Modified behavior in .github/workflows/release.yml: The GoReleaser step now receives the current GitHub ref name through GORELEASER_CURRENT_TAG.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main changes to release notes and tag handling.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit checks the notes for space,
Then tags the release with care and grace.
The workflow finds the tag in place,
Changelogs join the publishing race.
I nibble greens and hop away.

Comment @coderabbitai help to get the list of available commands.

@horgh
horgh merged commit 0d814f2 into main Oct 1, 2026
25 checks passed
@horgh
horgh deleted the greg/stf-1869-release-fixes branch October 1, 2026 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants