Skip to content

Commit 549f402

Browse files
committed
docs: publish Farrow 0.7.0 and simplify the first run
1 parent 36efed6 commit 549f402

20 files changed

Lines changed: 426 additions & 170 deletions
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
title: "Farrow 0.7.0: simpler test labs and automatic recovery"
3+
linkTitle: Farrow 0.7.0
4+
description: A shorter first run, compact progress, independent guest setup, and recovery through up.
5+
date: 2026-09-16
6+
weight: 1
7+
categories: [Release]
8+
tags: [Farrow 0.7.0, QEMU, Release]
9+
icon: fa-solid fa-rocket
10+
---
11+
12+
Farrow 0.7.0 makes local test labs easier to start and recover. Repeat `farrow up`
13+
to finish interrupted work, retry incomplete guest setup, and refresh older
14+
guest helpers without restarting running VMs.
15+
16+
## What changed
17+
18+
- **A shorter first run.** Interactive `up` can create the default inventory,
19+
prepare missing host tools, and restore an intact inactive Farrow network.
20+
Short checks stay quiet; long work shows progress and a compact final result.
21+
- **Usable guests stay available.** Data disks, shares, guest hostnames,
22+
node-to-node SSH, and private networking initialize independently. Optional
23+
failures report specific limitations while working management SSH remains
24+
available. Healthy stages are skipped on subsequent `up` calls.
25+
- **Test disks recover automatically.** Working filesystems are reused;
26+
unrecognized or confirmed damaged filesystems are reset and mounted again.
27+
The result explicitly reports discarded data. Probe errors, missing devices,
28+
busy mounts, and backend I/O errors do not trigger formatting.
29+
- **Fewer manual fixes.** Unwritable shares fall back to read-only and retry after
30+
permissions are corrected. Occupied automatic SSH ports are reassigned for
31+
stopped guests. Interrupted image transfers resume, and official repositories
32+
can fail over without bypassing digest verification.
33+
- **Clearer output and state.** Successful commands show a short summary;
34+
limitations are grouped, and JSON/YAML keep structured results. Guest warnings
35+
use a disposable cache outside the schema-2 VM documents and node artifact
36+
directories, so older releases can still read and manage the deployment.
37+
38+
## Upgrade notes
39+
40+
**Data disks are disposable test storage. `up` may clear a damaged filesystem,
41+
including one marked `persistent`.** Persistence retains a disk across VM
42+
destroy/recreate; it does not preserve corrupt filesystem contents during
43+
recovery. Keep valuable data outside these test disks. Root disks and host
44+
shared directories are not reset by this recovery.
45+
46+
There is no separate `repair` command. Repeating `up` performs recovery;
47+
`start` continues to power on existing nodes without applying an inventory.
48+
`--no-wait` skips readiness and these guest recovery checks.
49+
50+
A usable guest with optional limitations returns exit 0. Automation that needs
51+
all configured features must inspect `nodes[].warnings` in JSON/YAML. Recovery
52+
actions, including data resets, appear in `nodes[].repairs`. Downgrading the CLI
53+
does not restore discarded data or revert installed guest helpers.
54+
55+
A pre-existing 0.6.0 bootstrap failure can already have deleted the staged
56+
control-node SSH key before installing it. `up` restores management access and
57+
independent setup, but reports `control-ssh` if that key is missing. It does not
58+
reinject private keys during an in-place retry. After reviewing disk effects with
59+
`farrow plan`, explicitly recreate the affected control node if peer SSH is needed.
60+
61+
## Install or upgrade
62+
63+
```bash
64+
curl -fLO https://github.com/pgsty/farrow/releases/download/v0.7.0/install.sh
65+
chmod +x install.sh
66+
FARROW_VERSION=0.7.0 ./install.sh
67+
farrow version
68+
farrow up
69+
```
70+
71+
The release includes macOS/Linux amd64/arm64 archives, Linux DEB/RPM packages,
72+
the installer, checksums, SBOMs, and a Homebrew formula. It follows the existing
73+
pre-1.0 GitHub pre-release policy; specify `FARROW_VERSION` when installing.
74+
75+
## Validation
76+
77+
The complete source gate covers unit and race tests, static checks, four-target
78+
compilation, installer and image-pipeline checks, and licenses. Isolated Ubuntu
79+
amd64/KVM tests with Ubuntu 24.04 guests exercised disk corruption and resets,
80+
busy mounts, failed probes, retained-disk recreation, share recovery, and repeated
81+
healthy `up` calls without process replacement. macOS validation includes CLI
82+
smoke checks and cross-compilation; this release does not claim a new HVF guest
83+
replay, host reboot test, or full Pigsty installation.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
title: "Farrow 0.7.0:简化测试环境,自动恢复故障"
3+
linkTitle: Farrow 0.7.0
4+
description: 缩短首次启动路径、精简进度输出、独立初始化可选功能,统一通过 up 恢复。
5+
date: 2026-09-16
6+
weight: 1
7+
categories: [Release]
8+
tags: [Farrow 0.7.0, QEMU, Release]
9+
icon: fa-solid fa-rocket
10+
---
11+
12+
Farrow 0.7.0 简化测试环境的启动与恢复。重复执行 `farrow up` 即可继续中断的工作、
13+
重试未完成的客机初始化,并原位更新旧的客机脚本,无需重启正在运行的虚拟机。
14+
15+
## 主要变化
16+
17+
- **缩短首次使用路径。** 交互式 `up` 可以创建默认配置、准备缺少的宿主工具,并恢复
18+
已正确安装但未运行的 Farrow 网络。短检查保持安静,长任务显示进度,完成后给出简洁结果。
19+
- **可用的环境继续运行。** 数据盘、共享目录、客机主机名、节点间 SSH 和私网分别初始化。
20+
可选功能失败时明确报告限制,保留可用的管理 SSH;后续 `up` 跳过健康步骤。
21+
- **自动恢复测试数据盘。** 可用文件系统直接复用;无法识别或确认损坏的文件系统会被
22+
清空重建并重新挂载,结果明确提示旧数据已丢弃。探测失败、设备暂缺、挂载占用和底层
23+
I/O 故障不会触发格式化。
24+
- **减少手工排障。** 不可写的共享目录降级为只读,权限修正后重复 `up` 恢复;已停止
25+
虚拟机的自动 SSH 端口被占用时重新分配。镜像传输支持续传和官方源故障切换,保留摘要校验。
26+
- **精简输出,分离提示与状态。** 成功命令给出短摘要,限制按问题分组,JSON/YAML 保留
27+
结构化结果。客机警告单独缓存,不进入 schema-2 虚拟机状态和节点工件目录,旧版本仍可
28+
读取并管理原有环境。
29+
30+
## 升级说明
31+
32+
**数据盘按可丢弃的测试存储处理。`up` 可能清空损坏的文件系统,包括 `persistent` 数据盘。**
33+
`persistent` 表示销毁、重建虚拟机时保留盘,不表示在故障恢复时保留损坏内容。有价值的数据
34+
请存放在这些测试盘之外。此次自动清盘不涉及系统盘和宿主机共享目录。
35+
36+
不增加单独的 `repair` 命令,恢复工作统一由 `up` 完成。`start` 继续只启动已有节点,
37+
不应用配置;`--no-wait` 跳过就绪检查及客机恢复步骤。
38+
39+
管理 SSH 可用、但可选功能受限时返回 0。要求全部功能可用的脚本应检查 JSON/YAML 的
40+
`nodes[].warnings`;数据盘重置等自动操作写入 `nodes[].repairs`。回退 CLI 不会恢复已丢弃
41+
的数据,也不会回退已经安装到客机中的脚本。
42+
43+
旧版 0.6.0 初始化中断时,可能在安装前就删除暂存的控制节点 SSH 私钥。`up` 能恢复
44+
管理访问并继续独立步骤,但密钥缺失时仍报告 `control-ssh` 限制;原位重试不会重新注入
45+
私钥。需要节点间 SSH 时,先用 `farrow plan` 查看磁盘影响,再显式重建受影响的控制节点。
46+
47+
## 安装或升级
48+
49+
```bash
50+
curl -fLO https://github.com/pgsty/farrow/releases/download/v0.7.0/install.sh
51+
chmod +x install.sh
52+
FARROW_VERSION=0.7.0 ./install.sh
53+
farrow version
54+
farrow up
55+
```
56+
57+
提供 macOS/Linux 的 amd64/arm64 归档、Linux DEB/RPM、安装器、校验和、SBOM 和 Homebrew
58+
Formula。沿用 pre-1.0 规则,在 GitHub 标记为 Pre-release,安装时需指定 `FARROW_VERSION`
59+
60+
## 验证范围
61+
62+
完整源码检查覆盖单元与 race 测试、静态检查、四平台编译、安装器与镜像流水线检查和许可证。
63+
Ubuntu amd64/KVM 隔离环境实际验证了 Ubuntu 24.04 客机的数据盘损坏重置、忙碌挂载、探测失败、
64+
持久盘重建、共享目录恢复,以及重复 `up` 保留运行进程。macOS 本轮验证为 CLI 冒烟及编译,
65+
不宣称新增 HVF 客机重放、宿主重启或完整 Pigsty 安装验收。

content/docs/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Choose the shortest path for your task:
2121
release gates.
2222

2323
New users should follow the [Quick Start](start/tutorial/). The complete normal
24-
path is `farrow setup` and `farrow up`.
24+
path is `farrow up` to start the lab, then `farrow ssh` to connect.
2525

2626
> [!IMPORTANT]
2727
> Farrow is pre-1.0. Current source behavior, native validation, packaging,

content/docs/_index.zh.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ Farrow 把一份 Pigsty 兼容的 Inventory 启动成固定 IP 的 QEMU 虚拟
1818
- **[参考](reference/)**:Inventory 字段、命令、参数、输出与退出码。
1919
- **[关于](about/)**:设计、真机验证、已知限制与发布门禁。
2020

21-
新手直接跟随[快速上手](start/tutorial/)即可。正常路径只有两条命令:`farrow setup`
22-
`farrow up`
21+
新手直接跟随[快速上手](start/tutorial/)即可。正常路径只有两条命令:`farrow up`
22+
启动环境,`farrow ssh` 进入虚拟机
2323

2424
> [!IMPORTANT]
2525
> Farrow 仍是 pre-1.0。当前源码、真机验证、打包、发布与线上站点是不同门禁。

content/docs/about/status.md

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,17 @@ and the public site are separate gates. Install instructions are in the
1111
[Quick Start](../../start/tutorial/#install).
1212

1313
The current public release is
14-
[`v0.6.0`](https://github.com/pgsty/farrow/releases/tag/v0.6.0). It defaults to
15-
Ubuntu 24.04 and improves plans, status, and lab lifecycle operations. See the
16-
[release notes](../../../blog/release/farrow-0.6.0/) for upgrade instructions.
17-
The latest native replay below used an isolated macOS arm64/HVF U24 lab;
18-
Linux-host and other outstanding results retain their original dates.
14+
[`v0.7.0`](https://github.com/pgsty/farrow/releases/tag/v0.7.0). It improves first-run
15+
setup, progress output, and recovery through `up`. See the
16+
[release notes](../../../blog/release/farrow-0.7.0/) for upgrade instructions and
17+
the automatic test-data reset policy. The new recovery replay used an isolated
18+
Ubuntu amd64/KVM lab; macOS HVF and other results retain their original dates.
1919

2020
## Summary
2121

2222
| Host | Path | Last verified | Result |
2323
|---|---|---|---|
24+
| Ubuntu 26.04 amd64 | KVM, QEMU 10.2.1, Ubuntu 24.04 guest | 2026-09-16 (0.7.0 recovery) | damaged disk resets, failed probes, busy mounts, retained-disk recreation, share recovery, and repeated healthy up passed |
2425
| macOS arm64 | HVF, Ubuntu 24.04.4 guests | 2026-09-05 (0.6.0 lifecycle changes) | create, scale-out, peer SSH, stop/start, reload, recreate, partial status, and scale-in passed |
2526
| macOS 26.6.2 arm64 | HVF, QEMU 11.1, socket_vmnet | 2026-09-01 (`v0.2.0`) | selected create/SSH/stop/start, incremental cached create, whole status, whole destroy passed |
2627
| macOS 26.6.2 arm64 | HVF, QEMU 11.1, socket_vmnet | 2026-08-27 | one node and additive four nodes passed |
@@ -37,7 +38,7 @@ Linux-host and other outstanding results retain their original dates.
3738
- host reboot persistence;
3839
- macOS amd64 and Linux arm64 native runs;
3940
- EL7 through the current native Linux/amd64 lifecycle;
40-
- current 9p share replay;
41+
- current macOS 9p share replay;
4142
- a complete current Pigsty `configure → farrow up → install.yml` run;
4243
- clean-host published Homebrew/DEB/RPM consumption.
4344

@@ -52,6 +53,36 @@ custody must be formalized before 1.0.
5253
Each entry belongs to the exact checkpoint exercised that day. Later source or
5354
documentation edits do not inherit native proof without another replay.
5455

56+
### Farrow 0.7.0 release — 2026-09-16
57+
58+
Release commit `9c6d4896d93733d1cb60a7e5d8591e9a06659c9d` passed the complete
59+
[source CI](https://github.com/pgsty/farrow/actions/runs/35118137961) and independent
60+
[packaging snapshot](https://github.com/pgsty/farrow/actions/runs/35118137990) before
61+
tagging. The [tag workflow](https://github.com/pgsty/farrow/actions/runs/35119206685)
62+
repeated the gates and published a draft with 20 assets. After inspection, the
63+
release was made public; all 20 anonymous downloads returned HTTP 200 and matched
64+
the inspected bytes, including all 19 checksummed payloads. Public installers on
65+
macOS arm64 and Ubuntu amd64 installed the exact archive binaries. Download tests
66+
used the host's configured proxy; m3 reached it through a temporary loopback tunnel.
67+
68+
The Ubuntu amd64/KVM recovery matrix covered corrupt ext4/XFS filesystems,
69+
retained disks, failed probes, busy mounts, read-only shares, and repeated healthy
70+
`up` without process replacement. A public 0.6.0 bootstrap failed its egress probe;
71+
0.7.0 resumed that same VM in 3.3 seconds. Probe failure left existing disk data
72+
and UUID intact. The old 0.6.0 CLI still completed status, stop, start, and destroy
73+
after upgrade, including with a cached optional warning. A fresh VM from the
74+
final 0.7.0 archive booted without warnings and ignored the old VM's cache.
75+
76+
The publicly installed Linux binary also reset a deliberately damaged disposable
77+
ext4 disk in 3.2 seconds, reported discarded data, and retained the running VM's
78+
process. Stop, start, and purge then passed.
79+
80+
That interrupted 0.6.0 bootstrap had already deleted its staged control-node SSH
81+
key. Management access recovered, but missing peer SSH remained an explicit
82+
`control-ssh` limitation; see the [upgrade notes](../../../blog/release/farrow-0.7.0/).
83+
This release adds no guest images: Catalog `2026090501` remains unchanged.
84+
There was no new macOS HVF, host reboot, or complete Pigsty replay.
85+
5586
### Farrow 0.6.0 release — 2026-09-05
5687

5788
The lifecycle and UX changes passed two adversarial Claude Code Fable 5.1

content/docs/about/status.zh.md

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@ aliases: [/docs/project/, /docs/project/status/, /docs/project/roadmap/, /docs/p
99
Farrow 仍是 pre-1.0。源码测试、带日期的真机重放、软件包、发布、CI 与线上站点是不同门禁。
1010
安装方法见[快速上手](../../start/tutorial/#安装)
1111

12-
当前公开版本为 [`v0.6.0`](https://github.com/pgsty/farrow/releases/tag/v0.6.0)
13-
默认使用 Ubuntu 24.04,改进计划、状态和日常生命周期操作。
14-
升级方法见[发布说明](../../../blog/release/farrow-0.6.0/)最新真机重放使用隔离的
15-
macOS arm64/HVF U24 环境;Linux 宿主等其他验证仍保留各自的原始日期
12+
当前公开版本为 [`v0.7.0`](https://github.com/pgsty/farrow/releases/tag/v0.7.0)
13+
改进首次启动、进度输出,并统一通过 `up` 恢复故障。升级方法与测试数据自动清盘规则见
14+
[发布说明](../../../blog/release/farrow-0.7.0/)新增恢复验证使用隔离的 Ubuntu amd64/KVM
15+
环境;macOS HVF 与其他验证保留各自的原始日期
1616

1717
## 概览
1818

1919
| 宿主 | 路径 | 最后验证 | 结果 |
2020
|---|---|---|---|
21+
| Ubuntu 26.04 amd64 | KVM、QEMU 10.2.1、Ubuntu 24.04 Guest | 2026-09-16(0.7.0 恢复) | 损坏盘重置、探测失败、忙碌挂载、保留盘重建、共享目录恢复与重复健康 up 通过 |
2122
| macOS arm64 | HVF、Ubuntu 24.04.4 Guest | 2026-09-05(0.6.0 生命周期修改) | 创建、扩容、同伴 SSH、stop/start、reload、recreate、部分状态与缩容通过 |
2223
| macOS 26.6.2 arm64 | HVF、QEMU 11.1、socket_vmnet | 2026-09-01(`v0.2.0`| 选点创建/SSH/stop/start、增量创建已缓存镜像、whole status、whole destroy 通过 |
2324
| macOS 26.6.2 arm64 | HVF、QEMU 11.1、socket_vmnet | 2026-08-27 | 单节点与增量四节点通过 |
@@ -34,7 +35,7 @@ macOS arm64/HVF U24 环境;Linux 宿主等其他验证仍保留各自的原始
3435
- 宿主重启持久性;
3536
- macOS amd64 与 Linux arm64 真机;
3637
- 当前 Linux/amd64 原生 EL7 生命周期;
37-
- 当前 9p share 重放;
38+
- 当前 macOS 9p share 重放;
3839
- 完整的 Pigsty `configure → farrow up → install.yml`
3940
- 干净宿主上的公开 Homebrew/DEB/RPM 安装。
4041

@@ -46,6 +47,30 @@ macOS arm64/HVF U24 环境;Linux 宿主等其他验证仍保留各自的原始
4647

4748
每条记录只属于当天真正执行过的准确 Checkpoint;后续源码或文档修改不会自动继承真机证明。
4849

50+
### Farrow 0.7.0 发布:2026-09-16
51+
52+
发布提交 `9c6d4896d93733d1cb60a7e5d8591e9a06659c9d` 在打 Tag 前通过完整
53+
[源码 CI](https://github.com/pgsty/farrow/actions/runs/35118137961) 与独立
54+
[打包 Snapshot](https://github.com/pgsty/farrow/actions/runs/35118137990)
55+
[Tag 工作流](https://github.com/pgsty/farrow/actions/runs/35119206685) 重复检查并生成包含
56+
20 个资产的草稿,检查后公开发布。20 个匿名下载均返回 HTTP 200,字节与检查过的草稿
57+
一致,19 项载荷全部通过摘要校验。macOS arm64 与 Ubuntu amd64 的公开安装器安装结果
58+
均与发布归档中的二进制一致。下载验证使用宿主现有代理,m3 通过临时回环隧道访问该代理。
59+
60+
Ubuntu amd64/KVM 故障矩阵覆盖 ext4/XFS 损坏、持久盘、探测失败、忙碌挂载、只读共享
61+
和重复健康 `up` 保留进程。公开版 0.6.0 因出网探测失败而中断,0.7.0 在 3.3 秒内接续
62+
同一台 VM;探测失败期间已有盘的数据与 UUID 保持不变。升级后回退 0.6.0,仍能执行
63+
status、stop、start 与 destroy,包括存在可选警告缓存的情况。最终 0.7.0 归档新建的 VM
64+
无警告启动,也不会继承旧实例的警告缓存。
65+
66+
公开安装器装出的 Linux 二进制还在 3.2 秒内重置了人为破坏的可丢弃 ext4 数据盘,
67+
明确报告数据已丢弃,同时保留 VM 运行进程;随后 stop、start 与 purge 均通过。
68+
69+
该 0.6.0 中断现场已经删除了暂存的控制节点 SSH 私钥。管理访问恢复,但节点间 SSH
70+
仍以 `control-ssh` 限制明确报告,详见[升级说明](../../../blog/release/farrow-0.7.0/)
71+
本次未发布新客机镜像,Catalog `2026090501` 不变;未新增 macOS HVF、宿主重启或完整
72+
Pigsty 安装重放。
73+
4974
### Farrow 0.6.0 发布:2026-09-05
5075

5176
生命周期与 UX 修改通过 Claude Code Fable 5.1 / xhigh 两轮对抗性审查;发布元数据与 CI

0 commit comments

Comments
 (0)