|
| 1 | +--- |
| 2 | +title: "Farrow 0.4.0: one command, working data disks, one voice" |
| 3 | +linkTitle: Farrow 0.4.0 |
| 4 | +description: A first run that is one command, a default data disk that works on every image, readiness failures that name the cause, and one output style across the CLI. |
| 5 | +date: 2026-09-02 |
| 6 | +weight: 1 |
| 7 | +categories: [Release] |
| 8 | +tags: [Farrow 0.4.0, QEMU, UX, Release] |
| 9 | +icon: fa-solid fa-rocket |
| 10 | +--- |
| 11 | + |
| 12 | +Farrow 0.4.0 is the current public pre-1.0 release. It makes the first run one |
| 13 | +command, fixes the default data disk on Debian and Ubuntu images, and gives every |
| 14 | +command the same output style. The Pigsty Inventory format, the fixed-IP |
| 15 | +deployment model, the state layout, and the embedded Catalog revision |
| 16 | +`2026082903` are unchanged. |
| 17 | + |
| 18 | +## What changed |
| 19 | + |
| 20 | +- On a terminal, `farrow up` runs `farrow setup` itself when the fixed-IP |
| 21 | + network has never been installed, shows the setup plan, asks before the |
| 22 | + privileged step, and then continues. `farrow init` points at `farrow up`. |
| 23 | +- `vm_disks[].fs` defaults to `auto`: a blank disk is formatted XFS when the |
| 24 | + guest has `mkfs.xfs` and ext4 otherwise, the same choice Pigsty's Vagrant flow |
| 25 | + makes. The old `xfs` default failed on Debian and Ubuntu images, which ship |
| 26 | + without xfsprogs. Deployments created with the old default are not reported |
| 27 | + as drift and their persistent disks stay compatible. |
| 28 | +- The guest error marker carries the failing command's last message, so `up` |
| 29 | + reports `guest bootstrap failed during data-disks: xfs requested but mkfs.xfs |
| 30 | + is unavailable` instead of an exit status. |
| 31 | +- Lifecycle commands and `status` print a node table and, after `up`, a |
| 32 | + `next: farrow ssh <node>` hint. `plan` and `validate` print one line when |
| 33 | + nothing changes; `image list`, `network status`, `doctor`, and preflight |
| 34 | + errors use plain sentences without machine codes; `spec hash` and other |
| 35 | + internals moved to `--json`. Errors about an unknown node list the nodes. |
| 36 | +- `farrow ssh <node> -- 'df -h /data; id'` passes the remote command exactly as |
| 37 | + OpenSSH does. |
| 38 | + |
| 39 | +## Upgrading |
| 40 | + |
| 41 | +A d13, d12, or Ubuntu node created by 0.3.0 or earlier whose `/data` never |
| 42 | +mounted needs one `farrow recreate <node>`; the disk is then formatted ext4 on |
| 43 | +those images and XFS on Enterprise Linux images. Automation that runs `up` on an |
| 44 | +unprepared host without a terminal still needs `farrow setup --yes` first. |
| 45 | + |
| 46 | +## Verification boundary |
| 47 | + |
| 48 | +Source commit `8ecb8476c7dbc934d8cbbee935ac53884d00fcdb` passed the complete |
| 49 | +local source gate: unit and race tests, vet, Staticcheck, deadcode, errcheck, |
| 50 | +`govulncheck`, shell and module checks, four target builds, the image-pipeline |
| 51 | +and installer boundaries, and dependency licenses. The tag workflow repeated |
| 52 | +those checks and built and verified every archive, native package, SBOM, and |
| 53 | +the installer before the Release was made public. |
| 54 | + |
| 55 | +The new first-run path (`up` running `setup`) is covered by unit tests and was |
| 56 | +not replayed on a fresh host before this release. The dated macOS arm64/HVF and |
| 57 | +Ubuntu amd64/KVM evidence remains listed on the |
| 58 | +[Status](../../docs/about/status/) page; source, package, release, and |
| 59 | +native-host evidence remain separate gates. |
| 60 | + |
| 61 | +## Install or upgrade |
| 62 | + |
| 63 | +Download the installer and assets from the |
| 64 | +[Farrow 0.4.0 GitHub Release](https://github.com/pgsty/farrow/releases/tag/v0.4.0): |
| 65 | + |
| 66 | +```bash |
| 67 | +curl -fLO https://github.com/pgsty/farrow/releases/download/v0.4.0/install.sh |
| 68 | +chmod +x install.sh |
| 69 | +FARROW_VERSION=0.4.0 ./install.sh |
| 70 | +farrow version |
| 71 | +farrow doctor |
| 72 | +``` |
| 73 | + |
| 74 | +Homebrew formula and amd64/arm64 DEB/RPM packages are attached to the same |
| 75 | +pre-release. Existing deployment and Catalog state remains readable. |
0 commit comments