Skip to content

chore: wire release-please to bump CMake + version.hpp on every release#10

Merged
Swately merged 1 commit into
mainfrom
feat/release-please-extra-files
May 19, 2026
Merged

chore: wire release-please to bump CMake + version.hpp on every release#10
Swately merged 1 commit into
mainfrom
feat/release-please-extra-files

Conversation

@Swately
Copy link
Copy Markdown
Owner

@Swately Swately commented May 19, 2026

Summary

release-please was installed in #9 but its extra-files arrays were empty — it only bumped .release-please-manifest.json on each release, leaving the actual source-of-truth version constants stale.

Current state of versions before this PR:

Source Value Reality
.release-please-manifest.json (phyriad) 1.0.3 ✓ matches latest tag
.release-please-manifest.json (ayama) 0.1.3 ✓ matches latest tag
framework/_meta/include/phyriad/version.hpp 1.0.0 ✗ stuck 3 releases behind
CMakeLists.txt (root) VERSION 1.0.0 + rc2 ✗ stuck 3 releases behind + stale prerelease
apps/ayama/CMakeLists.txt VERSION 0.1.0 ✗ stuck 3 releases behind

Result: every binary in the v1.0.3 ZIPs reports its compile-time version as 1.0.0. The upcoming "check for updates" feature would always report "update available" because the embedded version is wrong.

Fix

  1. Sync all source-of-truth files to current released versions (1.0.3 / 0.1.3) and drop the stale rc2 tag.
  2. Add markers # x-release-please-version, // x-release-please-major/minor/patch on the lines release-please needs to rewrite. They sit inside trailing comments — zero compile-time impact.
  3. Create apps/ayama/core/include/ayama/version.hpp mirroring the framework's. Lives in ayama_core which already exposes its include dir as PUBLIC, so all Ayama binaries pick it up transitively.
  4. Populate extra-files in release-please-config.json for both packages.

After this lands

A fix: or feat: commit on main triggers a release-please PR that bumps:

  • .release-please-manifest.json
  • CHANGELOG.md
  • CMakeLists.txt (root or ayama, depending on which package bumped)
  • framework/_meta/include/phyriad/version.hpp (phyriad bump)
  • apps/ayama/core/include/ayama/version.hpp (ayama bump)

All in lock-step. Merging the PR tags the commit; existing release.yml / release-ayama.yml workflows take over and ship the ZIP.

Foundation for the version-check feature

With versions now embedded reliably in compiled binaries, the upcoming ayama-ui feature can GET https://api.github.com/repos/Swately/phyriad/releases and compare AYAMA_VERSION_STRING to the latest ayama-v* tag.

Test plan

  • Local build verified — ayama-ui.exe links clean.
  • CI green.
  • Next feat: / fix: commit verifies release-please rewrites all four files in its PR.

🤖 Generated with Claude Code

release-please was installed in PR #9 but its `extra-files` arrays
were empty — it only bumped .release-please-manifest.json on each
release, leaving the actual source-of-truth version constants stale:

  framework/_meta/include/phyriad/version.hpp  stuck at 1.0.0
  CMakeLists.txt                                stuck at 1.0.0 + rc2
  apps/ayama/CMakeLists.txt                     stuck at 0.1.0

GitHub Releases meanwhile advanced to v1.0.3 / ayama-v0.1.3.

This commit:

1. Sync all source-of-truth version files to the currently released
   versions (1.0.3, 0.1.3) and drop the now-stale 'rc2' prerelease
   tag — every public release shipped so far has been stable.
2. Add x-release-please-{major,minor,patch,version} marker comments
   on the four lines release-please needs to rewrite on each future
   release. The markers stay inert at compile time (they sit inside
   trailing `# ...` / `// ...` comments).
3. Create apps/ayama/core/include/ayama/version.hpp mirroring the
   framework's version.hpp — same MAJOR/MINOR/PATCH/MAKE_VERSION/STRING
   macros. Lives under ayama_core which already exposes its include
   dir as PUBLIC, so ayama-ui / ayama-cli / ayama-agent pick it up
   transitively.
4. Populate `extra-files` in release-please-config.json so the
   release PR rewrites all four files in lock-step with the manifest
   bump.

After this lands, a `fix:` or `feat:` commit to main triggers a
release-please PR that updates BOTH the manifest AND the in-source
version constants. Merging that PR tags the commit; release.yml /
release-ayama.yml then build a ZIP whose .exe knows its own version
at runtime — the foundation for the upcoming "check for updates"
feature in ayama-ui (PR forthcoming).

Verified locally: ayama-ui.exe links clean on MinGW gcc 15.2 with the
new headers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Swately Swately force-pushed the feat/release-please-extra-files branch from c8ebbc9 to 5a9de4f Compare May 19, 2026 12:27
@Swately Swately merged commit 1dfc8d3 into main May 19, 2026
8 checks passed
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