Release Management¶
COSEDA uses two Homebrew tracks:
coseda: stable releases from version tags.coseda-nightly: beta builds from the development branch.
Branches¶
Use feature branches for ordinary work. Merge tested changes into develop when they are ready for beta testing. Merge develop into main only when the current state is ready to become the next stable release.
Recommended flow:
git switch main
git pull
git switch -c feature/my-change
After review and testing, merge the feature branch into develop. Nightly Homebrew builds are published from scheduled or manual GitLab pipelines on develop.
When a stable release is ready:
git switch main
git merge --ff-only develop
git tag 0.9.8
git push origin main 0.9.8
The tag pipeline updates the stable coseda Homebrew formula. Do not tag a commit unless it should become the user-facing stable version.
Homebrew¶
The stable formula is updated by the existing tag pipeline.
The nightly formula is updated by the bump-homebrew-nightly-tap CI job. It creates or updates Formula/coseda-nightly.rb in the Homebrew tap using the exact Git commit archive from the develop pipeline.
Set up a GitLab scheduled pipeline on the develop branch to publish nightly builds automatically. A manual web pipeline on develop can also run the nightly job.
The stable and nightly formulas intentionally conflict because both install the coseda command and app bundle. Users should switch tracks with:
brew uninstall coseda
brew install coseda-nightly
or:
brew uninstall coseda-nightly
brew install coseda