# 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/`