Version Increment
Use this skill when the user provides a new version number and wants the repo prepared for tagging.
Inputs
new_version(required), semver-like string (example:3.0.4).release_date(optional). If omitted, use local current date (YYYY-MM-DD).
Known Hard-Coded Version Locations (current repo)
CMakeLists.txt(project(... VERSION x.y.z)).source/bind/python/cea/__init__.py(__version__ = "x.y.z").docs/source/conf.py(release = '...').project.md(version: x.y.z) — FORD doc-generator metadata; currently unreferenced elsewhere in the repo/CI, kept accurate in case FORD is reintroduced.Doxyfile(PROJECT_NUMBER = x.y.z) — Doxygen config invoked by docs.yml; feeds the Doxygen->Breathe->Sphinx pipeline but the value itself doesn't appear to render on the published site.
Update these locations and verify no additional hard-coded version literals remain outside generated docs.
Workflow
- Validate
new_versionformat and ensure it is greater than the current version. - Update the five known hard-coded version locations.
- Search for additional stale literals:
- Prefer
rg -n "<old_version>|release\s*=|__version__\s*=|VERSION\s+[0-9]+\.[0-9]+\.[0-9]+" - Exclude generated docs:
docs/_build/,docs/doxygen/.
- Prefer
- Update
CHANGELOG.md:- Move current
## [Unreleased]entries into a new release section## [<new_version>] - <release_date>. - Recreate an empty
## [Unreleased]section at the top with standard subsections used by this repo.
- Move current
- Run sanity checks:
- Ensure changed files are limited to release metadata/docs unless user asked for more.
- Optionally run targeted tests/docs build if requested.
- Report exact files changed and any warnings before tagging.
Output Format
- New version and date used.
- List of updated files with one-line reason each.
- Warnings/blockers before tag creation.
- Suggested tag command:
git tag v<new_version>(only if user asks to tag).
Guardrails
- Do not create/push tags unless explicitly requested.
- Do not edit generated docs under
docs/_build/ordocs/doxygen/. - Keep changelog wording user-visible and avoid implementation-only noise.