How do I bump the project version?

Table of Contents

The version bump is housekeeping that always accompanies Open a new sprint. Land it as a separate commit on the same sprint-open PR.

1. Question

How do I bump ORE Studio's project version across every file that mentions it?

2. Answer

Five files carry the version string or the last-released screenshot. Edit them as a single commit.

  1. Pick the new version. The project follows 0.0.<N> where N tracks the sprint number; bump N by one.
  2. Top-level CMakeLists.txt:

    -project(OreStudio VERSION 0.0.<OLD> LANGUAGES CXX
    +project(OreStudio VERSION 0.0.<NEW> LANGUAGES CXX
    
  3. vcpkg.json:

    -    "version-string": "0.0.<OLD>",
    +    "version-string": "0.0.<NEW>",
    
  4. The dsh plugin projects/ores.dsh_environment/package.json carries the same version, aligned with the product since sprint 28:

    -  "version": "0.0.<OLD>",
    +  "version": "0.0.<NEW>",
    

    The GitHub workflows need no edit. They upload packages by pattern: the macOS and Windows nightlies on every run, and the continuous Linux run on a tag.

  5. readme.org — four things:

    a. The sprint badge (line 25): update both the Sprint-<N> label and the href link sprint_<N>/sprint.html to the new sprint number:

    -<a href="...sprint_<OLD>/sprint.html"><img ... src=".../Sprint-<OLD>-blue.svg"/></a>
    +<a href="...sprint_<NEW>/sprint.html"><img ... src=".../Sprint-<NEW>-blue.svg"/></a>
    

    b. The "PRs since" badge: update the label and both date filters to the date of the version tag. Use the shields.io search badge, img.shields.io/github/issues-search, which shows the number of merged pull requests. A static badge shows only its words and no number. Do not use badge/dynamic/json with a GitHub Search API URL: shields.io rejects the url parameter when the inner URL contains query-string syntax.

    -<a href="...merged%3A%3E%3D<OLD-DATE>"><img alt="PRs since v0.0.<OLD>" src="https://img.shields.io/github/issues-search/OreStudio/OreStudio?query=is%3Apr%20is%3Amerged%20merged%3A%3E%3D<OLD-DATE>&label=PRs%20since%20v0.0.<OLD>&color=blue"/></a>
    +<a href="...merged%3A%3E%3D<NEW-DATE>"><img alt="PRs since v0.0.<NEW>" src="https://img.shields.io/github/issues-search/OreStudio/OreStudio?query=is%3Apr%20is%3Amerged%20merged%3A%3E%3D<NEW-DATE>&label=PRs%20since%20v0.0.<NEW>&color=blue"/></a>
    

    c. The "commits-since" badge, which uses the previous version tag — so when bumping from 0.0.<OLD> to 0.0.<NEW>, the commits-since badge moves from v0.0.<OLD-1> to v0.0.<OLD>.

    d. The screenshot asset reference: the readme shows the last released version, so point it at the just-closed sprint's screenshot — assets/images/ore_studio-v0.0.<OLD>.png, captured at that sprint's close (see How do I generate release notes? step 6). It should already exist by the time you're opening the next sprint; if it doesn't, capture it now rather than leaving the reference stale:

    -[[./assets/images/ore_studio-v0.0.<OLD-1>.png]]
    +[[./assets/images/ore_studio-v0.0.<OLD>.png]]
    
  6. index.org (the site homepage) has its own copy of the same screenshot, near the top — update it identically and don't forget it, it's easy to miss since it's a separate file from readme.org:

    -[[./assets/images/ore_studio-v0.0.<OLD-1>.png]]
    +[[./assets/images/ore_studio-v0.0.<OLD>.png]]
    
  7. Verify. Sanity-check that nothing else mentions the old version:

    grep -rn "0\.0\.<OLD>" \
        CMakeLists.txt vcpkg.json readme.org index.org \
        projects/ores.dsh_environment/package.json
    

    Expect zero matches.

  8. Commit as [build] Bump version to 0.0.<NEW> on the sprint-open branch. No separate PR needed.

3. Script

No wrapper — the five files are touched manually because every release confirms the diffs by eye.

4. Tested by

The package uploads set if-no-files-found: error, so a release build that passes and produces no package fails the run.

5. See also

Emacs 29.3 (Org mode 9.6.15)