Skip to content

Commit fd0b68a

Browse files
committed
docs(release): publish pig v1.8.1
1 parent 51cf245 commit fd0b68a

7 files changed

Lines changed: 195 additions & 28 deletions

File tree

content/blog/design/ops-cli-safety.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "One Grammar for Dangerous Work: PIG's Operations CLI Safety Contract"
33
linkTitle: "Operations CLI Safety"
44
date: 2026-07-02
5-
lastmod: 2026-08-29
5+
lastmod: 2026-09-03
66
description: "How PIG separates primitives from orchestrators, makes destructive intent explicit, and prevents aliases or structured output from changing operational meaning."
77
tags: [cli, postgres, pgbackrest, pitr]
88
weight: 40
@@ -11,7 +11,7 @@ draft: false
1111
---
1212

1313
> **Decision date:** 2026-07-02<br>
14-
> **Status:** Released for `pg`, `pb`, `pt`, and `pitr` by v1.5.0; the 2026-08-29 `do` and `build proxy` refinements are implemented and tested in source, but not yet released.<br>
14+
> **Status:** Released for `pg`, `pb`, `pt`, and `pitr` by v1.5.0; the 2026-08-29 `do` and `build proxy` refinements were released in [v1.8.1](/release/pig-1.8.1/).<br>
1515
> **Current reference:** [`pig pg`](/pg/), [`pig pb`](/pb/), [`pig pitr`](/pitr/), [`pig do`](/do/), and [`pig build`](/build/)<br>
1616
> **Scope:** PIG-owned operational commands; transparent upstream commands retain upstream confirmation and exit behavior.
1717
@@ -83,15 +83,19 @@ confirmation, stop escalation, side restores, restart behavior, and structured f
8383
Patroni later moved to transparent passthrough. That refinement keeps the same safety principle:
8484
PIG owns safeguards only for workflows it owns.
8585

86-
The same contract was applied to `pig do` name and cluster validation in source commit
87-
`3e1603b2bfbb949fb77b7ecd5fd458ec2ee45d25`, with Ansible built-in targets closed in
88-
`a88048596dffdfd6c1bb51cdbe7da6782a11cc22`. Package-backed, credential-safe, truthful
89-
`build proxy` setup entered in `220ef9c722b54951d3dc502ea3e3baafd642b592`, followed by
90-
structured-argument redaction and corrected machine annotations in source commit
91-
`74cb1281860fae659f2aa4fec2898af34a0c2519`, and optional operands were reflected in
92-
the machine grammar in `de7ffd0e81e500ea2f4268ca326917aa385150ca`. These changes were
93-
exercised on Ubuntu 24.04 and Rocky Linux 9 ARM64 Farrow guests; this is source and live-lab
94-
evidence, not release evidence.
86+
The same contract was applied to `pig do` name and cluster validation in
87+
[`3e1603b`](https://github.com/pgsty/pig/commit/3e1603b2bfbb949fb77b7ecd5fd458ec2ee45d25),
88+
with Ansible built-in targets closed in
89+
[`a880485`](https://github.com/pgsty/pig/commit/a88048596dffdfd6c1bb51cdbe7da6782a11cc22).
90+
Package-backed, credential-safe, truthful `build proxy` setup entered in
91+
[`220ef9c`](https://github.com/pgsty/pig/commit/220ef9c722b54951d3dc502ea3e3baafd642b592),
92+
followed by structured-argument redaction and corrected machine annotations in
93+
[`74cb128`](https://github.com/pgsty/pig/commit/74cb1281860fae659f2aa4fec2898af34a0c2519),
94+
and optional operands were reflected in the machine grammar in
95+
[`de7ffd0`](https://github.com/pgsty/pig/commit/de7ffd0e81e500ea2f4268ca326917aa385150ca).
96+
The changes were exercised on Ubuntu 24.04 and Rocky Linux 9 ARM64 Farrow guests, then released
97+
from source commit [`e3d1eb4`](https://github.com/pgsty/pig/commit/e3d1eb4a86cedddcf49fff398fc69751e861372e)
98+
after the [v1.8.1 CI run](https://github.com/pgsty/pig/actions/runs/33718574084) passed.
9599

96100
## Current status {#status}
97101

content/blog/design/ops-cli-safety.zh.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "危险操作只有一套语法:PIG 运维 CLI 安全契约"
33
linkTitle: "运维 CLI 安全"
44
date: 2026-07-02
5-
lastmod: 2026-08-29
5+
lastmod: 2026-09-03
66
description: "PIG 如何分离底层原语与编排器、显式表达破坏性意图,并防止别名或结构化输出改变操作含义。"
77
tags: [cli, postgres, pgbackrest, pitr]
88
weight: 40
@@ -11,7 +11,7 @@ draft: false
1111
---
1212

1313
> **决策日期:** 2026-07-02<br>
14-
> **状态:** `pg``pb``pt``pitr` 已于 v1.5.0 交付;2026-08-29 的 `do``build proxy` 修订已在源码中实现并通过测试,但尚未发布。<br>
14+
> **状态:** `pg``pb``pt``pitr` 已于 v1.5.0 交付;2026-08-29 的 `do``build proxy` 修订已随 [v1.8.1](/zh/release/pig-1.8.1/) 发布。<br>
1515
> **当前参考:** [`pig pg`](/zh/pg/)[`pig pb`](/zh/pb/)[`pig pitr`](/zh/pitr/)[`pig do`](/zh/do/)[`pig build`](/zh/build/)<br>
1616
> **范围:** PIG 自己拥有的运维命令;透明上游命令继续采用上游的确认与退出行为。
1717
@@ -68,14 +68,18 @@ Guard 测试遍历 Cobra 树,拒绝同级与跨层别名冲突;恢复测试
6868

6969
Patroni 后来改成透明透传,这仍遵循同一原则:PIG 只为自己拥有的工作流提供安全保证。
7070

71-
同一契约在源码提交 `3e1603b2bfbb949fb77b7ecd5fd458ec2ee45d25` 中扩展到 `pig do` 的名称与集群校验,
72-
并在 `a88048596dffdfd6c1bb51cdbe7da6782a11cc22` 中封闭 Ansible 内置目标。
73-
软件包驱动、凭据安全且如实报告失败的 `build proxy` 设置进入
74-
`220ef9c722b54951d3dc502ea3e3baafd642b592`,随后由
75-
`74cb1281860fae659f2aa4fec2898af34a0c2519` 补齐结构化参数遮盖与机器注解,
76-
并在 `de7ffd0e81e500ea2f4268ca326917aa385150ca` 中把可选参数同步到机器语法。
77-
这些修改均在 Ubuntu 24.04 与 Rocky Linux 9 ARM64 Farrow 客体中完成实机测试;
78-
这属于源码与本地测试环境证据,不是发布证据。
71+
同一契约在 [`3e1603b`](https://github.com/pgsty/pig/commit/3e1603b2bfbb949fb77b7ecd5fd458ec2ee45d25)
72+
中扩展到 `pig do` 的名称与集群校验,并在
73+
[`a880485`](https://github.com/pgsty/pig/commit/a88048596dffdfd6c1bb51cdbe7da6782a11cc22)
74+
中封闭 Ansible 内置目标。软件包驱动、凭据安全且如实报告失败的 `build proxy` 设置进入
75+
[`220ef9c`](https://github.com/pgsty/pig/commit/220ef9c722b54951d3dc502ea3e3baafd642b592)
76+
随后由 [`74cb128`](https://github.com/pgsty/pig/commit/74cb1281860fae659f2aa4fec2898af34a0c2519)
77+
补齐结构化参数遮盖与机器注解,并在
78+
[`de7ffd0`](https://github.com/pgsty/pig/commit/de7ffd0e81e500ea2f4268ca326917aa385150ca)
79+
中把可选参数同步到机器语法。这些修改均在 Ubuntu 24.04 与 Rocky Linux 9 ARM64 Farrow
80+
客体中完成实机测试,并在 [v1.8.1 CI](https://github.com/pgsty/pig/actions/runs/33718574084)
81+
通过后,从源码提交 [`e3d1eb4`](https://github.com/pgsty/pig/commit/e3d1eb4a86cedddcf49fff398fc69751e861372e)
82+
正式发布。
7983

8084
## 当前状态 {#status}
8185

content/blog/design/pig-2-product-direction.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "PIG 2.0 Product Direction: A Proposal, Not a Release Contract"
33
linkTitle: "PIG 2.0 Proposal"
44
date: 2026-08-13
5-
lastmod: 2026-08-28
5+
lastmod: 2026-09-03
66
description: "The proposed PIG 2.0 boundary: a stable Pigsty onboarding front door, verifiable Catalog client, and thin orchestrator that keeps deployment explicit."
77
tags: [cli, sty, catalog]
88
weight: 85
@@ -12,7 +12,7 @@ draft: false
1212

1313
> **Decision date:** 2026-08-13<br>
1414
> **Status:** Proposal for owner review; it is not implemented and is not a PIG 2.0 release commitment.<br>
15-
> **Current reference:** [PIG documentation](/docs/) and the current [v1.8.0 release](/release/pig-1.8.0/)<br>
15+
> **Current reference:** [PIG documentation](/docs/) and the current [v1.8.1 release](/release/pig-1.8.1/)<br>
1616
> **Scope:** Candidate product boundaries and verification gates for a future PIG 2.0 / Pigsty 5.0 line.
1717
1818
## Decision {#decision}
@@ -112,6 +112,6 @@ project pin, setup command, event receipt, or 2.0 migration contract.
112112
## Current status {#status}
113113

114114
This is a public proposal record, not an announcement. Current users should follow the
115-
[v1.8.0 documentation](/docs/). Catalog v2 security selection, typed overlays, path layout details,
115+
[v1.8.1 documentation](/docs/). Catalog v2 security selection, typed overlays, path layout details,
116116
EL7 support tier, event-bridge viability, and the final 2.0 scope still require explicit decisions
117117
and experimental evidence before implementation or release claims are appropriate.

content/blog/design/pig-2-product-direction.zh.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "PIG 2.0 产品方向:一份提案,而不是发布契约"
33
linkTitle: "PIG 2.0 提案"
44
date: 2026-08-13
5-
lastmod: 2026-08-28
5+
lastmod: 2026-09-03
66
description: "PIG 2.0 的候选边界:稳定的 Pigsty 初始化前门、可验证 Catalog 客户端,以及保持显式部署的薄编排层。"
77
tags: [cli, sty, catalog]
88
weight: 85
@@ -12,7 +12,7 @@ draft: false
1212

1313
> **决策日期:** 2026-08-13<br>
1414
> **状态:** 等待 owner 审议的提案;尚未实现,也不是 PIG 2.0 发布承诺。<br>
15-
> **当前参考:** [PIG 文档](/zh/docs/)与当前 [v1.8.0 发布](/zh/release/pig-1.8.0/)<br>
15+
> **当前参考:** [PIG 文档](/zh/docs/)与当前 [v1.8.1 发布](/zh/release/pig-1.8.1/)<br>
1616
> **范围:** 未来 PIG 2.0 / Pigsty 5.0 的候选产品边界与验证门槛。
1717
1818
## 决策 {#decision}
@@ -94,6 +94,6 @@ event receipt 或 2.0 迁移契约。
9494

9595
## 当前状态 {#status}
9696

97-
这是一份公开提案记录,不是发布公告。当前用户应继续遵循 [v1.8.0 文档](/zh/docs/)
97+
这是一份公开提案记录,不是发布公告。当前用户应继续遵循 [v1.8.1 文档](/zh/docs/)
9898
Catalog v2 安全方案、typed overlay、路径布局细节、EL7 支持档位、event bridge 可行性与最终 2.0 范围,
9999
都需要明确决策和实验结果,之后才能作出实现或发布声明。

content/blog/release/pig-1.8.1.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
title: "pig v1.8.1"
3+
linkTitle: "v1.8.1"
4+
date: 2026-09-03
5+
description: "CLI safety and repository hardening, a refreshed extension catalog, Go 1.27.1, and cargo-pgrx 0.19.2."
6+
tags: [cli, repo, build, catalog]
7+
weight: 1
8+
authors: [Vonng]
9+
release_url: https://github.com/pgsty/pig/releases/tag/v1.8.1
10+
---
11+
12+
Pig `v1.8.1` is a safety, correctness, and maintenance release on top of
13+
[v1.8.0](/release/pig-1.8.0/). It hardens command initialization, privileged log access,
14+
repository and build workflows, release integrity, and structured-output redaction. It also
15+
refreshes the embedded extension catalog and moves the build toolchain to Go `1.27.1` and
16+
`cargo-pgrx 0.19.2`. The embedded Pigsty version remains `4.5.0`.
17+
18+
## CLI safety and correctness
19+
20+
- Read-only and configuration-independent commands no longer require a writable `HOME` or create
21+
`~/.pig` as a side effect. Leaf commands preserve their declared initialization policy.
22+
- `pig pg log`, `pig pt log`, and `pig pb log` preserve arguments through sudo execution as the
23+
database OS user and reject unsafe log-file links.
24+
- `pig do` validates Pigsty names and rejects reserved Ansible cluster targets before execution.
25+
- Native PostgreSQL role detection is bound to the selected instance rather than an unrelated
26+
local default.
27+
- Structured results redact credentials, license material, and build-proxy identifiers while
28+
retaining truthful command failure.
29+
30+
## Repository and build hardening
31+
32+
- Repository add and remove operations now fail when any requested operation fails, deduplicate
33+
module selections, and preserve replacement boundaries.
34+
- Offline cache bundles reject unsafe paths, links, special files, and incomplete inputs; archive
35+
extraction remains rooted and fail-closed. The obsolete exported cache wrapper was removed after
36+
production moved to the structured result path.
37+
- Build source and artifact validation rejects incomplete or unsafe inputs. `pig build proxy`
38+
uses the package-provided service contract, treats its operands as optional, and keeps secret
39+
identifiers out of structured output.
40+
- Self-update verifies release checksums, and release tooling refuses dirty or mismatched-tag
41+
publication and immutable artifact replacement.
42+
43+
## Toolchain and catalog
44+
45+
- Go is updated to `1.27.1`; Logrus to `1.10.2`; GoReleaser to `2.18.0`; and
46+
golangci-lint to `2.13.2`.
47+
- `pig build pgrx` now installs `cargo-pgrx 0.19.2` by default. Use `-v` when an extension requires
48+
an older pgrx line recorded in its catalog metadata.
49+
- The embedded catalog is refreshed from the maintained pgext view. It adds `acdat 0.1.0`, marks
50+
the superseded `pgcontext_pgvector` entry removed, and updates package versions, repository
51+
ownership, PostgreSQL coverage, and availability matrices.
52+
53+
## Verification
54+
55+
The release is built from source commit
56+
[`e3d1eb4`](https://github.com/pgsty/pig/commit/e3d1eb4a86cedddcf49fff398fc69751e861372e).
57+
The exact commit passed the full [CI workflow](https://github.com/pgsty/pig/actions/runs/33718574084),
58+
including randomized tests, command race regressions, vet, static analysis, dead-code detection,
59+
vulnerability scanning, and a GoReleaser snapshot. The tag then passed the
60+
[Release workflow](https://github.com/pgsty/pig/actions/runs/33718945217), which produced the
61+
published RPM, DEB, macOS, and Linux artifacts.
62+
63+
## Compatibility notes
64+
65+
- No CLI command or flag is removed in this release.
66+
- Scripts that previously depended on read-only commands creating local configuration should
67+
create that state explicitly instead.
68+
- The pgrx default changes to `0.19.2`; extension-specific metadata remains authoritative when a
69+
build requires another pgrx version.
70+
71+
## Checksums
72+
73+
```checksums
74+
839ce3818941318be7707bd6c845f371c609d6f176f04705916108f04cbee38c pig-1.8.1-1.aarch64.rpm
75+
54183895b09f82fb4d00d75f99e84f6bb4761e4bebd24042d646ee8b309a6d03 pig-1.8.1-1.x86_64.rpm
76+
167891e181d460d478a5ed8637d41017bc73201ec479a5735ca43c09dcf3826f pig-v1.8.1.darwin-amd64.tar.gz
77+
1338500b4373c3ee3a08d6233202b3f391f5bf69ac0517501884ed2978e17d26 pig-v1.8.1.darwin-arm64.tar.gz
78+
5050cc4444313edc5863acd1a6c20bcfd3ae4af6e849c978d9a5882bc58f60a3 pig-v1.8.1.linux-amd64.tar.gz
79+
ecf5fcf11e35169b557380bbfc717562db5a440271b79b9eb3b8fd74c0c7f167 pig-v1.8.1.linux-arm64.tar.gz
80+
cf0de4f938c7360908ac0e315a7241ab7f3810eb026e28d4b92137ad743dde34 pig_1.8.1-1_amd64.deb
81+
108f50c5e6ccaf87b27cb62e36bbd8b45436039626e7715dbb3912bcbbb6963b pig_1.8.1-1_arm64.deb
82+
```
83+
84+
{{< release-card >}}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
title: "pig v1.8.1"
3+
linkTitle: "v1.8.1"
4+
date: 2026-09-03
5+
description: "CLI 安全与仓库流程加固、扩展目录刷新、Go 1.27.1,以及 cargo-pgrx 0.19.2。"
6+
tags: [cli, repo, build, catalog]
7+
weight: 1
8+
authors: [Vonng]
9+
release_url: https://github.com/pgsty/pig/releases/tag/v1.8.1
10+
---
11+
12+
Pig `v1.8.1`[v1.8.0](/zh/release/pig-1.8.0/) 之上的安全、正确性与维护版本。
13+
本版本加固命令初始化、提权日志访问、仓库与构建流程、发布完整性,以及结构化输出脱敏;
14+
同时刷新内置扩展目录,并将构建工具链升级到 Go `1.27.1``cargo-pgrx 0.19.2`
15+
内置 Pigsty 版本仍为 `4.5.0`
16+
17+
## CLI 安全与正确性
18+
19+
- 只读且不依赖配置的命令不再要求 `HOME` 可写,也不会把创建 `~/.pig` 当作查询副作用;
20+
叶子命令会保留自己声明的初始化策略。
21+
- `pig pg log``pig pt log``pig pb log` 通过 sudo 切换数据库 OS 用户时完整保留参数,
22+
并拒绝不安全的日志文件链接。
23+
- `pig do` 在执行前校验 Pigsty 名称,并拒绝 Ansible 保留的集群目标。
24+
- PostgreSQL 原生角色检测绑定到用户选中的实例,而不是无关的本机默认实例。
25+
- 结构化结果会遮盖凭据、许可证材料与构建代理标识符,同时保持真实的失败状态。
26+
27+
## 仓库与构建加固
28+
29+
- 仓库添加与删除在任一请求失败时整体返回失败,对模块选择去重,并保持替换边界。
30+
- 离线缓存包拒绝不安全路径、链接、特殊文件与不完整输入;归档解压继续采用有根、失败关闭的实现。
31+
生产路径迁移到结构化结果后,删除了仅由测试引用的旧导出缓存包装。
32+
- 构建源码与制品校验会拒绝不完整或不安全输入;`pig build proxy` 使用软件包提供的服务契约,
33+
参数保持可选,结构化输出不再泄露秘密标识符。
34+
- 自更新会验证发布校验和;发布工具拒绝脏工作区、错误 tag,以及覆盖不可变制品。
35+
36+
## 工具链与扩展目录
37+
38+
- Go 升级到 `1.27.1`,Logrus 升级到 `1.10.2`,GoReleaser 升级到 `2.18.0`
39+
golangci-lint 升级到 `2.13.2`
40+
- `pig build pgrx` 默认安装 `cargo-pgrx 0.19.2`;如果某个扩展的目录元数据要求旧版 pgrx,
41+
仍可通过 `-v` 显式选择。
42+
- 内置目录从维护中的 pgext 视图刷新:新增 `acdat 0.1.0`,将已被取代的
43+
`pgcontext_pgvector` 标记为 removed,并更新软件包版本、仓库归属、PostgreSQL 覆盖与可用性矩阵。
44+
45+
## 验证
46+
47+
本版本从源码提交
48+
[`e3d1eb4`](https://github.com/pgsty/pig/commit/e3d1eb4a86cedddcf49fff398fc69751e861372e)
49+
构建。该精确提交通过完整 [CI 工作流](https://github.com/pgsty/pig/actions/runs/33718574084)
50+
覆盖随机顺序测试、命令 race 回归、vet、静态分析、死代码检查、漏洞扫描与 GoReleaser snapshot。
51+
随后 tag 通过 [Release 工作流](https://github.com/pgsty/pig/actions/runs/33718945217),生成并发布
52+
RPM、DEB、macOS 与 Linux 制品。
53+
54+
## 兼容性提醒
55+
56+
- 本版本没有移除 CLI 命令或参数。
57+
- 如果旧脚本依赖只读命令顺便创建本地配置,应改为显式准备所需状态。
58+
- pgrx 默认值变为 `0.19.2`;构建特定扩展时,仍以该扩展的目录元数据为准。
59+
60+
## 校验和
61+
62+
制品:[GitHub Release](https://github.com/pgsty/pig/releases/tag/v1.8.1) · [checksums.txt](https://github.com/pgsty/pig/releases/download/v1.8.1/checksums.txt)
63+
64+
```checksums
65+
839ce3818941318be7707bd6c845f371c609d6f176f04705916108f04cbee38c pig-1.8.1-1.aarch64.rpm
66+
54183895b09f82fb4d00d75f99e84f6bb4761e4bebd24042d646ee8b309a6d03 pig-1.8.1-1.x86_64.rpm
67+
167891e181d460d478a5ed8637d41017bc73201ec479a5735ca43c09dcf3826f pig-v1.8.1.darwin-amd64.tar.gz
68+
1338500b4373c3ee3a08d6233202b3f391f5bf69ac0517501884ed2978e17d26 pig-v1.8.1.darwin-arm64.tar.gz
69+
5050cc4444313edc5863acd1a6c20bcfd3ae4af6e849c978d9a5882bc58f60a3 pig-v1.8.1.linux-amd64.tar.gz
70+
ecf5fcf11e35169b557380bbfc717562db5a440271b79b9eb3b8fd74c0c7f167 pig-v1.8.1.linux-arm64.tar.gz
71+
cf0de4f938c7360908ac0e315a7241ab7f3810eb026e28d4b92137ad743dde34 pig_1.8.1-1_amd64.deb
72+
108f50c5e6ccaf87b27cb62e36bbd8b45436039626e7715dbb3912bcbbb6963b pig_1.8.1-1_arm64.deb
73+
```
74+
75+
{{< release-card >}}

hugo.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ params:
269269
# OINK 文档 chrome 使用 PIG 的站点品牌图;静态路径会由主题自动解析。
270270
logo: img/pig.svg
271271
wordmark: img/pig-word.svg
272-
version: 1.8.0 # pig 最新版本号(= internal/config.PigVersion),正文用 {{< param version >}}
272+
version: 1.8.1 # pig 最新版本号(= internal/config.PigVersion),正文用 {{< param version >}}
273273
pigsty_version: 4.5.0 # pig 内置的 Pigsty 版本(= internal/config.PigstyVersion)
274274
pgext_count: 575 # Pigsty 已打包 PG 扩展数量,正文用 {{< param pgext_count >}}
275275
# 页脚版权行(OINK footer/copyright.html 会按 Markdown 渲染 authors)。

0 commit comments

Comments
 (0)