Skip to content

Prepare the 0.3.0 release, and keep tags off pre-squash commits - #55

Merged
keithlostracco merged 2 commits into
mainfrom
release/0.3.0
Jul 26, 2026
Merged

Prepare the 0.3.0 release, and keep tags off pre-squash commits#55
keithlostracco merged 2 commits into
mainfrom
release/0.3.0

Conversation

@keithlostracco

@keithlostracco keithlostracco commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

The v0.3.0 tag was pushed to 85de526, the pre-squash tip of the branch behind #54. Squash-merging rewrote that commit as 6026ca2, so the tag points at a commit reachable only from the tag. The release workflow didn't publish it, correctly: CHANGELOG.md had no ## [0.3.0] section, since those entries were still under [Unreleased]. No release was created, so there is nothing published to retract.

This prepares the release properly and stops the same mistake from recurring.

Release prep

  • [Unreleased] closed as ## [0.3.0] - 2026-07-26, with the compare links.
  • project(anim VERSION ...) bumped to 0.3.0. It had been left at 0.2.0, and it is the single source of the version for the installed find_package config, so tagging without this would have shipped a package claiming 0.2.0.

Workflow fixes

  • The release job now checks that the tagged commit is an ancestor of main before publishing, and fails with a message saying to re-tag the merged commit. This needs fetch-depth: 0, which that checkout did not set.
  • The release-notes extraction interpolated the version into an awk regex, where [0.3.0] is a character class rather than a literal. Whether the escaping survived depended on the awk in use: mawk keeps the backslash so it worked on ubuntu-latest, but gawk drops it and matches nothing. Had the runner image ever switched, every release would have failed the non-empty guard with no obvious cause. The heading is now matched by prefix with index(), so no awk flavour can turn a release into an empty description.
  • Issue links are inlined rather than reference-style. A section ends at the first link reference block, so ([#52]) resolved in the changelog but rendered as literal text in the release description generated from it.

Verification

Extraction dry-run under gawk 5.0.0 against the updated changelog:

Version Bytes Result
0.3.0 2974 full section
0.2.0 2826 full section, matches the published v0.2.0 body
0.1.2 194 stops before the next heading
0.1.0 218 stops before the trailing comment and link block
9.9.9 0 empty, so the existing guard still fails the release

72/72 tests pass locally; the generated anim-config-version.cmake reports 0.3.0.

After merge

The misplaced v0.3.0 tag is deleted and re-created on the merge commit, then pushed to publish the release. Anything pinned to 85de526 needs repointing.

…der gawk

A tag pushed to a pull request's pre-merge branch tip builds and tests
green, but squash-merging rewrites the commit, so the tag ends up on a
commit reachable only from the tag itself. v0.3.0 was pushed that way.
Check that the tagged commit is an ancestor of main before publishing.

The release-notes extraction interpolated the version into an awk regex,
where "[0.3.0]" is a character class rather than a literal. Whether the
escaping survived depended on the awk in use: mawk keeps the backslash,
so it worked on the runner, while gawk drops it and matches nothing.
Match the heading by prefix with index() instead, so no awk flavour can
turn a released version into an empty description.
Close the [Unreleased] section as [0.3.0] and bump the project version,
which had been left at 0.2.0 and is the single source for the installed
find_package config.

Inline the issue links rather than keeping them as reference definitions:
the release workflow ends a section at the first link reference block, so
reference-style links resolve in the changelog but not in the release
description generated from it.
@keithlostracco
keithlostracco merged commit 91a85c1 into main Jul 26, 2026
12 checks passed
@keithlostracco
keithlostracco deleted the release/0.3.0 branch July 26, 2026 18:33
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