Files

51 lines
1.2 KiB
Markdown

# Releasing
This repo uses Semantic Versioning and Release Please.
## Source Of Truth
Human-edited version source:
- `VERSION`
Mirrors and checks:
- `__init__.py` reads `VERSION` at runtime
- `.release-please-manifest.json` is synced from `VERSION` with `python tools/version_sync.py write`
- CI verifies version alignment with `python tools/version_sync.py check`
## Normal Maintainer Flow
1. Update `VERSION`.
2. Run `python tools/version_sync.py write`.
3. Run `python tools/validate_styles.py`.
4. Run `python tools/audit_styles.py`.
5. If packs changed, run `python tools/sync_legacy_styles.py` or `python tools/generate_style_packs.py`.
6. Update `CHANGELOG.md` and any user-facing docs that changed behavior.
7. Merge to `main`.
8. Release Please updates or opens the release PR.
9. Merge the release PR.
## CI
The repository CI job runs on pushes to `main` and on pull requests. It checks:
- version sync
- style validation
- style audit
## Manual Release
If automation is disabled:
1. Update `VERSION`.
2. Run `python tools/version_sync.py write`.
3. Update `CHANGELOG.md`.
4. Commit the release metadata.
5. Tag the commit:
```bash
git tag vX.Y.Z
git push --tags
```