diff --git a/Makefile b/Makefile index 2f444629..cea9f164 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,7 @@ test: .venv-check/installed $(CHECK_PYTHON) -m unittest discover -s bin -p 'test_*.py' check: test + -@git rev-parse HEAD && git status --short --branch go mod verify $(HUGO) build --minify --cleanDestinationDir --printPathWarnings --printI18nWarnings python3 bin/check_internal_links.py public diff --git a/content/blog/release/pkg-3.15.2.md b/content/blog/release/pkg-3.15.2.md index 58f7066b..41d91461 100644 --- a/content/blog/release/pkg-3.15.2.md +++ b/content/blog/release/pkg-3.15.2.md @@ -38,7 +38,7 @@ Downstream applications must rebuild with Go 1.27.3 to pick up the Go standard l Downstream applications that rely on established CLI formatting and NetBSD builds continue to pin `go-humanize v1.0.1`, `go-runewidth v0.0.29`, and `go-systemd/v22 v22.6.0`. Because Go does not inherit `replace` directives from dependencies, each consuming application declares its own module replacements. -`v3.15.2` passed the full lint and `-race` test suites (including live LDAP integration), module verification, and all three CI workflows ([Go](https://github.com/pgsty/silo-pkg/actions/runs/40318147518), [LDAP](https://github.com/pgsty/silo-pkg/actions/runs/40318147326), and [VulnCheck](https://github.com/pgsty/silo-pkg/actions/runs/40318147298)). HTTP fixtures verified that both replication-removal entry points accept `200`/`204` while preserving `403` errors, and earlier 3.15 regression suites covered JWT validation boundaries, local etcd auth/watch/lease persistence, and CLI formatting. Scanner finding `GO-2026-5932` resides in deprecated OpenPGP packages that `silo-pkg` does not import (see the [shared security inventory](/blog/release/silo-20261026/#runtime-fixes)). +`v3.15.2` passed the full lint and `-race` test suites (including live LDAP integration), module verification, and all three CI workflows ([Go](https://github.com/pgsty/silo-pkg/actions/runs/40318147518), [LDAP](https://github.com/pgsty/silo-pkg/actions/runs/40318147326), and [VulnCheck](https://github.com/pgsty/silo-pkg/actions/runs/40318147298)). HTTP fixtures verified that both replication-removal entry points accept `200`/`204` while preserving `403` errors, and earlier 3.15 regression suites covered JWT validation boundaries, local etcd auth/watch/lease persistence, and CLI formatting. No new CVE fix is claimed for the SDK patches. Scanner finding `GO-2026-5932` resides in deprecated OpenPGP packages that `silo-pkg` does not import (see the [shared security inventory](/blog/release/silo-20261026/#runtime-fixes)). ```go require github.com/pgsty/silo-pkg/v3 v3.15.2 diff --git a/content/blog/release/pkg-3.15.2.zh.md b/content/blog/release/pkg-3.15.2.zh.md index de1124b0..4d20bc4b 100644 --- a/content/blog/release/pkg-3.15.2.zh.md +++ b/content/blog/release/pkg-3.15.2.zh.md @@ -38,7 +38,7 @@ aliases: 为保持既有 CLI 输出格式与 NetBSD 编译兼容,下游应用继续固定 `go-humanize v1.0.1`、`go-runewidth v0.0.29` 与 `go-systemd/v22 v22.6.0`。由于 Go 不会传递继承依赖模块的 `replace` 指令,各嵌入方需在自身 `go.mod` 中显式声明所需的模块替换。 -`v3.15.2` 已通过含 LDAP 集成在内的全量 lint 与 `-race` 竞态测试、模块校验及三项 CI 流水线([Go](https://github.com/pgsty/silo-pkg/actions/runs/40318147518)、[LDAP](https://github.com/pgsty/silo-pkg/actions/runs/40318147326)、[VulnCheck](https://github.com/pgsty/silo-pkg/actions/runs/40318147298))。HTTP 协议夹具验证了两个复制移除入口均同时接受 `200`/`204` 并保留 `403` 错误;此前的 3.15 依赖回归测试亦覆盖了 JWT 校验边界、本地 etcd 认证/Watch/租约持久化及 CLI 输出格式。模块级扫描中的 `GO-2026-5932` 位于未被导入的弃用 OpenPGP 包中,不影响运行代码(详见[统一安全审计清单](/zh/blog/release/silo-20261026/#runtime-fixes))。 +`v3.15.2` 已通过含 LDAP 集成在内的全量 lint 与 `-race` 竞态测试、模块校验及三项 CI 流水线([Go](https://github.com/pgsty/silo-pkg/actions/runs/40318147518)、[LDAP](https://github.com/pgsty/silo-pkg/actions/runs/40318147326)、[VulnCheck](https://github.com/pgsty/silo-pkg/actions/runs/40318147298))。HTTP 协议夹具验证了两个复制移除入口均同时接受 `200`/`204` 并保留 `403` 错误;此前的 3.15 依赖回归测试亦覆盖了 JWT 校验边界、本地 etcd 认证/Watch/租约持久化及 CLI 输出格式。SDK 补丁不宣称新的 CVE 修复。模块级扫描中的 `GO-2026-5932` 位于未被导入的弃用 OpenPGP 包中,不影响运行代码(详见[统一安全审计清单](/zh/blog/release/silo-20261026/#runtime-fixes))。 ```go require github.com/pgsty/silo-pkg/v3 v3.15.2 diff --git a/content/blog/release/silo-20261026.md b/content/blog/release/silo-20261026.md index 2dcf6d03..7c45c3ec 100644 --- a/content/blog/release/silo-20261026.md +++ b/content/blog/release/silo-20261026.md @@ -81,7 +81,7 @@ KES 20261026 rolls up the Go 1.27.3 toolchain and cloud-SDK dependency maintenan The 25 module updates also cover AWS support packages and Google generated APIs, while keeping Lip Gloss v1 and `gopkg.in/yaml.v3`. Packaging uses GoReleaser 2.19.0 and nFPM 2.48.0; Linux packages install `/usr/local/bin/kes` without auto-starting an unconfigured service. -Compatibility checks verified OpenBao KV v2 and local Moto Secrets Manager fixtures across pre-upgrade and post-upgrade encrypted objects, version rollbacks, and cold Server restarts. Preserve persistent keys, certificates, and configuration across upgrades, and verify object decryption after restarting Server. See the [complete KES commit history](https://github.com/pgsty/kes/compare/RELEASE.2026-10-18T00-00-00Z...RELEASE.2026-10-26T00-00-00Z). +Compatibility checks verified OpenBao KV v2 and local Moto Secrets Manager fixtures across pre-upgrade and post-upgrade encrypted objects, version rollbacks, and cold Server restarts. Local protocol fixtures do not certify real cloud accounts or backend crash durability. Preserve persistent keys, certificates, and configuration across upgrades, and verify object decryption after restarting Server. See the [complete KES commit history](https://github.com/pgsty/kes/compare/RELEASE.2026-10-18T00-00-00Z...RELEASE.2026-10-26T00-00-00Z). ## Console 2.5 and silo-pkg 3.15 {#console-250} @@ -99,7 +99,7 @@ Compatibility checks verified OpenBao KV v2 and local Moto Secrets Manager fixtu 4. **Known multipart and issue scope:** Public `ListMultipartUploads` continues to use the node-local in-memory cache and exact-key lookup, ignoring the retired `strict` switch with a startup warning. Issues [#79](https://github.com/pgsty/silo/issues/79) and [#217](https://github.com/pgsty/silo/issues/217) remain open, webhook hot-reload PR [#249](https://github.com/pgsty/silo/pull/249) is not included, and broader performance symptoms remain tracked in [#251](https://github.com/pgsty/silo/issues/251). {.steps} -**Storage timeout and consistency boundary:** A client-visible request timeout does not guarantee that underlying disk or RPC I/O has stopped or that the write failed to commit. Late commits, delayed rollbacks, and stale values or tags remain possible after partial drive failures, lock lease expiration, or network partitions. This release does not add distributed lock fencing and cannot automatically recover previously lost objects, remote tier payloads, or metadata. +**Storage timeout and consistency boundary:** A client-visible request timeout does not guarantee that underlying disk or RPC I/O has stopped or that the write failed to commit. Late commits, delayed rollbacks, and stale values or tags remain possible after partial drive failures, lock lease expiration, or network partitions. This release does not add distributed lock fencing and cannot automatically recover previously lost objects, remote tier payloads, or metadata. A later unconditional PUT does not establish ordering against an unresolved request. ## Downloads and verification {#delivery} @@ -410,3 +410,5 @@ The candidate sources with the October 24 dependency updates passed these additi - Native Darwin arm64 and cross-compiled Linux amd64 builds of mcli, Console, SILO, and KES; NetBSD amd64 cross-builds of mcli and SILO. Linux amd64 package-level Go vulnerability scans of all five projects found no affected imported packages (only the module-level `GO-2026-5932` entry remains, with no imports of the affected OpenPGP subpackages). + +Use the final release identities above when verifying artifacts: these earlier candidate checks describe dependency compatibility only and do not certify the final Server source. diff --git a/content/blog/release/silo-20261026.zh.md b/content/blog/release/silo-20261026.zh.md index 53e95e7f..c289b150 100644 --- a/content/blog/release/silo-20261026.zh.md +++ b/content/blog/release/silo-20261026.zh.md @@ -81,7 +81,7 @@ KES 20261026 汇总了 Go 1.27.3 与云厂商 SDK 依赖维护,将二进制、 全套 25 项模块更新还包含 AWS 配套模块与 Google 生成的 API 库;终端输出与 YAML 解析继续固定在 Lip Gloss v1 与 `gopkg.in/yaml.v3`。构建工具升级至 GoReleaser 2.19.0(nFPM 保持 2.48.0);Linux 软件包仅安装 `/usr/local/bin/kes` 可执行文件,不会自动启动未配置的服务。 -兼容性回归测试覆盖了 OpenBao KV v2 与本地 Moto Secrets Manager 协议夹具,验证了升级前后写入的加密对象读取、版本回滚以及 Server 冷重启解密。生产环境升级时请保留持久化根密钥、证书与配置,并在重启 Server 后实际执行读取解密验证。详见 [KES 完整提交历史](https://github.com/pgsty/kes/compare/RELEASE.2026-10-18T00-00-00Z...RELEASE.2026-10-26T00-00-00Z)。 +兼容性回归测试覆盖了 OpenBao KV v2 与本地 Moto Secrets Manager 协议夹具,验证了升级前后写入的加密对象读取、版本回滚以及 Server 冷重启解密。本地协议夹具不代表真实云账号认证或后端崩溃持久性。生产环境升级时请保留持久化根密钥、证书与配置,并在重启 Server 后实际执行读取解密验证。详见 [KES 完整提交历史](https://github.com/pgsty/kes/compare/RELEASE.2026-10-18T00-00-00Z...RELEASE.2026-10-26T00-00-00Z)。 ## Console 2.5 与 silo-pkg 3.15 {#console-250} @@ -99,7 +99,7 @@ KES 20261026 汇总了 Go 1.27.3 与云厂商 SDK 依赖维护,将二进制、 4. **已知功能边界:** 公开的 `ListMultipartUploads` 仍使用节点本地内存缓存与精确对象键查找,已退役的 `strict` 开关会被忽略并打印警告;[#79](https://github.com/pgsty/silo/issues/79) 与 [#217](https://github.com/pgsty/silo/issues/217) 尚未关闭,Webhook 热重载 PR [#249](https://github.com/pgsty/silo/pull/249) 未纳入本版,更大范围的性能问题仍在 [#251](https://github.com/pgsty/silo/issues/251) 中跟踪。 {.steps} -**存储超时与一致性边界:** 客户端收到请求超时并不代表底层磁盘或 RPC I/O 已经停止,也不代表该次写入一定没有提交。在部分磁盘故障、锁租约过期或网络分区下,仍可能出现迟到提交、延迟回滚或短暂读到旧值与旧标签。本版未引入分布式锁 fencing,也不会自动恢复升级前已经损坏或丢失的对象、远端分层数据与元数据。 +**存储超时与一致性边界:** 客户端收到请求超时并不代表底层磁盘或 RPC I/O 已经停止,也不代表该次写入一定没有提交。在部分磁盘故障、锁租约过期或网络分区下,仍可能出现迟到提交、延迟回滚或短暂读到旧值与旧标签。本版未引入分布式锁 fencing,也不会自动恢复升级前已经损坏或丢失的对象、远端分层数据与元数据。后续无条件 PUT 不能证明它已排在尚未解决的请求之后。 ## 下载与验证 {#delivery} @@ -410,3 +410,5 @@ Node 24.22.1 内置的 **c-ares 从 1.34.8 升至 1.34.9**,修复了 11 条尚 - mcli、Console、SILO、KES 的 Darwin arm64 原生构建与 Linux amd64 交叉构建,以及 mcli、SILO 的 NetBSD amd64 交叉构建通过。 本轮五个项目的 Linux amd64 包级 Go 漏洞扫描未发现受影响的已导入包(仅余未导入受影响子包的模块级 `GO-2026-5932` 记录)。 + +制品验证以上文最终发布身份为准:这些较早候选的检查仅说明依赖兼容性,不构成对最终 Server 源码的验证。 diff --git a/content/compatibility/server.md b/content/compatibility/server.md index 7eb819fa..da7a0a1e 100644 --- a/content/compatibility/server.md +++ b/content/compatibility/server.md @@ -53,7 +53,7 @@ This section covers the [Server 20261026 release](/blog/release/silo-20261026/#s | Build and packaging | Built with Go 1.27.3, Console v2.5.1, mcli 20261026, pkg v3.15.2, and pinned upstream `minio-go`; Windows archives use ZIP. See the [component matrix](/compatibility/versions/#server-20261026). | {.wide .expand} -**Read and failure boundaries:** Lease expiration or network partitions can still allow late commits, and partial metadata updates can still expose stale values or tags. Existing read-quorum and healing rules remain unchanged (stricter fencing, rollback and read-recovery diagnostics remain under the `consistency_strict` build tag); upgrading does not add distributed fencing or automatically repair pre-existing inconsistent objects. The 20261018 Object Lock, IAM, and retired multipart-mode upgrade requirements below continue to apply. +**Read and failure boundaries:** A timeout does not prove that I/O stopped, and delayed rollback remains possible. Lease expiration or network partitions can still allow late commits, and partial metadata updates can still expose stale values or tags. Existing read-quorum and healing rules remain unchanged (stricter fencing, rollback and read-recovery diagnostics remain under the `consistency_strict` build tag); upgrading does not add distributed fencing or automatically repair pre-existing inconsistent objects. The 20261018 Object Lock, IAM, and retired multipart-mode upgrade requirements below continue to apply. ## Server 20261018 upgrade checks {#october-2026} diff --git a/content/compatibility/server.zh.md b/content/compatibility/server.zh.md index 5da6d1f9..55370653 100644 --- a/content/compatibility/server.zh.md +++ b/content/compatibility/server.zh.md @@ -52,7 +52,7 @@ icon: fa-solid fa-server | 构建与制品 | 基于 Go 1.27.3 构建,集成 Console v2.5.1、mcli 20261026、pkg v3.15.2 与固定提交的上游 `minio-go`;Windows 归档改用 ZIP。见[组件版本矩阵](/zh/compatibility/versions/#server-20261026)。 | {.wide .expand} -**读取与故障边界:** 租约失效或网络分区仍可能产生迟到提交,部分元数据更新仍可能暴露旧值或旧标签。既有读仲裁与自愈规则保持不变(更严格的 fencing、回滚与读取恢复诊断保留在 `consistency_strict` 构建标签下),升级不提供分布式 fencing,也不会自动修复存量不一致对象。下方 20261018 的 Object Lock、IAM 与 strict 分片模式退役要求继续适用。 +**读取与故障边界:** 超时不证明 I/O 已停止,延迟回滚仍可能发生。租约失效或网络分区仍可能产生迟到提交,部分元数据更新仍可能暴露旧值或旧标签。既有读仲裁与自愈规则保持不变(更严格的 fencing、回滚与读取恢复诊断保留在 `consistency_strict` 构建标签下),升级不提供分布式 fencing,也不会自动修复存量不一致对象。下方 20261018 的 Object Lock、IAM 与 strict 分片模式退役要求继续适用。 ## Server 20261018 升级检查 {#october-2026}