Skip to content

Farrow 0.5.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Sep 11:26

Farrow 0.5.0

Farrow 0.5.0 makes complete lab disposal explicit, makes repository geography
an operator choice, and adds a reproducible path for preparing the next
official guest images. The Pigsty Inventory contract, deployment state format,
and embedded Catalog revision 2026082903 are unchanged.

中文说明见下文。

Highlights

  • One command to discard a lab. farrow purge (alias farrow rm) removes
    the complete applied deployment, persistent data disks, deployment keys and
    state, and the default SSH fragment without asking for confirmation. It
    keeps the verified image cache and host-global network, succeeds when no
    deployment exists, and still refuses residual node artifacts whose identity
    cannot be proven.
  • Explicit global and China repositories. The default official repository
    is now https://repo.pigsty.io/farrow; long-only --mirror selects
    https://repo.pigsty.cc/farrow. Precedence is --repo, --mirror,
    FARROW_REPO, then the global default. Both official URLs retain canonical
    signed-Catalog trust.
  • No hidden artifact fallback. Catalog upstream URLs are build provenance,
    not an alternate download path. Once a repository is selected, Farrow either
    verifies its exact Catalog-named qcow2 or reports that the artifact is
    absent; use --mirror, --repo, or image import deliberately.
  • Eight official image candidates. The source tree now contains a
    digest-pinned matrix and offline builder for Debian 12/13 and Rocky Linux
    8/9 on amd64/arm64. It installs an exact offline package closure, emits SBOM
    and provenance records, and assembles a separate unsigned testing
    repository for native smoke and signing review.
  • Current Go toolchain. Source and release workflows use Go 1.27.1,
    GoReleaser 2.18.0, golangci-lint 2.13.2, and current selected Go modules.

Image-candidate details

  • Debian 12/13 candidates include the XFS userspace required when a data disk
    explicitly requests XFS.
  • Rocky Linux 8 candidates provide /usr/bin/python3, remove legacy interface
    naming state, and make the SSH drop-in Include effective. Rocky Linux 9
    candidates remove the same legacy networking state.
  • The matrix and builder are release tooling, not new published Catalog bytes.
    The candidates remain testing until native smoke, reproducibility review,
    production signing, artifact upload, and Catalog publication complete.

Operational notes

  • purge is intentionally non-interactive and irreversible for deployment
    disks and keys. Use the confirmed farrow destroy path when preserving
    persistent disks or removing selected nodes.
  • Existing cached images and activated Catalog state remain usable. New
    downloads use the global repository unless --mirror, --repo, or
    FARROW_REPO selects another root.
  • No state, Inventory, or Catalog migration is required from 0.4.0.

Install or upgrade

Download install.sh from this Release, then run:

chmod +x install.sh
FARROW_VERSION=0.5.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/.

Verification boundary

The tag workflow checks out the exact tag commit, reruns make check, builds
and verifies all archives, native Linux packages, SBOMs, the Homebrew formula,
installer, release metadata, and final checksums, then creates an immutable
draft. Because 0.5.0 is below 1.0.0, it remains a GitHub pre-release. The draft
is published only after the workflow and public asset checks pass.

The repository-selection, purge, and image-builder paths have automated source
coverage. This release does not claim a new native VM lifecycle replay or that
the eight image candidates have been published.


Farrow 0.5.0(中文)

Farrow 0.5.0 为整套实验环境提供明确的一键处置命令,让仓库地域成为操作者的显式选择,
并加入可复现的下一代官方 Guest 镜像准备路径。Pigsty Inventory 契约、Deployment 状态格式
与内嵌 Catalog revision 2026082903 均未变化。

亮点

  • 一条命令处置整套实验室。 farrow purge(别名 farrow rm)无需确认,删除完整
    Applied Deployment、持久数据盘、Deployment 密钥与状态,以及默认 SSH Fragment;已校验
    镜像缓存和宿主全局网络仍然保留。没有 Deployment 时幂等成功,但无法证明身份的遗留节点
    工件仍会被拒绝,而不是按路径盲删。
  • 显式选择全球与中国仓库。 默认官方仓库改为 https://repo.pigsty.io/farrow;仅提供
    长参数的 --mirror 选择 https://repo.pigsty.cc/farrow。优先级依次为 --repo
    --mirrorFARROW_REPO、全球默认仓库;两个官方 URL 都保持规范的签名 Catalog 信任。
  • 不再隐式回退工件源。 Catalog 中的 Upstream URL 是构建溯源,不是备用下载路径。
    仓库一旦选定,Farrow 只校验该仓库中 Catalog 指定的准确 qcow2;缺失时直接报错,请显式
    使用 --mirror--repoimage import
  • 八个官方镜像 Candidate。 源码新增 Debian 12/13、Rocky Linux 8/9 在
    amd64/arm64 上的摘要锁定矩阵与离线 Builder。它安装准确的离线软件包闭包,生成 SBOM
    与 Provenance,并组装独立、未签名的 testing 仓库,留待真机 Smoke 与签名审查。
  • 当前 Go 工具链。 源码与发布工作流使用 Go 1.27.1、GoReleaser 2.18.0、
    golangci-lint 2.13.2 与当前选定的 Go 模块版本。

镜像 Candidate 细节

  • Debian 12/13 Candidate 包含数据盘显式请求 XFS 时所需的 XFS 用户态工具。
  • Rocky Linux 8 Candidate 提供 /usr/bin/python3、移除旧网卡命名状态,并让 SSH
    Drop-in Include 生效;Rocky Linux 9 Candidate 同样移除旧网络状态。
  • 这套矩阵与 Builder 是发布工具,并不是新的已发布 Catalog 字节。Candidate 在完成真机
    Smoke、可复现性审查、生产签名、工件上传与 Catalog 发布前始终保持 testing

运维说明

  • purge 刻意设计为无交互操作,会不可逆删除 Deployment 磁盘与密钥。若要保留持久盘或
    只删除部分节点,请继续使用带确认的 farrow destroy
  • 现有缓存镜像与已激活 Catalog 仍可使用。新的下载默认走全球仓库,除非通过
    --mirror--repoFARROW_REPO 选择其他根。
  • 从 0.4.0 升级无需迁移状态、Inventory 或 Catalog。

安装或升级

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

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

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

验证边界

Tag 工作流检出准确 Tag Commit,重跑 make check,构建并验证全部 Archive、Linux 原生
Package、SBOM、Homebrew Formula、Installer、Release Metadata 与最终 Checksum,随后创建
不可变 Draft。由于 0.5.0 低于 1.0.0,它仍是 GitHub Pre-release;只有工作流与公开资产
检查通过后才会正式公开草稿。

仓库选择、purge 与镜像 Builder 路径都有自动化源码覆盖。本次发布不声称新增真机 VM
生命周期重放,也不声称八个镜像 Candidate 已经发布。