process: define release model #12

Closed
opened 2026-04-25 16:16:56 +00:00 by barrettruth · 0 comments
barrettruth commented 2026-04-25 16:16:56 +00:00

Establish how releases are cut for v0.1.0 and beyond. Currently no tag, no changelog, no release notes.

Decisions to make

Versioning

  • Confirm semver. v0.x.y while pre-stable; 1.0 once API is locked
  • Public API surface = the four ops (toggle / promote / resize-master / relayout) + the @mosaic-* options + the algorithm contract. Document what counts as breaking.

Tagging

  • Tag format v0.1.0 (with the v prefix), GPG-signed
  • Annotated tags only (git tag -s -a)
  • One commit on main per release tag

Changelog

  • Decide: hand-written CHANGELOG.md vs auto-generated from conventional commits vs GitHub Releases auto-generation
  • If hand-written: format (Keep-a-Changelog style?)
  • If auto: which tool, where it runs

Release workflow

  • GitHub Release with notes (draft → publish)
  • Tarball / signed source archive — does GitHub auto-do this?
  • Announcement plan (HN? r/tmux? r/unixporn? blog?)

Distribution

  • Confirm flake input pinning works for downstream nix users
  • TPM compatibility verified end-to-end (clone fresh, no cache)
  • Manual install path: clone + run-shell — verify
  • Future: nixpkgs PR (probably not for v0.1.0; document the path)

Deliverable

A short .github/RELEASE_PROCESS.md (or section in CONTRIBUTING.md) with:

  1. The semver definition for this project
  2. The exact commands to cut a release
  3. The post-release checklist
Establish how releases are cut for v0.1.0 and beyond. Currently no tag, no changelog, no release notes. ## Decisions to make ### Versioning - [ ] Confirm semver. v0.x.y while pre-stable; 1.0 once API is locked - [ ] Public API surface = the four ops (`toggle` / `promote` / `resize-master` / `relayout`) + the `@mosaic-*` options + the algorithm contract. Document what counts as breaking. ### Tagging - [ ] Tag format `v0.1.0` (with the v prefix), GPG-signed - [ ] Annotated tags only (`git tag -s -a`) - [ ] One commit on main per release tag ### Changelog - [ ] Decide: hand-written CHANGELOG.md vs auto-generated from conventional commits vs GitHub Releases auto-generation - [ ] If hand-written: format (Keep-a-Changelog style?) - [ ] If auto: which tool, where it runs ### Release workflow - [ ] GitHub Release with notes (draft → publish) - [ ] Tarball / signed source archive — does GitHub auto-do this? - [ ] Announcement plan (HN? r/tmux? r/unixporn? blog?) ### Distribution - [ ] Confirm flake input pinning works for downstream nix users - [ ] TPM compatibility verified end-to-end (clone fresh, no cache) - [ ] Manual install path: clone + run-shell — verify - [ ] Future: nixpkgs PR (probably not for v0.1.0; document the path) ## Deliverable A short `.github/RELEASE_PROCESS.md` (or section in CONTRIBUTING.md) with: 1. The semver definition for this project 2. The exact commands to cut a release 3. The post-release checklist
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
barrettruth/tmux-mosaic#12
No description provided.