Skip to content

Commit 5fa7199

Browse files
committed
docs: publish Farrow 0.3.0
1 parent 545cd95 commit 5fa7199

28 files changed

Lines changed: 627 additions & 423 deletions

content/blog/release/farrow-0.2.0.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ title: "Farrow 0.2.0: selected convergence and release integrity"
33
linkTitle: Farrow 0.2.0
44
description: VPN-aware network preflight, truly selected scale-out, committed-state integrations, signed multi-platform artifacts, and the 0.1.0 upgrade boundary.
55
date: 2026-09-01
6-
weight: 1
6+
weight: 2
77
categories: [Release]
88
tags: [Farrow 0.2.0, QEMU, macOS, Linux, Release, Supply Chain]
99
icon: fa-solid fa-rocket
1010
---
1111

12-
Farrow 0.2.0 is the current public pre-1.0 release. It keeps the Pigsty
12+
Farrow 0.2.0 was the public pre-1.0 release superseded by 0.3.0. It keeps the Pigsty
1313
inventory and on-disk deployment format introduced by 0.1.0 while fixing the
1414
network and selected-convergence boundaries found during the final native
1515
replay.
@@ -65,5 +65,4 @@ farrow doctor
6565
VMs are live to converge any pre-release process-birth identity. Existing
6666
guests adopt the new `/etc/hosts` marker when recreated.
6767

68-
Because Farrow is still below 1.0, GitHub labels 0.2.0 as a pre-release even
69-
though it is the published current release.
68+
Because Farrow is still below 1.0, GitHub labels 0.2.0 as a pre-release.

content/blog/release/farrow-0.2.0.zh.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ title: "Farrow 0.2.0:选点收敛与发布完整性"
33
linkTitle: Farrow 0.2.0
44
description: VPN 感知网络预检、真正的选点扩容、基于 committed state 的集成、CI 多平台构件与 0.1.0 升级边界。
55
date: 2026-09-01
6-
weight: 1
6+
weight: 2
77
categories: [发布]
88
tags: [Farrow 0.2.0, QEMU, macOS, Linux, 发布, 供应链]
99
icon: fa-solid fa-rocket
1010
---
1111

12-
Farrow 0.2.0 是当前公开的 pre-1.0 发布。它保留 0.1.0 引入的 Pigsty Inventory 与
12+
Farrow 0.2.0 是被 0.3.0 取代的公开 pre-1.0 发布。它保留 0.1.0 引入的 Pigsty Inventory 与
1313
磁盘 Deployment 格式,同时修复最终真机重放中发现的网络与选点收敛边界。
1414

1515
## 主要变化
@@ -56,5 +56,4 @@ farrow doctor
5656
0.1.0 Deployment State 可直接读取。保留 VM 在线时运行一次 `farrow status`,可收敛
5757
任何发布前进程出生身份;现有 Guest 在重建时采用新的 `/etc/hosts` 标记。
5858

59-
Farrow 尚未达到 1.0,因此 GitHub 会把 0.2.0 标为 Pre-release;它仍是已经公开发布的
60-
当前版本。
59+
Farrow 尚未达到 1.0,因此 GitHub 会把 0.2.0 标为 Pre-release。
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
title: "Farrow 0.3.0: explicit catalogs and actionable readiness"
3+
linkTitle: Farrow 0.3.0
4+
description: Explicit image-catalog updates, per-node bootstrap diagnostics, native guest interface names, and a smaller CLI.
5+
date: 2026-09-02
6+
weight: 1
7+
categories: [Release]
8+
tags: [Farrow 0.3.0, QEMU, Catalog, Readiness, Release]
9+
icon: fa-solid fa-rocket
10+
---
11+
12+
Farrow 0.3.0 is the current public pre-1.0 release. It removes implicit
13+
Catalog refreshes, turns guest bootstrap failures into actionable per-node
14+
results, and simplifies the CLI without changing the Pigsty Inventory or
15+
fixed-IP deployment model.
16+
17+
## What changed
18+
19+
- `up`, `plan`, and ordinary `image` commands use one active local Catalog
20+
snapshot and never fetch Catalog metadata implicitly. `farrow update`
21+
explicitly fetches the configured repository; `image sync` activates an
22+
exact URL or file.
23+
- Guest bootstrap writes an atomic failure stage. Partial operations report
24+
every failed node, stage, and error, and readiness failures point directly to
25+
`farrow logs <node>`.
26+
- Already-running guests can be rechecked without restarting QEMU. A partial
27+
lifecycle still rebuilds the SSH client configuration from every committed
28+
node.
29+
- Netplan matches deterministic MAC addresses without renaming interfaces.
30+
`vm_disks[].fs: auto` prefers XFS and falls back to ext4 when necessary.
31+
- The redundant `ss` command and ambiguous root/flag shorthands are removed.
32+
`image reset` replaces `reset-manifest`, which remains an alias.
33+
34+
## Verification boundary
35+
36+
Source commit `da6d02426da93c677c94c67fec4eb4fcecf4766a` passed the complete local
37+
source gate and a full GoReleaser snapshot: unit and race tests, vet,
38+
Staticcheck, `govulncheck`, four target builds, image-pipeline and installer
39+
boundaries, archive/package parity, dependency licenses, SBOMs, and native
40+
Linux package verification. The tag workflow repeated those checks before the
41+
Release was made public.
42+
43+
This release does not claim a new native VM replay. The dated macOS arm64/HVF
44+
and Ubuntu amd64/KVM evidence remains listed on the [Status](../../docs/about/status/)
45+
page; source, package, release, and native-host evidence remain separate gates.
46+
47+
## Install or upgrade
48+
49+
Download the installer and assets from the
50+
[Farrow 0.3.0 GitHub Release](https://github.com/pgsty/farrow/releases/tag/v0.3.0):
51+
52+
```bash
53+
curl -fLO https://github.com/pgsty/farrow/releases/download/v0.3.0/install.sh
54+
chmod +x install.sh
55+
FARROW_VERSION=0.3.0 ./install.sh
56+
farrow version
57+
farrow doctor
58+
```
59+
60+
Homebrew formula and amd64/arm64 DEB/RPM packages are attached to the same
61+
pre-release. Existing 0.1/0.2 deployment and Catalog state remains readable;
62+
Catalog refresh is now always explicit.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: "Farrow 0.3.0:显式 Catalog 与可操作的就绪诊断"
3+
linkTitle: Farrow 0.3.0
4+
description: 显式镜像 Catalog 更新、逐节点 Bootstrap 诊断、发行版原生 Guest 网卡名与更小的 CLI。
5+
date: 2026-09-02
6+
weight: 1
7+
categories: [发布]
8+
tags: [Farrow 0.3.0, QEMU, Catalog, 就绪, 发布]
9+
icon: fa-solid fa-rocket
10+
---
11+
12+
Farrow 0.3.0 是当前公开的 pre-1.0 发布。它移除隐式 Catalog 刷新,把 Guest Bootstrap
13+
失败变成可操作的逐节点结果,并在不改变 Pigsty Inventory 与固定 IP Deployment 模型的
14+
前提下简化 CLI。
15+
16+
## 变化
17+
18+
- `up``plan` 与普通 `image` 命令只使用一份当前本地 Catalog 快照,绝不隐式获取
19+
Catalog 元数据。`farrow update` 显式获取配置仓库;`image sync` 激活精确 URL 或文件。
20+
- Guest Bootstrap 原子写入失败阶段。部分操作报告每个失败节点、阶段与错误;就绪失败
21+
会直接指向 `farrow logs <node>`
22+
- 已运行 Guest 可在不重启 QEMU 的情况下复查。生命周期部分失败后,SSH 客户端配置仍会
23+
根据全部 committed 节点重建。
24+
- Netplan 按确定性 MAC 匹配且不再重命名接口。`vm_disks[].fs: auto` 优先 XFS,必要时
25+
回退到 ext4。
26+
- 删除冗余 `ss` 命令与含义模糊的根/参数短写;`image reset` 取代
27+
`reset-manifest`,旧名称仍是别名。
28+
29+
## 验证边界
30+
31+
源码 Commit `da6d02426da93c677c94c67fec4eb4fcecf4766a` 通过完整本地源码门禁与
32+
GoReleaser 全量 Snapshot:单测与 Race、Vet、Staticcheck、`govulncheck`、四目标构建、
33+
镜像流水线与 Installer 边界、Archive/Package 一致性、依赖许可证、SBOM 和 Linux 原生
34+
Package 校验。Tag 工作流在公开 Release 前重复执行了这些检查。
35+
36+
本发布不声称新增真机 VM Replay。带日期的 macOS arm64/HVF 与 Ubuntu amd64/KVM 证据
37+
仍列在[状态页](../../docs/about/status/);源码、打包、发布与真机证据继续作为独立门禁。
38+
39+
## 安装或升级
40+
41+
[Farrow 0.3.0 GitHub Release](https://github.com/pgsty/farrow/releases/tag/v0.3.0)
42+
下载 Installer 与资产:
43+
44+
```bash
45+
curl -fLO https://github.com/pgsty/farrow/releases/download/v0.3.0/install.sh
46+
chmod +x install.sh
47+
FARROW_VERSION=0.3.0 ./install.sh
48+
farrow version
49+
farrow doctor
50+
```
51+
52+
同一 Pre-release 附带 Homebrew Formula 与 amd64/arm64 DEB/RPM 软件包。现有 0.1/0.2
53+
Deployment 与 Catalog 状态仍可读取;Catalog 刷新从本版本开始始终显式。

content/docs/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Choose the shortest path for your task:
1717
- **[Start](start/)** — boot the first lab with two commands, then operate and troubleshoot it.
1818
- **[Reference](reference/)** — exact Inventory fields, commands, flags,
1919
output, and exit codes.
20-
- **[About](about/)**simplified design, native validation, limits, and
20+
- **[About](about/)** — design, native validation, limits, and
2121
release gates.
2222

2323
New users should follow the [Quick Start](start/tutorial/). The complete normal

content/docs/_index.zh.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Farrow 把一份 Pigsty 兼容的 Inventory 启动成固定 IP 的 QEMU 虚拟
1616

1717
- **[开始使用](start/)**:两条命令启动第一个实验环境,再按需管理与排障。
1818
- **[参考](reference/)**:Inventory 字段、命令、参数、输出与退出码。
19-
- **[关于](about/)**简化设计、真机验证、已知限制与发布门禁。
19+
- **[关于](about/)**设计、真机验证、已知限制与发布门禁。
2020

2121
新手直接跟随[快速上手](start/tutorial/)即可。正常路径只有两条命令:`farrow setup`
2222
`farrow up`

content/docs/about/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: About Farrow
33
linkTitle: About
4-
description: The simplified product model, implementation boundaries, native evidence, current limits, and release gates.
4+
description: The product model, implementation boundaries, native evidence, current limits, and release gates.
55
weight: 30
66
icon: fa-solid fa-circle-info
77
cascade:

content/docs/about/_index.zh.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: 关于 Farrow
33
linkTitle: 关于
4-
description: 简化后的产品模型、实现边界、真机证据、当前限制与发布门禁。
4+
description: 产品模型、实现边界、真机证据、当前限制与发布门禁。
55
weight: 30
66
icon: fa-solid fa-circle-info
77
cascade:

content/docs/about/design.md

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Design
3-
description: Farrow's simplified one-deployment architecture, networking, state, safety boundaries, and review conclusion.
3+
description: Farrow's one-deployment architecture, networking, state, and safety boundaries.
44
weight: 10
55
icon: fa-solid fa-compass-drafting
66
aliases: [/docs/concepts/, /docs/concepts/networking/, /docs/concepts/storage/, /docs/concepts/safety/, /docs/architecture/, /docs/architecture/overview/, /docs/architecture/networking/, /docs/architecture/security/]
@@ -48,22 +48,11 @@ activation-safety scan proves existing units cannot claim a real host link.
4848

4949
On Debian, the helper is temporarily and reversibly scoped to a group the
5050
caller actually belongs to. A real unprivileged QEMU bridge smoke must pass
51-
before setup accepts the network; failure triggers manifest-bounded rollback.
51+
before setup accepts the network; failure rolls the install back automatically.
5252

5353
## Safety boundary
5454

5555
QEMU and all guest artifacts run as the caller. Root is limited to host
5656
network setup and the optional hosts publisher. Destruction requires matching
5757
ownership, containment, node identity, QMP/process identity, and an allowlist
5858
of artifacts. Ambiguity stops the operation.
59-
60-
## Review conclusion
61-
62-
The pivot away from projects and leases is correct for a one-lab product and
63-
greatly reduces cognitive and state complexity. Native review was still
64-
essential: the first implementation had cross-layer gaps in control-node
65-
keys, sudo policy, Debian helper access, NetworkManager verification, runtime
66-
preflight, result messages, and failed-install cleanup. Those paths were fixed
67-
and replayed on macOS and Linux before this documentation was simplified. A
68-
later adversarial review also caught destructive preflight ordering and signed
69-
Catalog-baseline upgrade bugs before EL7/EL8 compatibility was committed.

content/docs/about/design.zh.md

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: 设计
3-
description: Farrow 简化后的单 deployment 架构、网络、状态、安全边界与评审结论
3+
description: Farrow 的单 deployment 架构、网络、状态与安全边界
44
weight: 10
55
icon: fa-solid fa-compass-drafting
66
aliases: [/docs/concepts/, /docs/concepts/networking/, /docs/concepts/storage/, /docs/concepts/safety/, /docs/architecture/, /docs/architecture/overview/, /docs/architecture/networking/, /docs/architecture/security/]
@@ -40,17 +40,9 @@ systemd-networkd,并通过发行版 bridge helper 接入。若 networkd 尚未
4040
Activation-safety 扫描证明现有 Unit 不会接管真实宿主链路后才启动。
4141

4242
Debian helper 会临时、可逆地限制给调用者真实加入的组。setup 必须通过一次非特权
43-
QEMU bridge smoke;失败后按 manifest 自动回滚
43+
QEMU bridge smoke;失败后自动回滚安装
4444

4545
## 安全边界
4646

4747
QEMU 与所有 Guest 工件都以调用者身份运行。root 仅用于宿主网络与可选 hosts publisher。
4848
销毁必须同时匹配属主、路径包含、节点身份、QMP/进程身份与工件白名单;任何歧义都会停止。
49-
50-
## 评审结论
51-
52-
对单实验室产品而言,删除 project 与 lease 的 pivot 是正确的,显著降低了认知与状态
53-
复杂度。但真机审查仍不可省略:第一版在控制节点密钥、sudo 策略、Debian helper 权限、
54-
NetworkManager 验证、运行时 preflight、结果消息与失败清理上存在跨层断裂。这些路径已修复,
55-
并在 macOS 与 Linux 真机重放后才重写本文档。后续对抗审查又在 EL7/EL8 提交前发现并
56-
修复了破坏前预检顺序与签名 Catalog 基线升级问题。

0 commit comments

Comments
 (0)