Q+ 发布工程(Release Engineering)
English summary. Release-engineering quick reference for Q+ 1.14.0-dev / spec v4.45 (candidate, NOT PUBLISHED): candidate freeze → clean build → test/robustness → async/fs/qfmt/net/float parity → bench → site → portability/determinism/consistency → package×2 → external SPDX SBOM → release gate 34/35 (overlay
g34.sh/g35.sh, two gate suites, each PASS=58 FAIL=0 SKIP=0) → independent G0–G7 (PASS) → pack → Maintainer authorization before any publication. Also covers the five anchors + bootstrap/AOT fixed points, SBOM/signing POC tooling, release-artifact list, non-claims, and the fact that the GitHub workflow is static and has not run on GitHub (no CI-green claim). Full guide: docs/RELEASE_ENGINEERING.html.
流程(v240 实测)
| 步骤 | 命令/入口 | v240 结果 |
|---|---|---|
| 冻结候选 | VERSION 1.14.0-dev;spec v4.45;CHANGELOG [1.14.0-dev] | manifest 1f32e14c…/2063 rc0 |
| clean build ×2 | tools/build.sh | 5 锚点两次逐字节 SAME |
| 回归 | tools/test.sh / robustness_test.sh / net1–6 / net_aot(_p4/_p5) / float parity / qfmt / fs / async | 全 PASS(test ~85.89s;qfmt 306/0;float FLOAT_PARITY_PASS;AOT P4/P5 PASS) |
| qpm/bench | self/prod/update/sign/trust;bench/check_regression.sh | 328/328+55/55+47/47+29/29+38/38;REGRESSION_PASS |
| 站点 | site/build_site.py + site/ci/selftest.py | 99 页/210 checks PASS(clean unpack 同) |
| 平台/一致性 | ci/portability_check.sh;tools/check_release_consistency.sh --root . | 11/0/3;PASS=58 FAIL=0 SKIP=0 |
| 打包 ×2 | tools/package.sh <outdir> ×2 | 两包一致;私有词 PASS;tar a1e65bbb…/1,650,120B/2,079 entries/1,958 files |
| 外部 SBOM | tools/sbom/sbom_gen.py + sbom_check.py | 4d5c8c50…/899,148B/fileCount=1,958(=tar files,差 0);不在 tar |
| 发布 gate | overlay g34.sh/g35.sh(`release_gate.sh --quick | --full`) |
| 独立验收 | G0–G7(只读候选+tar) | PASS(NOT PUBLISHED);tree 5f92f7b6…/1958 rc0 |
| 发布物汇编 | tar + sha + SHA256SUMS + release notes + non-claims + manifest(+可选 vsix) | 候选包完成,未发布 |
门禁 34/35 与 G0–G7(要点)
- gate 34/35:发布工程 overlay 的两套
release_gate(g34.sh/g35.sh),各覆盖 8 个 phase:包完整性、clean build+锚点、AOT 数值边界、AOT loud、并发最小集、畸形 qbc loader、 包确定性、clean-unpack 重门禁;--quick=1–4,--full=1–8;两套各 PASS=58/0/0; 脚本不在语言树内(语言树内近似门禁为check_release_consistency.shPASS=58/0/0)。 - G0–G7:G0 包/树卫生;G1 可复现 build/锚点/bootstrap;G2 语言/AOT 回归;G3 特性门禁; G4 并发/内存(明确未跑项如 TSAN);G5 AOT 边界/loud;G6 release gate;G7 残余边界/不得宣称/ 签署。v240 全部 PASS;验收 ≠ 发布。
固定点 / SBOM / 发布物
- 5 锚点:bqvm
141e980b、bqvm_small3e6eee3f、qboot7248ce0d、cgtest.qbc664d7648、 cgtest_aot235b0d3e(大小见 docs 指南);qboot/aot 与 bootstrap 逐字节一致; bootstrap 仅在批准变更后刷新(旧工具链自举→两次 build 一致→全量测试→批准→更新)。 - SBOM:SPDX 2.3 直接文件清单、external/不在 tar;签名 POC 非生产签名基础设施 (非 Maintainer 发布签名);
docs/SBOM.md/docs/SBOM_SIGNING_POC.md。 - 发布物:tar/sha/SHA256SUMS/external SBOM/release notes/non-claims/manifest(+可选 vsix); 下载页/部署为 Maintainer 待填模板(
site/content/download.md、deploy/README_DEPLOY.md), 不写真实 URL/指纹/日期。
不得宣称(release 级)
NOT PUBLISHED(未上传/未 tag/未公告/未部署);历史冻结包不得重打(v1.1 DEPRECATED); 不宣称 AOT 浮点整体 parity(仅修复范围一致;残差在 FLOAT_PARITY 记录);网络仅 VM loopback POC + AOT Linux x86-64 阻塞 IPv4 loopback TCP/UDP 子集(epoll/async -8;无 DNS/TLS/公网/生产); Windows 无 AOT(wine VM/async 子集不是真实 Windows 可用性);AOT 多模块 POC-only;A5 非无条件 full-u64;qpm 本地静态/离线(≠生产包管理);OS SDK 外部原型非 API 1.0;SBOM/签名非法律/非生产; GitHub workflow 为静态定义、未在 GitHub runners 运行,不称 CI green;英文为摘要级非全文。
维护方授权点(全部完成前不得发布)
发布批准/类型/tag;许可证/版权/NOTICE/品牌;平台/仓库/包标识;GPG/签名/mirror 策略; 上传制品清单;文档站部署/官方下载页(域名/URL/日期/公告);公告措辞与日期(含 v1.1 DEPRECATED); 证据保留/发布后验证责任人。
相关
发布工程全文 · 贡献指南 · RELEASING · P0 发布清单 · CI · SBOM · SBOM 签名 POC · 下载页模板 · 部署模板(仅 Playground;官网模板在仓库 deploy/)
本页不执行发布;1.14.0-dev 为候选(NOT PUBLISHED)。