Skip to content

Release train ​

Version 1, draft. The client contract for signed snapshots and channel pointers. For commands and prerequisites, start with snapshots and rollback. Operators should also read the snapshot-store spec.

Snapshots and channels ​

The Arch mirror is a store of immutable snapshots, <snapshot_base>/<id>/ {core,extra,multilib}/os/<arch>, where <id> is YYYY-MM-DDTHH. Unchanged package files are hard-linked between snapshots. The channels edge, rc, and stable are pointers: edge is the newest snapshot, rc the newest that passed the test suite, stable the newest rc that soaked without a hold.

A machine's channel is the one its Omarchy repository server names (https://pkgs.omarchy.org/stable/$arch is stable). The snapshot store base comes from the manifest:

toml
[channel]
snapshot_base = "https://mirror.omarchy.org/snapshots"

An adopting distro can ship this setting. The URL above illustrates the intended layout; it is not a claim that an Omarchy snapshot service is deployed.

release.json ​

Each channel publishes a signed manifest next to its other feeds (<Server>/release.json with release.json.minisig), and each snapshot carries its own copy at <snapshot_base>/<id>/release.json.

json
{
  "version": 1,
  "id": "2026-09-03T06",
  "channel": "stable",
  "arch_snapshot": "2026-09-03T06",
  "repository_index_sequences": { "omarchy": 1042 },
  "created_at": "2026-09-03T06:00:00Z",
  "tests": { "suite": "omarchy-train", "commit": "...", "result": "pass", "log_url": "..." },
  "tested_pkgbases": ["hyprland", "omarchy", "..."],
  "promoted": { "rc": "2026-09-03T08:00:00Z", "stable": "2026-09-06T08:00:00Z" },
  "expedited": false,
  "held": false,
  "db_digests": { "core/os/x86_64/core.db": "...", "extra/os/x86_64/extra.db": "..." }
}
  • tested_pkgbases is the suite's reported set. A client labels those packages tested and other packages snapshot. The built-in consistency suite fills this set with packages whose files it checked, so read tests.suite and logs before interpreting the label as runtime or desktop coverage.
  • promoted records when the snapshot reached rc and stable. Rollback without --force requires one of them.
  • expedited marks a security snapshot that ran the short suite; held marks one a maintainer pulled, with hold_reason.
  • db_digests let a client check the databases it downloaded belong to this snapshot.

Client commands ​

  • pacvamp channel shows the channel, the snapshot it points at with its test result and promotion, the tested-package count, whether the mirrorlist is pinned, and the last snapshot the machine converged to.
  • pacvamp channel pin <id> writes /etc/pacman.d/mirrorlist to point at the snapshot (backing up the previous list once), after fetching and verifying the snapshot's manifest and checking it was promoted. pacvamp channel unpin restores the backup.
  • pacvamp rollback --snapshot <id> pins, refreshes, and runs a sync that allows downgrades for installed repository packages available in that snapshot. It does not restore application data or prior AUR outputs; pair it with a separately managed filesystem recovery procedure.
  • pacvamp update records the snapshot it converged to in the ledger.

Released under the MIT License.