Update README for the three-channel pipeline and remote control
Sections that still described the old two-channel, host-only world: - command scope: the host-tree commands forward over ssh now, and advance replaces the deprecated migrate - global flags: --mirror takes edge|rc|stable, and --local exists - build examples and directory structure: the rc channel and the release lock - release section: omarchy-release is the front door; omarchy-pkgs is the pin engine it drives (and still usable directly) - management: bin/repo timers, the backoff state files, and clearing a stale lock, instead of raw systemctl invocations that omitted the rc units - a leftover reference to the 6-hourly timer as the trigger backstop Also fixed an anchor that pointed at the section containing the link rather than the Quick Start section it names.
This commit is contained in:
1 parent
1512cb48d8
commit
aa0a836c1c
1 file changed
+43
-29
@@ -138,10 +138,12 @@ refuses to run unscoped when that database is missing. Unscoped builds belong on
|
|||||||
the repository host, where `bin/repo release` does the same job against a real
|
the repository host, where `bin/repo release` does the same job against a real
|
||||||
database.
|
database.
|
||||||
|
|
||||||
Every other command in `bin/` — `sign`, `promote`, `update`, `clean`, `migrate`,
|
Every other command in `bin/` — `sign`, `promote`, `update`, `clean`,
|
||||||
`remove`, `sync`, `release` — works on the published tree directly and is meant
|
`advance`, `remove`, `sync`, `release` — works on the published tree. Run them
|
||||||
to run on the repository host. `build`, `push` and `deploy` are the three that
|
from anywhere: with a repository host configured they forward over ssh and run
|
||||||
may run elsewhere.
|
there (see [Build trigger and the build host](#build-trigger-and-the-build-host)),
|
||||||
|
and `--local` forces execution on the current machine. `build`, `push` and
|
||||||
|
`deploy` are the three meant to run on a build machine rather than the host.
|
||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
|
|
||||||
@@ -149,7 +151,8 @@ may run elsewhere.
|
|||||||
|
|
||||||
These flags can be used with all commands:
|
These flags can be used with all commands:
|
||||||
|
|
||||||
- `--mirror <edge|stable>`: Selects the repository mirror (default: `edge`).
|
- `--mirror <edge|rc|stable>`: Selects the channel (default: `edge`).
|
||||||
|
- `--local`: Run on this machine instead of forwarding to the repository host.
|
||||||
- `--arch <x86_64|aarch64>`: Selects the target architecture (default: `x86_64`).
|
- `--arch <x86_64|aarch64>`: Selects the target architecture (default: `x86_64`).
|
||||||
|
|
||||||
### Build
|
### Build
|
||||||
@@ -157,7 +160,8 @@ These flags can be used with all commands:
|
|||||||
```bash
|
```bash
|
||||||
bin/repo build # All packages (x86_64, edge)
|
bin/repo build # All packages (x86_64, edge)
|
||||||
bin/repo build --arch aarch64 # ARM64
|
bin/repo build --arch aarch64 # ARM64
|
||||||
bin/repo build --mirror stable # Stable mirror
|
bin/repo build --mirror rc # Release-candidate channel
|
||||||
|
bin/repo build --mirror stable # Stable channel
|
||||||
bin/repo build --package yay cursor-bin # Specific packages
|
bin/repo build --package yay cursor-bin # Specific packages
|
||||||
bin/repo build --dry-run # Show what would build
|
bin/repo build --dry-run # Show what would build
|
||||||
```
|
```
|
||||||
@@ -389,6 +393,8 @@ bin/repo advance --from edge --to rc # Open a train: carry edge for
|
|||||||
bin/repo advance --from edge --to rc --package x # Deliberate single-package advance
|
bin/repo advance --from edge --to rc --package x # Deliberate single-package advance
|
||||||
bin/repo advance --from rc --to stable --dry-run # Preview without changing files
|
bin/repo advance --from rc --to stable --dry-run # Preview without changing files
|
||||||
bin/repo bootstrap-rc # One-time initial rc seed from stable
|
bin/repo bootstrap-rc # One-time initial rc seed from stable
|
||||||
|
bin/repo timers # Timer schedule, last runs, queues, backoff, lock
|
||||||
|
bin/omarchy-release # Release front door (start / pick / rc / ship)
|
||||||
bin/repo list # List package metadata
|
bin/repo list # List package metadata
|
||||||
bin/repo deploy # Build locally, then publish from the host
|
bin/repo deploy # Build locally, then publish from the host
|
||||||
bin/repo push # Upload local builds to the host and publish
|
bin/repo push # Upload local builds to the host and publish
|
||||||
@@ -418,11 +424,18 @@ bin/package-worktree v4l2-relayd # Create upstream/patched/current scratch w
|
|||||||
## Cutting an Omarchy Release
|
## Cutting an Omarchy Release
|
||||||
|
|
||||||
The `omarchy` and `omarchy-settings` packages are released as a pair, always
|
The `omarchy` and `omarchy-settings` packages are released as a pair, always
|
||||||
built from the same upstream commit of basecamp/omarchy. `bin/omarchy-pkgs`
|
built from the same upstream commit of basecamp/omarchy.
|
||||||
rewrites both PKGBUILDs in lockstep (same `_tag`/`_commit`/`pkgver`/
|
|
||||||
`sha256sums`), validates ordering with `vercmp`, commits, and pushes the
|
**Use `bin/omarchy-release`** (see [Cutting an Omarchy release](#cutting-an-omarchy-release)
|
||||||
current branch. On master it pokes the build host directly; from any other
|
in Quick Start) — it drives the whole train across all four repositories and
|
||||||
branch add `--pr` to open the release PR — merging it is what goes live.
|
calls the pin engine below for you.
|
||||||
|
|
||||||
|
`bin/omarchy-pkgs` is that engine, available directly for one-off pins and
|
||||||
|
debugging. It rewrites both PKGBUILDs in lockstep (same `_tag`/`_commit`/
|
||||||
|
`pkgver`/`sha256sums`), validates ordering with `vercmp`, commits, and pushes
|
||||||
|
the current branch. Driven by `omarchy-release` it pins to the release branch
|
||||||
|
on the `rc` branch and orders against the rc channel; invoked directly it
|
||||||
|
targets the current branch and edge.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bin/omarchy-pkgs release v4.0.0 # Final release from the upstream v4.0.0 tag
|
bin/omarchy-pkgs release v4.0.0 # Final release from the upstream v4.0.0 tag
|
||||||
@@ -480,7 +493,7 @@ on the current machine. `list`, `push`, `deploy`, and `setup` never forward
|
|||||||
|
|
||||||
Without a configured host, commands run locally — which on the build host
|
Without a configured host, commands run locally — which on the build host
|
||||||
itself (no `.repo-host` there) is exactly right, and elsewhere the exact
|
itself (no `.repo-host` there) is exactly right, and elsewhere the exact
|
||||||
commands to run are printed by the orchestrator, with the 6-hourly
|
commands to run are printed by the orchestrator, with the 5-minute
|
||||||
auto-release timer as the backstop.
|
auto-release timer as the backstop.
|
||||||
|
|
||||||
The host setting is any destination `ssh` accepts, resolved in this order:
|
The host setting is any destination `ssh` accepts, resolved in this order:
|
||||||
@@ -524,19 +537,14 @@ omarchy-pkgs/
|
|||||||
│ └── upstream.sh # Optional vendor release feed hook (non-AUR packages)
|
│ └── upstream.sh # Optional vendor release feed hook (non-AUR packages)
|
||||||
├── build/
|
├── build/
|
||||||
├── build-output/ # Unsigned packages (temporary)
|
├── build-output/ # Unsigned packages (temporary)
|
||||||
│ ├── edge/
|
│ ├── edge/ # (rc/ and stable/ alongside, each x86_64 + aarch64)
|
||||||
│ │ ├── x86_64/
|
│ ├── rc/
|
||||||
│ │ └── aarch64/
|
|
||||||
│ └── stable/
|
│ └── stable/
|
||||||
│ ├── x86_64/
|
|
||||||
│ └── aarch64/
|
|
||||||
├── pkgs.omarchy.org/ # Signed packages (production)
|
├── pkgs.omarchy.org/ # Signed packages (production)
|
||||||
│ ├── edge/
|
│ ├── .release.lock # Host-wide lock: one channel mutation at a time
|
||||||
│ │ ├── x86_64/
|
│ ├── edge/ # Each channel: x86_64/ and aarch64/
|
||||||
│ │ └── aarch64/
|
│ ├── rc/
|
||||||
│ └── stable/
|
│ └── stable/
|
||||||
│ ├── x86_64/
|
|
||||||
│ └── aarch64/
|
|
||||||
└── bin/ # CLI tools (on host)
|
└── bin/ # CLI tools (on host)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -846,16 +854,22 @@ hold secrets, so setup reports on them rather than creating them.
|
|||||||
### Management
|
### Management
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Check timer status
|
# Everything at a glance: schedules, last runs, queues, backoff, lock
|
||||||
systemctl list-timers omarchy-*
|
bin/repo timers # forwards to the host when one is configured
|
||||||
|
|
||||||
# Manual trigger
|
# Manual trigger (edge, rc, stable)
|
||||||
systemctl start omarchy-check-versions.service
|
systemctl start omarchy-check-versions.service
|
||||||
systemctl start omarchy-auto-release-edge.service
|
systemctl start omarchy-auto-release-edge.service
|
||||||
systemctl start omarchy-auto-release-stable.service
|
|
||||||
|
|
||||||
# View logs
|
# View logs
|
||||||
journalctl -u omarchy-check-versions.service
|
journalctl -u omarchy-auto-release-edge.service -n 50
|
||||||
journalctl -u omarchy-auto-release-edge.service
|
|
||||||
journalctl -u omarchy-auto-release-stable.service
|
# Clear a channel stuck in failure backoff (a new commit also clears it)
|
||||||
|
rm /root/.state/.build-failed-edge
|
||||||
|
|
||||||
|
# Release lock left behind by a killed run (bin/repo timers shows if it is live)
|
||||||
|
rm /root/omarchy-pkgs/pkgs.omarchy.org/.release.lock
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The main checkout is pulled by `check-versions` on its 5-minute tick, so the
|
||||||
|
host stays current on whatever branch it has checked out — it must be `master`.
|
||||||
Reference in new issue
Block a user