|
| 1 | +--- |
| 2 | +title: "Farrow 0.5.0: explicit disposal, explicit repositories, reproducible images" |
| 3 | +linkTitle: Farrow 0.5.0 |
| 4 | +description: A no-confirmation whole-lab purge, explicit global and China repository selection, no hidden artifact fallback, and an eight-target official-image candidate pipeline. |
| 5 | +date: 2026-09-03 |
| 6 | +weight: 1 |
| 7 | +categories: [Release] |
| 8 | +tags: [Farrow 0.5.0, QEMU, Images, Supply Chain, Release] |
| 9 | +icon: fa-solid fa-rocket |
| 10 | +--- |
| 11 | + |
| 12 | +Farrow 0.5.0 is the current public pre-1.0 release. It adds an explicit command |
| 13 | +for disposable labs, makes repository geography an operator choice, and adds a |
| 14 | +reproducible path for preparing the next official guest images. The Pigsty |
| 15 | +Inventory contract, deployment state format, and embedded Catalog revision |
| 16 | +`2026082903` are unchanged. |
| 17 | + |
| 18 | +## What changed |
| 19 | + |
| 20 | +- `farrow purge` (alias `farrow rm`) removes the complete deployment, |
| 21 | + persistent data disks, deployment keys and state, and the default SSH |
| 22 | + fragment without confirmation. The verified image cache and host-global |
| 23 | + network remain. Absence is idempotent, while unidentifiable residual node |
| 24 | + artifacts still fail closed. |
| 25 | +- Released binaries use `https://repo.pigsty.io/farrow` by default. Long-only |
| 26 | + `--mirror` selects `https://repo.pigsty.cc/farrow`; `--repo` remains the |
| 27 | + highest-precedence override, followed by `--mirror`, `FARROW_REPO`, and the |
| 28 | + global default. Both official roots keep canonical signed-Catalog trust. |
| 29 | +- Catalog upstream URLs are provenance, not a fallback. A selected repository |
| 30 | + must contain the exact Catalog-named qcow2 or the pull fails with guidance to |
| 31 | + choose another root or import a local image. |
| 32 | +- The source tree now has a digest-pinned offline builder for Debian 12/13 and |
| 33 | + Rocky Linux 8/9 on amd64/arm64. It records the exact package closure, SBOM, |
| 34 | + provenance, and `testing` manifest, and can assemble an unsigned candidate |
| 35 | + repository for later native smoke and signing review. |
| 36 | +- The pinned source/release toolchain moves to Go 1.27.1, GoReleaser 2.18.0, |
| 37 | + golangci-lint 2.13.2, and current selected Go modules. |
| 38 | + |
| 39 | +## Image boundary |
| 40 | + |
| 41 | +The eight-target matrix fixes concrete guest prerequisites: Debian 12/13 gain |
| 42 | +the XFS userspace needed for explicitly XFS-formatted data disks; Rocky Linux 8 |
| 43 | +gains `/usr/bin/python3`, working SSH drop-in inclusion, and clean interface |
| 44 | +naming state; Rocky Linux 9 receives the same legacy-network cleanup. |
| 45 | + |
| 46 | +Those are candidate-build inputs, not newly published Catalog artifacts. Every |
| 47 | +result remains unsigned and `testing` until native boot/readiness smoke, |
| 48 | +repeat-build comparison, production signing, upload, and Catalog publication |
| 49 | +complete. |
| 50 | + |
| 51 | +## Upgrade and disposal |
| 52 | + |
| 53 | +No state, Inventory, or Catalog migration is required from 0.4.0. Existing |
| 54 | +cached images remain usable. New downloads use the global repository unless |
| 55 | +`--mirror`, `--repo`, or `FARROW_REPO` selects another root. |
| 56 | + |
| 57 | +`purge` is deliberately non-interactive and irreversible for deployment disks |
| 58 | +and keys. Continue to use confirmed `farrow destroy` when preserving persistent |
| 59 | +disks or removing selected nodes. |
| 60 | + |
| 61 | +## Verification boundary |
| 62 | + |
| 63 | +Release source commit `fc85b65ff6a24b0933b56ae1179be9ada2ba91b1` passed the |
| 64 | +complete local source gate: module and shell checks, unit and race tests, vet, |
| 65 | +Staticcheck, deadcode, errcheck, `govulncheck`, four target builds, simulated |
| 66 | +image-pipeline boundaries, installer tests, and exact dependency-license |
| 67 | +verification. GoReleaser 2.18.0 also accepted the release configuration. |
| 68 | + |
| 69 | +The tag workflow independently repeats those checks and builds and verifies |
| 70 | +every archive, native package, SBOM, formula, installer, release metadata file, |
| 71 | +and checksum before the pre-release is published. No new native VM lifecycle |
| 72 | +replay or published-image claim is inherited from these source gates. |
| 73 | + |
| 74 | +## Install or upgrade |
| 75 | + |
| 76 | +Download the installer and assets from the |
| 77 | +[Farrow 0.5.0 GitHub Release](https://github.com/pgsty/farrow/releases/tag/v0.5.0): |
| 78 | + |
| 79 | +```bash |
| 80 | +curl -fLO https://github.com/pgsty/farrow/releases/download/v0.5.0/install.sh |
| 81 | +chmod +x install.sh |
| 82 | +FARROW_VERSION=0.5.0 ./install.sh |
| 83 | +farrow version |
| 84 | +farrow doctor |
| 85 | +``` |
| 86 | + |
| 87 | +The same pre-release includes the Homebrew formula and amd64/arm64 DEB/RPM |
| 88 | +packages. |
0 commit comments