6.0 KiB
6.0 KiB
宠小它 Phase 0 Pilot RC2 Release Manifest
RC ID:
phase0-pilot-rc2冻结日期:2026-08-01
状态:Ready for Release(未部署)
RC Steward:PM 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/readiness,readiness 覆盖 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 tests,0 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 |
PASS;verify-mp-app-json PASS |
| admin/frontend 默认占位配置门禁 | 按预期失败 |
| admin/frontend 受控测试 HTTPS 源门禁 | PASS;输出只含变量名,不含值 |
validate_ontology.py |
238 条引用完整 |
audit_drift.py |
55 endpoints、13 JPA entities,code-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》。