This project is part synth lab, part sketchbook. Shipping a release should feel more like tuning an instrument than chasing a corporate checklist, but we still want repeatable moves. Here's the ritual.
- Read the
CHANGELOG.mdand decide whether you're cutting a patch, minor, or major release. Stay honest about breaking changes. - Update the version constant wherever the firmware and scripts expose it
(usually
include/seedbox_version.handscripts/version.py). - Commit the bumps in their own commit or alongside the changelog update.
- Move items from the
Unreleasedsection ofCHANGELOG.mdinto a new## [x.y.z] - YYYY-MM-DDsection. - Write notes like you're teaching a friend how the release feels, not just what files moved.
- Mention any remaining TODOs, especially hardware fixtures or datasets still brewing.
- Create an annotated tag:
git tag -a vx.y.z -m "SeedBox vx.y.z". - Push tags:
git push --follow-tags origin main(or the branch you're blessing). - Draft the GitHub release notes by pasting the changelog entry and sprinkling in demo audio links if you have them.
- Kick off the PlatformIO matrix:
pio test -e nativelocally before you push. - After the tag lands, make sure GitHub Actions (or your CI flavor) turns green for both the native and hardware builds.
- If something flakes, fix it before you call the release done. No haunted builds allowed.
- Snap a photo or grab audio of the release jam for the docs.
- Open a fresh
Unreleasedsection with at least one ambition for the next version so future-you has a runway. - Share the release in the community channel; teach someone what you learned.
Keep this checklist human. If a step feels stiff, rewrite it — but never skip it.