50 lines
1.2 KiB
Markdown
50 lines
1.2 KiB
Markdown
# Release Flow (Main + Nightly + Dev)
|
|
|
|
This project uses three release channels:
|
|
|
|
- `dev`: playground for experiments
|
|
- `nightly`: integration and test channel
|
|
- `main`: stable channel
|
|
|
|
## Rules
|
|
|
|
- Experimental work goes to `dev`.
|
|
- Feature work for release goes to `nightly`.
|
|
- Promote from `nightly` to `main` with `--squash` only.
|
|
- `main` version has no suffix (`0.1.60`).
|
|
- `nightly` version uses `-nightly` and is always at least one patch higher than `main` (`0.1.61-nightly`).
|
|
- `dev` version uses `-dev` (`0.1.62-dev`).
|
|
- Keep changelogs split:
|
|
- `CHANGELOG-DEV.md`
|
|
- `CHANGELOG-NIGHTLY.md`
|
|
- `CHANGELOG.md`
|
|
|
|
## Nightly publish
|
|
|
|
1) Finish changes on `nightly`.
|
|
2) Bump addon version in `addon/addon.xml` to `X.Y.Z-nightly`.
|
|
3) Build and publish nightly repo artifacts.
|
|
4) Push `nightly`.
|
|
|
|
## Promote nightly to main
|
|
|
|
```bash
|
|
git checkout main
|
|
git pull origin main
|
|
git merge --squash nightly
|
|
git commit -m "release: X.Y.Z"
|
|
```
|
|
|
|
Then:
|
|
|
|
1) Set `addon/addon.xml` version to `X.Y.Z` (without `-nightly`).
|
|
2) Build and publish main repo artifacts.
|
|
3) Push `main`.
|
|
4) Optional tag: `vX.Y.Z`.
|
|
|
|
## Local ZIPs (separated)
|
|
|
|
- Dev ZIP output: `dist/local_zips/dev/`
|
|
- Main ZIP output: `dist/local_zips/main/`
|
|
- Nightly ZIP output: `dist/local_zips/nightly/`
|