Versioning — BirdLense Hub
Scheme
We follow Semantic Versioning: MAJOR.MINOR.PATCH.
| Part | When to bump |
|---|---|
| MAJOR | Breaking API or configuration changes |
| MINOR | New functionality, backward compatible |
| PATCH | Bug fixes, small safe improvements |
Examples:
0.1.0→0.1.1— bugfix0.1.1→0.2.0— new feature (e.g. new motion trigger type)1.0.0→2.0.0— breaking change (e.g. config format)
Where the version lives
| File | Purpose |
|---|---|
VERSION |
Single source of truth (repo root) |
app/ui/package.json |
UI package version |
app/web/openapi.yaml |
API version in OpenAPI |
Bump the same version string everywhere below (#120 checklist).
- Root
VERSION app/ui/package.json→versionapp/web/openapi.yaml→info.versionmkdocs.yml→extra.site_version(andoverrides/main.htmlbanner if needed)CHANGELOG.md
Verify from the repo root:
python3 scripts/check-docs-version.py
This checks VERSION against mkdocs.yml, package.json, and openapi.yaml (also run in CI before MkDocs). The site banner comes from overrides/main.html (announce block), not theme.announcement in YAML.
Releases and tags
- Before release: bump
VERSION,package.json,openapi.yaml, and editCHANGELOG.mdat the repository root (see Changelog for the canonical location). Close/update Issues and the Roadmap project board (see ROADMAP § Reporting and root CONTRIBUTING). - Commit:
git add -A && git commit -m "Release v0.1.0" - Tag:
git tag -a v0.1.0 -m "Release v0.1.0" - Push:
git push && git push origin v0.1.0 - GitHub Release: create from tag; paste notes from CHANGELOG
GitHub Actions after a release
- Docker: docker-publish.yml —
main+ published Release →latest+ semver tag. - Docs site: docs-pages.yml — deploy Pages только с ветки
main(push по путям илиworkflow_dispatch). После merge релиза этого достаточно; деплой с тега не используется (ограничения окруженияgithub-pages).
Wiki (optional): WIKI_AUTOMATION.
CHANGELOG
Format: Keep a Changelog.
Sections: Added, Changed, Deprecated, Removed, Fixed, Security.
Upgrades
- Minor / patch (
0.x.y): usuallymake deployormake pull; user config and data are preserved. - Major: read release notes — migrations may be required.