SOW 0.7.1 升级到 Go 1.27.4,更新依赖,并修复恢复、软件包校验和 S3/R2 处理。
SOW 0.7.1 更新 Go 工具链与依赖,并修复恢复、软件包校验、RPM 导出和 S3/R2 处理中的问题。
本说明覆盖 0.7.0 以来的变化。数据库 schema v13、配置 schema sow/v3、CLI 与公开仓库布局保持兼容。0.5.0 至 0.7.0 的工作区无需迁移数据库。
恢复与仓库状态
- 修复未启用有效签名时,旧版
dist.new和dist.init操作中断后的恢复。 - 将无法证明可安全清理的 C2 迁移暂存文件完整保留到
.sow/<repo>/abandoned/,并报告路径。空暂存目录会被移除,重复恢复安全,本地 GC 可继续执行。删除前请检查报告路径中的文件。 - 在删除批次之间重新打开目录游标,避免 macOS APFS 与 BSD 文件系统上的清理遗漏。
- 将多语句 SQLite 读取放入同一个只读事务。大型 Dist 成员查询分批执行,避免超过 SQLite 参数上限。
- 规范化旧仓库中带小数秒的时间记录,并拒绝超出
1..9999的年份。
软件包校验与 RPM 导出
- Plain
create、prune的全部路径及 Managed 入库一致拒绝 RPM v6。 - 限制 DEB control 归档与 APT/RPM 元数据流的解压大小,包括过大的 PAX 头部。
- 识别 Linux
renameat2不受支持时的错误,并保留跨平台回退实现。 - 无关的 filesystem 发布目标未挂载时,仍可执行
export rpm-leaf;实际物理路径重叠仍会被拒绝。 - 导出元数据签名使用所选 Dist 已记录的构建发布时间,后续其他 Dist 的构建不再改变该时间。导出
repomd.xml的 data 时间戳仍为0。 sow add同时接收显式文件和其父目录时,允许重复输入同一软件包。
S3 与 R2
新版 AWS SDK 会重试不带响应体的 HTTP 429。重试耗尽后,SOW 保留 HTTP 错误分类。
SOW 还能从组合错误中提取 HTTP 状态码。中止 multipart 上传时返回 HTTP 404,表示上传已被移除。列表与 multipart 操作的错误 XML 响应也增加了大小限制。
工具链与依赖
源码构建要求 Go 1.27.4 或更新版本。发布准备期间,已逐一核对全部 35 个显式依赖的最新可用版本。
| 组件 | 0.7.0 | 0.7.1 |
|---|---|---|
| Go | 1.27.3 | 1.27.4 |
| AWS SDK core / S3 | 1.47.8 / 1.114.9 | 1.48.0 / 1.114.10 |
| Smithy | 1.28.8 | 1.28.9 |
| klauspost/compress | 1.20.3 | 1.20.4 |
| modernc/libc | 1.80.1 | 1.81.0 |
| golang.org/x/sys | 0.49.0 | 0.50.0 |
| GoReleaser | 2.20.0 | 2.20.1 |
同时更新 AWS 内部模块、pprof、x/mod、x/sync 和 modernc 编译器依赖,保留本地 RPM 解析器安全补丁。第三方许可声明已与新版本构建同步。
升级
停止工作区写入,以保留硬链接的方式备份完整工作区。安装 0.7.1,再对每个配置中的仓库执行构建与检查:
没有变化时,构建为 no-op。0.3 或 0.4 工作区仍需先执行 sow repo migrate REPOSITORY。Plain 仓库无需迁移数据库。
SOW 0.6.1 及更早版本无法读取包含 passfile 的配置,降级前须移除这些字段。RPM v6 仍不受支持。
本版本提供四个 Linux/macOS 归档、两个 RPM、两个 DEB,以及 SHA256SUMS。详见升级指南和完整变更。
.rpm
| 文件 | 校验和 | |
|---|---|---|
| sow-0.7.1-1PGSTY.aarch64.rpm Linuxarm64SHA-256 | 633dec35…1b0e |
|
| sow-0.7.1-1PGSTY.x86_64.rpm Linuxamd64SHA-256 | d4ccae2f…12c4 |
.deb
| 文件 | 校验和 | |
|---|---|---|
| sow_0.7.1-1PGSTY_amd64.deb Linuxamd64SHA-256 | 127559a2…9bd1 |
|
| sow_0.7.1-1PGSTY_arm64.deb Linuxarm64SHA-256 | 8d69f623…dc4e |
.tar.gz
| 文件 | 校验和 | |
|---|---|---|
| sow_0.7.1_darwin_amd64.tar.gz macOSamd64SHA-256 | cc1d6891…731c |
|
| sow_0.7.1_darwin_arm64.tar.gz macOSarm64SHA-256 | 81201881…51a4 |
|
| sow_0.7.1_linux_amd64.tar.gz Linuxamd64SHA-256 | d1fd6099…4179 |
|
| sow_0.7.1_linux_arm64.tar.gz Linuxarm64SHA-256 | 2adbe314…8f5c |
