Skip to content

Add a changelog, and stop the release tooling from stranding tags - #2

Merged
samandrk merged 2 commits into
mainfrom
release-tooling
Jul 25, 2026
Merged

samandrk merged 2 commits into
mainfrom
release-tooling

Conversation

@samandrk

Copy link
Copy Markdown
Contributor

Three gaps in the release process, all visible after cutting v0.1.2.

The README's FetchContent pin was three releases stale. It still said v0.1.0, so the documented way to consume the library handed every new user a build without anything released since. bump_version.cmake only rewrote version.h, so nothing kept the pin current and it drifted silently through two releases. The script now rewrites it as well, and fails loudly if the pattern stops matching rather than quietly skipping it.

Tags were being stranded locally. Git pushes no tags by default, and neither a plain git push nor a GUI client's Push button sends one. The release workflow triggers on the tag, so a tag left behind looks like a release that simply never happened — no error, nothing to notice. The fix is push.followTags in the repo's local config, which the script now sets: any push then carries annotated tags reachable from the commits it sends. -DPUSH=ON makes the script push the release commit and tag itself for anyone who would rather not rely on config.

No changelog. The auto-generated release notes name a PR title. That does not tell someone upgrading from 0.1.1 that paginated_query changed how it behaves on an oversized or incomplete page — it no longer resets, and an incomplete page is now withheld from results rather than published. CHANGELOG.md covers 0.1.0 through 0.1.2.

Testing

No library code changed, so CI is a regression check only.

The script was run end to end at a throwaway version and the result inspected: version.h and the README pin both rewritten, release commit and annotated tag created, push.followTags set. Then reverted — no v9.9.9 exists.

samandrk added 2 commits July 25, 2026 02:48
Three release-process gaps, all found after cutting v0.1.2.

The README's FetchContent snippet still pinned v0.1.0, three releases
stale, so the documented way to consume the library handed new users an
old one. bump_version.cmake only ever rewrote version.h, so nothing kept
that pin current. It now rewrites the pin too, and fails loudly if the
pattern stops matching rather than silently skipping it.

Git pushes no tags by default, and neither a plain `git push` nor a GUI
client's Push button sends one. The release workflow triggers on the tag,
so a tag left behind looks like a release that silently never happened —
which is what kept happening, and it had to be fixed by hand each time.
The script now sets push.followTags in the repo's local config, so any
push carries annotated tags reachable from the commits it sends, and
takes -DPUSH=ON to push the release commit and tag itself.

Added CHANGELOG.md covering 0.1.0 through 0.1.2. The auto-generated
release notes name a PR title, which does not tell someone upgrading that
v0.1.2 changed how paginated_query behaves on an oversized or incomplete
page.

Verified by running the script end to end at a throwaway version: both
files rewritten, commit and annotated tag created, push.followTags set.
The convex-js split-cursor fix was recorded as #54981, which is their
internal changeset id, not a GitHub issue. Written as
get-convex/convex-js#54981 it renders as a cross-repo reference to
something that does not exist. Point at commit 7ceee3e instead.
@samandrk
samandrk merged commit cc6551d into main Jul 25, 2026
3 checks passed
@samandrk
samandrk deleted the release-tooling branch July 25, 2026 10:03
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