Skip to content

Farrow 0.4.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Sep 07:28

Farrow 0.4.0

Farrow 0.4.0 makes the first run one command, makes the default data disk work
on every catalog image, and gives every command one output style. The Pigsty
Inventory format, the fixed-IP deployment model, the state layout, and the
embedded Catalog revision 2026082903 are unchanged.

中文说明见下文。

Highlights

  • One command on a fresh host. On a terminal, farrow up runs
    farrow setup itself when the fixed-IP network has never been installed,
    shows the setup plan, asks before the privileged step, and then continues.
    farrow init now points at farrow up as the next step.
  • Data disks work out of the box. vm_disks[].fs defaults to auto: a
    blank disk is formatted XFS when the guest has mkfs.xfs and ext4
    otherwise, the same choice Pigsty's Vagrant flow makes. The old xfs
    default failed on Debian and Ubuntu images, which ship without xfsprogs, so
    the default /data disk never mounted there. Deployments created with the
    old default are not reported as drift, and their persistent disks stay
    compatible: auto matches whatever the guest already formatted.
  • Readiness failures name the cause. The guest error marker carries the
    failing command's last message, so up reports
    guest bootstrap failed during data-disks: xfs requested but mkfs.xfs is unavailable instead of an exit status and a pointer to the serial log.
  • One output style. Lifecycle commands and status print a node table
    (NAME STATE ADDRESS SSH ARCH PID) and, after up, a next: farrow ssh <node> hint. plan prints one no changes line or only the rows that
    change; validate prints one line; image list prints the catalog revision
    and origin plus an aligned table; network status, doctor, and preflight
    errors use plain sentences without machine codes. spec hash and other
    internals are available in --json only. Errors about an unknown node list
    the nodes the deployment has.
  • farrow ssh behaves like ssh. farrow ssh <node> -- 'df -h /data; id'
    passes the remote command exactly as OpenSSH does.

Operational notes

  • Without a terminal, or with --json/--yaml, up on an unprepared host
    still exits with the run farrow setup hint; automation runs
    farrow setup --yes first.
  • A d13, d12, or Ubuntu node created by 0.3.0 or earlier whose /data never
    mounted needs one farrow recreate <node>; the disk is then formatted ext4
    on those images and XFS on Enterprise Linux images.
  • Remote arguments to ssh and exec are now joined with spaces before ssh
    sees them. Quote a shell line as you would for ssh.
  • Catalog refresh remains explicit (farrow update). Exit codes are unchanged.

Install or upgrade

Download install.sh from this Release, then run:

chmod +x install.sh
FARROW_VERSION=0.4.0 ./install.sh
farrow version
farrow doctor

Homebrew formula and amd64/arm64 DEB/RPM packages are attached to the same
Release. Full installation and privilege details are at
https://farrow.pgsty.com/docs/start/tutorial/.

Release integrity

The tag workflow checks out the exact commit, reruns make check, builds and
verifies all archives, native Linux packages, SBOMs, the Homebrew formula, and
the installer, then writes checksums.txt before creating an immutable draft.
Because 0.4.0 is below 1.0.0, GitHub and release.json both classify it as a
pre-release. The draft must not be published until those checks and anonymous
asset downloads pass.

The new first-run path (up running setup) passed unit tests and code
review but was not replayed on a fresh host before this release; the dated
native lifecycle matrix remains the evidence recorded on the documentation
Status page.


Farrow 0.4.0(中文)

Farrow 0.4.0 把首次运行压缩为一条命令,让默认数据盘在所有 Catalog 镜像上都能工作,
并给所有命令一套统一的输出风格。Pigsty Inventory 格式、固定 IP Deployment 模型、
状态布局与内嵌 Catalog revision 2026082903 均未变化。

亮点

  • 新机器上只需一条命令。 在终端里,固定 IP 网络尚未安装时 farrow up 会自己执行
    farrow setup:展示 setup 计划、在特权步骤前确认,然后继续。farrow init 的下一步
    提示现在是 farrow up
  • 数据盘开箱即用。 vm_disks[].fs 默认值改为 auto:空白磁盘在 Guest 有
    mkfs.xfs 时格式化为 XFS,否则为 ext4,与 Pigsty 的 Vagrant 流程一致。旧的 xfs
    默认值在不带 xfsprogs 的 Debian 与 Ubuntu 镜像上会失败,默认 /data 盘从未挂载。
    按旧默认值创建的 Deployment 不会被报告为漂移,持久盘也保持兼容:auto 与 Guest 已
    格式化的任何文件系统都匹配。
  • 就绪失败直接给出原因。 Guest 的错误标记携带失败命令的最后一行输出,up 会报告
    guest bootstrap failed during data-disks: xfs requested but mkfs.xfs is unavailable
    而不是只有退出码和"去看串口日志"。
  • 统一的输出风格。 生命周期命令与 status 打印节点表(NAME STATE ADDRESS SSH ARCH PID),up 成功后给出 next: farrow ssh <node>plan 只打印一行
    no changes 或仅有变化的行;validate 一行;image list 打印 Catalog revision 与来源
    加对齐表格;network statusdoctor 与预检错误使用没有机器码的自然语句。spec hash
    等内部信息只在 --json 中出现。未知节点名的错误会列出现有节点。
  • farrow sshssh 行为一致。 farrow ssh <node> -- 'df -h /data; id' 会把远程
    命令按 OpenSSH 的方式原样传递。

运维说明

  • 没有终端,或使用 --json/--yaml 时,在未准备好的宿主机上运行 up 仍以
    run farrow setup 提示退出;自动化请先运行 farrow setup --yes
  • 由 0.3.0 或更早版本创建、/data 从未挂载的 d13、d12 或 Ubuntu 节点,运行一次
    farrow recreate <node> 即可;这些镜像上磁盘会格式化为 ext4,Enterprise Linux 镜像上
    为 XFS。
  • sshexec 的远程参数现在先以空格拼接再交给 ssh,引用方式与 ssh 相同。
  • Catalog 刷新仍然是显式的(farrow update)。退出码未变化。

安装或升级

从本 Release 下载 install.sh,然后运行:

chmod +x install.sh
FARROW_VERSION=0.4.0 ./install.sh
farrow version
farrow doctor

同一 Release 还附带 Homebrew Formula 与 amd64/arm64 DEB/RPM 软件包。完整安装与权限
边界见 https://farrow.pgsty.com/docs/start/tutorial/

发布完整性

Tag 工作流检出精确 Commit,重跑 make check,构建并验证全部 Archive、Linux 原生
Package、SBOM、Homebrew Formula 与 Installer,然后生成 checksums.txt 并创建不可变
Draft。由于 0.4.0 低于 1.0.0,GitHub 与 release.json 都将其标为 Pre-release;只有
这些检查和匿名资产下载通过后才可公开草稿。

新的首次运行路径(up 自动执行 setup)通过了单元测试与代码评审,但本次发布前未在
全新宿主机上重放;最新真机生命周期矩阵仍以文档 Status 页中的日期证据为准。