Skip to content

Farrow 0.6.0: Ubuntu 24.04 and smoother local labs

Ubuntu 24.04 defaults, useful plans before setup, clearer status, and reliable expansion and recreation.

Farrow 0.6.0 defaults to Ubuntu 24.04 and improves the everyday loop of planning, starting, expanding, and rebuilding a local Pigsty lab.

What changed

  • Ubuntu 24.04 by default. New inventories and the embedded catalog use u24:stable. Catalog revision 2026090501 also includes the Debian 12/13 and Rocky Linux 8/9 updates already available in the official repositories.
  • Useful plans before setup. plan for Catalog images works without QEMU or host networking installed (registered local-* images still need qemu-img cache validation) and shows exact image versions, resource totals, pending starts, changed fields, disk effects, and commands that retain custom -f paths.
  • Readable status and errors. Status shows images, CPU, and memory; one damaged node no longer hides healthy peers. Corrupt state names the actual file and cause. Image digest failures return exit 7; SSH exit 255 passes through unchanged. --no-wait clearly reports that readiness was skipped.
  • Checks before disruption. Selected recreate detects conflicting peer changes before deleting disks. reload checks startup dependencies before stopping guests. Stop, destroy, and runtime cleanup handle deployment state consistently under the existing lock.
  • Guest names stay current. Starting commands and node removal refresh Farrow-managed guest hosts entries and control-node SSH configuration. Recreated peers remain reachable without clearing guest known_hosts. User SSH text and global option scope are preserved.
  • Fewer CLI surprises. Custom init paths produce usable next commands; presentation flags respect option values; malformed integer sizes and extra YAML documents are rejected without truncation. ALL_PROXY/all_proxy provides a fallback while respecting scheme-specific proxies and NO_PROXY.

Upgrade notes

Upgrading Farrow does not replace existing disks or change an explicitly selected image. If an old inventory relied on the implicit Debian 13 default, add vm_image: d13 under all.vars before applying it with 0.6.0. Review farrow plan before applying changes; farrow start uses the applied state.

CPU and memory changes still use recreate: root and non-persistent data disks are replaced, while persistent data disks are retained. --no-wait skips both readiness and guest metadata refresh; a later farrow up completes them. Scripts should use --json or --yaml instead of parsing status columns; partial status results include healthy nodes and a failures array, with exit 5.

Install or upgrade

curl -fLO https://github.com/pgsty/farrow/releases/download/v0.6.0/install.sh
chmod +x install.sh
FARROW_VERSION=0.6.0 ./install.sh
farrow version
farrow doctor

The release also includes four platform archives, amd64/arm64 DEB and RPM packages, and a Homebrew formula. As a pre-1.0 release it keeps the GitHub pre-release flag, so the installer needs the explicit version above. See the Quick Start.

Validation

The lifecycle and UX changes passed two adversarial Claude Code Fable 5.1 reviews at xhigh effort, plus the complete local make check gate. An isolated macOS arm64/HVF lab exercised Ubuntu 24.04 boot, scale-out, control-to-peer SSH, stop/start, reload, recreate, partial status failures, and scale-in. The final guest SSH scope correction also passed effective OpenSSH configuration tests.

The tag workflow repeats source checks and verifies archives, packages, SBOMs, installer, formula, release metadata, and checksums. These checks do not imply a new Linux-host VM replay, host-reboot test, or complete Pigsty installation.