Repository navigation
fix(release): Correct the release baseline and track the CMake version - #22
Merged
Merged
Conversation
Two problems with the release-please setup, both visible in the pending release PR. `.release-please-manifest.json` said 0.1.0, but 0.1.1 and 0.1.2 were both released back in 2017. release-please therefore proposed 0.1.1 again, which would have given two different artifacts the same version. Set the baseline to 0.1.2 so the next release is 0.1.3. Separately, `CMakeLists.txt` is declared as a generic extra-file, but the generic updater only rewrites lines carrying an `x-release-please-version` annotation and there was none. So `project(libcanon VERSION ...)` was never updated and had sat at 0.1.0 since 2017, which is the version that ends up in the installed `libcanon-config-version.cmake` and therefore governs `find_package(libcanon <version>)` for downstream users. Catch it up to 0.1.2 and add the annotation so it is maintained from now on. Also backfill the changelog entries for the two 2017 releases, so it does not read as though 0.1.0 was followed by 0.1.3. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adjusts the project’s release-please metadata and tracked version sources so future automated releases are based on the latest historical release (0.1.2) and the CMake project version is kept in sync.
Changes:
- Update release-please manifest baseline from
0.1.0to0.1.2to prevent re-releasing an already-shipped version. - Annotate
CMakeLists.txt’sproject(... VERSION ...)line so release-please maintains the CMake version going forward. - Backfill
CHANGELOG.mdentries for the historical 20170.1.1and0.1.2releases.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| CMakeLists.txt | Updates project() version to 0.1.2 and adds x-release-please-version annotation for ongoing automation. |
| CHANGELOG.md | Adds missing historical changelog entries for 0.1.1 and 0.1.2 to preserve release history continuity. |
| .release-please-manifest.json | Corrects the release baseline to 0.1.2 so the next automated release computes as 0.1.3. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.
Two problems with the release-please setup. The first is what #10 exposes; the second I found while checking it.
1. The baseline is wrong, so #10 would re-release 0.1.1
.release-please-manifest.jsonsays0.1.0. But 0.1.1 and 0.1.2 both shipped, back in 2017:So release-please computed the next version as 0.1.1, and #10 proposes exactly that. There is no hard tag collision, because release-please tags as
libcanon-v0.1.1while the 2017 tags are bare0.1.1— which is arguably worse, since the clash would be silent. Two different artifacts would both be called libcanon 0.1.1, and the changelog would claim 0.1.1 was released in 2026 with a set of fixes that has nothing to do with the 2017 one.Setting the baseline to 0.1.2 makes the next release 0.1.3, which is what it should be.
2.
CMakeLists.txthas never had its version updatedrelease-please-config.jsonlistsCMakeLists.txtas an extra-file of typegeneric. The generic updater only rewrites lines carrying anx-release-please-versionannotation, and there was none. So this line had sat unchanged since 2017:That is not cosmetic.
CMakeLists.txtfeedswrite_basic_package_version_file, so the stale version lands in the installedlibcanon-config-version.cmakeand governsfind_package(libcanon <version>)for anyone consuming the installed package. Confirmed by inspecting the generated file: it carried0.1.0before this change and0.1.2after.Fixed by catching the line up to 0.1.2 and adding the annotation, so release-please maintains it from here.
3. Changelog backfill
CHANGELOG.mdonly records 0.1.0, so without this the history would appear to jump from 0.1.0 straight to 0.1.3. Added entries for the two 2017 releases, taken from their release notes and commits.One of them is a nice coincidence: the 0.1.1 release of February 2017 was "a serious bug in orbit computing for eldag nodes has been fixed" (commit
92efd09, "Fix orbit formation for eldag nodes"). #13 has just fixed a different bug in the same function.After this merges
release-please will regenerate the pending release PR against the corrected baseline, and it should then propose 0.1.3 carrying all of #7, #8, #9, #11, #12, #13, #15, #18 and #21. #10 can be closed in favour of that, or will be updated in place.
ctest3/3, no build changes beyond the version string.🤖 Generated with Claude Code