petstore-docs/qa-reports/phase0-pilot-rc2-release-manifest.md
2026-08-01 23:32:48 +08:00

6.0 KiB
Raw Blame History

宠小它 Phase 0 Pilot RC2 Release Manifest

RC IDphase0-pilot-rc2

冻结日期2026-08-01

状态:Ready for Release未部署

RC StewardPM Assistant

发布边界:本 manifest 只冻结源码与本地验证证据真实生产配置、备份、迁移、TLS、live smoke 和三角色验收未完成前不得改为 Released

1. 冻结提交与回滚点

仓库 RC commit 前一稳定 commit应用回滚点 状态
backend 133f61e4ad6152865a76c4e9328d96e689f53635 b6138475f073881199abdef8d2681dcb92d1ab66 clean
admin 3470b124e408501ed824b993bcb34dd40e77c293 7e924fa79d6dafbd60643b8e31519737feb92e3b clean
frontend e11ce1aaaa602011718e300e4527a0d971f1339a d29ece3a85e6d137d91afd609f49b10051ad9b7f clean
docs 本 manifest 所在 commit 前一 commit 提交后确认 clean

RC 只能部署以上 commit 或由其生成且校验和一致的产物。后续任何代码改动必须建立新 RC 或 Hotfix manifest。

2. 纳入范围

  • 生产 profile 启动配置门禁:ddl-auto=validate、关闭 SQL/万能验证码、强 session secret、显式 HTTPS 域名、显式 CORS、绝对上传目录
  • 生产启动跳过开发期默认服务写入;
  • JPA schema 校验后执行 15 项只读数据库不变量预检;
  • liveness/readinessreadiness 覆盖 DB、磁盘、上传目录、FFmpeg/ffprobe
  • 后端只读 smoke、systemd/EnvironmentFile/Nginx 独立模板;
  • admin、H5、小程序发布域名门禁默认 .invalid 占位配置主动失败;
  • 小程序构建显式使用 --mode mp-weixin,读取独立环境配置;
  • 生产 Runbook、试点门店开通清单、监控告警基线和本体 BR-CONFIG-003
  • 已冻结的身份拆分、StoreCustomer、BusinessEvent、真实预约容量能力及四个迁移脚本。

3. 明确排除

  • 未连接、未迁移、未修改任何生产数据库;
  • 未安装 systemd unit未改服务器 Nginx未申请或续签 TLS
  • 未重启 Petstore、Gitea、GitLab 或其他服务;
  • 未使用真实生产域名、微信账号、AppSecret、密码或 token
  • 未上传微信体验版/正式版,未完成真机或生产三角色 smoke
  • 未接入真实外部监控和告警通知渠道;
  • 不包含支付、库存、储值、复杂会员、多门店组织、订单系统或泛 AI。

4. 本地验证证据

环境:

  • OpenJDK 21.0.10(源码按 Java 17 release 编译)
  • Maven 3.9.14
  • Node v22.22.2
  • npm 10.9.7

结果:

门禁 结果
mvn test 158 tests0 failure / 0 error / 0 skipped
mvn -DskipTests package BUILD SUCCESS
backend shell bash -n PASS
backend/admin/frontend git diff --check PASS
admin npm run build PASS存在既有大 chunk warning不阻塞功能验证
frontend npm run build:h5 PASS
frontend npm run build:mp-weixin PASSverify-mp-app-json PASS
admin/frontend 默认占位配置门禁 按预期失败
admin/frontend 受控测试 HTTPS 源门禁 PASS输出只含变量名不含值
validate_ontology.py 238 条引用完整
audit_drift.py 55 endpoints、13 JPA entitiescode-only / ontology-only 均为 0

5. 本地构建校验和

产物 SHA-256 可部署性
backend/target/petstore-backend-1.0.0.jar e4ef2477c549c77c7bd0ed392d772c2abd62fb5fdf2e932124cd82726e7d01d2 可作为候选 jar仍须最终生产环境预检
admin dist 文件哈希清单的聚合 SHA-256 017089e4c7fd236b6efcbdcba10b32b9e423e3ccef9613e7ea66717b65b2e984 不可部署:使用仓库 .invalid 占位配置构建,仅证明可编译
H5 dist/build/h5 聚合 SHA-256 d816be92a12f353b2edb6f19987936f7f25e1b09d0a285c4203da494caeb123e 不可部署:使用仓库 .invalid 占位配置构建,仅证明可编译
小程序 dist/build/mp-weixin 聚合 SHA-256 97489bb9b4b93f96606a10459b6d73526c8287d598019c1651490be854376084 不可上传:使用仓库 .invalid 占位配置构建,仅证明可编译

正式 admin/H5/小程序必须用权限受控的真实域名文件重新运行 preflight:release 和构建,并把新产物校验和追加到生产发布记录。

6. 生产 Go/No-Go 门禁

  • Petstore 专用 API/admin/report 域名与 TLS 已就绪,不复用其他产品域名;
  • 最终配置通过后端、admin、frontend release preflight未输出任何秘密值
  • 生产数据库完成全量备份、SHA-256 和隔离恢复演练;
  • 按顺序执行身份拆分、StoreCustomer、BusinessEvent、预约容量四个迁移末尾检查均为 0
  • 后端 15 项只读不变量预检与 JPA validate 通过;
  • Petstore systemd/Nginx 配置独立,nginx -t 通过;
  • liveness/readiness 和只读 smoke 通过;
  • boss/staff/customer 三角色人工 smoke 及权限/异常反例通过;
  • 微信合法域名、体验版和真机验证通过;
  • 外部监控、告警联系人和值班窗口真实测试通过;
  • Gitea/GitLab 健康回归通过,配置 diff 证明未被改动;
  • 前一应用/静态/小程序回滚点明确,数据库不做自动 down migration。

任一项未勾选,结论均为 No-Go / Ready for Release,不得写成已上线。

7. 风险与回滚

  • admin 主 bundle 仍有大于 500 kB 的构建 warning试点流量下不是上线阻断但应进入后续性能债不与本次发布安全闭环混排。
  • readiness 会把上传目录或 FFmpeg 依赖异常视为不可接流;服务器权限和二进制路径必须在切流前验证。
  • 四个迁移为前向兼容追加式变更。常规故障只回退应用和静态软链接,不删除列/表/索引;灾难性数据恢复需要独立授权和变更单。
  • 微信小程序必须走平台版本回退,不能依靠服务器软链接。

详细步骤见《生产发布与回滚Runbook-2026-08-01.md》试点运营和指标口径见《试点门店开通清单-2026-08-01.md》告警见《生产监控与告警基线-2026-08-01.md》。