Add bin/omarchy-release: the interactive release front door
A release train has three human moments, each one command: start (release branch on basecamp/omarchy + notes staging PR + edge→rc advance for minor/major), rc (pin both PKGBUILDs to the branch head as X.Y.ZrcN on the pkgs rc branch, trigger the rc channel build, wait for publish, optional RC ISO), and ship (final pins → promote rc→stable → tag → pins to master → GitHub release from the staging PR body → final ISO → website bump, each step skip-if-done so a crashed run resumes). Bare omarchy-release is the shepherd: it derives the train state from observed reality (remote branches, rc-branch pins, published channel dbs, tags — no state files) and offers the correct next step. Versions are inferred from branch names (v4-0-2 ⇒ 4.0.2rcN ⇒ v4.0.2). ship refuses to promote a commit no RC was cut from. pick is a multi-select over merged quattro PRs, cherry-picking merge commits. doctor pre-flights every credential and connection. self-test wired into CI. bin/omarchy-pkgs stays as the pin engine, driven with its db URL pointed at the rc channel and pins committed to the standing rc branch (rebuilt as master + pins per cut and force-pushed; the server rc worktree follows with reset --hard).
This commit is contained in:
1 parent
dac5ba2b45
commit
2cea400cd1
6 files changed
+950
-4
No files matched your search
@@ -40,6 +40,27 @@ docker run --rm --platform linux/arm64 alpine:latest uname -m
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Cutting an Omarchy release
|
||||
|
||||
`bin/omarchy-release` is the front door. A release train has three human
|
||||
moments, each one command — and bare `omarchy-release` observes reality
|
||||
(branches, pins, published channels, tags) and walks you to the next one:
|
||||
|
||||
```bash
|
||||
bin/omarchy-release # shepherd: status + guided next step
|
||||
bin/omarchy-release start 4.0.2 # open the train: branch v4-0-2 + staging PR
|
||||
bin/omarchy-release pick # choose merged PRs to cherry-pick (multi-select)
|
||||
bin/omarchy-release rc # publish the next 4.0.2rcN to the rc channel
|
||||
bin/omarchy-release ship # final pins, promote rc → stable, tag,
|
||||
# GitHub release, ISO, website — one swoop
|
||||
bin/omarchy-release doctor # verify credentials/connections up front
|
||||
```
|
||||
|
||||
Versions are inferred from branch names (`v4-0-2` ⇒ `4.0.2rcN` ⇒ tag
|
||||
`v4.0.2`); `start` is the only place a version is typed. Every command is
|
||||
idempotent — re-runs skip whatever is already done. `ship` refuses to promote
|
||||
a commit no RC was cut from.
|
||||
|
||||
### Full release
|
||||
|
||||
Ship the tested rc channel to stable (copies packages + signatures, then
|
||||
|
||||
Reference in new issue
Block a user