Prepare the 0.3.0 release, and keep tags off pre-squash commits - #55
Merged
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
v0.3.0tag was pushed to85de526, the pre-squash tip of the branch behind #54. Squash-merging rewrote that commit as6026ca2, so the tag points at a commit reachable only from the tag. The release workflow didn't publish it, correctly:CHANGELOG.mdhad 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 to0.3.0. It had been left at0.2.0, and it is the single source of the version for the installedfind_packageconfig, so tagging without this would have shipped a package claiming 0.2.0.Workflow fixes
mainbefore publishing, and fails with a message saying to re-tag the merged commit. This needsfetch-depth: 0, which that checkout did not set.[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 onubuntu-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 withindex(), so no awk flavour can turn a release into an empty description.([#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:
72/72 tests pass locally; the generated
anim-config-version.cmakereports0.3.0.After merge
The misplaced
v0.3.0tag is deleted and re-created on the merge commit, then pushed to publish the release. Anything pinned to85de526needs repointing.