feat(release): PKG-2A PG 二进制分发源——上游直拉,零配置产物含嵌入式 PG#201
Open
KerroKapple wants to merge 1 commit into
Open
Conversation
fetch-binaries.sh 双模式重写:upstream 默认(Windows=EDB 官方 zip 按
scripts/pg/upstream.lock 锁 URL+SHA256,只取 pgsql/{bin,lib,share} 并裁
share/{doc,man,locale}+lib/*.lib+bin/wx*.dll,111MB→82MB;macOS=Homebrew
postgresql@17 委托 make-relocatable,brew 补丁位浮动故只锁主版本),
PG_ARTIFACT_BASE_URL 保留为对象存储覆盖(方案 B,语义不变)。
不变量:.partial 装配+校验通过才对换,任何失败零残留;verify_tree 统一校验
(必需工具 postgres/initdb/pg_ctl/pg_dump/pg_restore + lib/share 在位 +
版本右锚定匹配);幂等短路零下载,残缺树不短路触发重建。
release.yml:双平台去 PG_ARTIFACT_BASE_URL 门控无条件 fetch;macOS brew 步
不以 cache-hit 门控(坏缓存重建需 keg 兜底)且主版本从 pg-version.txt 推导;
cache key 加 upstream.lock hash+模式判别子;publish 顺带 QG-6 checksums.txt
(sha256+pipefail)。ci.yml release-scripts 挂 fetch_binaries_test.sh。
评审修复(3 镜头对抗+独立复跑):P2 upstream.lock CRLF 形态防护
(.gitattributes 锁 LF+lock_get tr -d '\r');P3 全修=verify 补 lib/share、
版本锚定防 17.2 匹配 17.20、陈旧 .partial 先于幂等短路清理、测试工具循环
恒真 pass、GNU-only 依赖双轨化、补 Task 9 坏树重建覆盖;文档一致性 9 处
(MASTERPLAN 现状/阻塞名单/模型侧清单、ROADMAP、BUILD-RELEASE 预算与
§13.4、ARCHITECTURE §14.3/14.4 幽灵脚本名、CMake/Podfile 注释);macOS
跨架构误标记 BOARD 债。
验证:fetch_binaries_test.sh 9 Task 38 断言绿(先红后绿);release_tag_test
17 断言绿;本机真栈验收=真 EDB 下载→SHA 校验→裁剪 82MB→postgres.exe
--version=17.2→realpg E2E 全链绿(initdb SCRAM/pg_ctl/迁移 v7/pg_dump/
pg_restore 对换/teardown);flutter analyze 0 issue;全量测试 1720 过 0 败。
mac 侧待 release CI 首跑验证(已如实记 BOARD/MASTERPLAN)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
这是什么
上线前 UI/UX 1-10 收官(#200)后发布工程线的关键路径卡:PKG-2A PG 二进制分发源(方案 A 上游直拉)——beta.1 硬阻塞名单里唯一零用户依赖的一项。此前
PG_ARTIFACT_BASE_URL未配 → release 产物不含嵌入式 PG → 干净机装不上;本 PR 后零配置即产出含 PG 的双平台安装物。改动
scripts/pg/fetch-binaries.sh双模式重写scripts/pg/upstream.lock,只取pgsql/{bin,lib,share}并裁share/{doc,man,locale}、lib/*.lib(MSVC 导入库)、bin/wx*.dll(StackBuilder GUI 残留)——111MB→82MB;macOS = Homebrewpostgresql@17委托既有make-relocatable-macos.sh(brew 补丁位浮动 → 只锁主版本)PG_ARTIFACT_BASE_URL走对象存储,历史语义不变.partial装配+校验通过才对换(失败零残留);verify_tree 统一校验(五必需工具含 pg_dump/pg_restore + lib/share 在位 + 版本右锚定);幂等短路零下载,残缺树触发重建release.yml:双平台去门控无条件 fetch;macOS brew 步(不以 cache-hit 门控——坏缓存重建需 keg 兜底;主版本从 pg-version.txt 推导);cache key 加 lock hash+模式判别子;publish 顺带 QG-6 的 checksums.txt。ci.yml:release-scripts job 挂新回归测试。验证
test/scripts/fetch_binaries_test.sh:9 Task / 38 断言全绿(TDD 先红后绿;沙箱+PATH-stub curl/brew,零网络,ubuntu 可跑)postgres.exe --version=17.2 → realpg E2E 全链绿(真 initdb SCRAM → pg_ctl → 迁移 v1→v7 → pg_dump → pg_restore 对换 → teardown)——顺带证明裁剪不伤 pgcrypto→libcrypto 依赖链风险与处置
EDB 撤旧包/变更 → SHA 锁死硬报错绝不静默换包,届时实测新包更新 lock。macOS 跨架构误标(操作员失误场景)记 BOARD 债,随 PKG-7 x64 matrix 同窗修。
🤖 Generated with Claude Code