构建系统维护合同¶
Nexus 使用唯一作者 TOML 装配、验证的不可变配置 IR、静态实例/类型化 factory 和唯一 CMake 软件目标图。Ninja 执行声明图;产品持有应用源码及组合。
48 项实施台账保留请求的退出条件。实现、已执行软件验证、环境分发及物理验收证据独立。历史源码资格不能为修改后的构建工具建立资格。
配置发布是单写入者事务,在修改所属输出前保护所有作者输入和事实输入。拒绝或中断不能把先前配置作为当前配置暴露。相同成功生成保留内容与时间戳,普通重配置不迫使无关编译。配置摘要不是编译器或生成器源码身份。
CMake 持有源码列表与目标依赖。解析器只输出所选事实和配置代码依赖,不建立平行软件构建图。ABI、优化、诊断与固件链接策略有显式目标边界。固件目标保证声明交付输出及资源检查。外部应用 warning 属消费者策略。
开发 preset 与原生 CMake/CTest 保持常规构建接口。聚焦测试用于开发反馈;commit gate 与正式资格执行完整声明 suite,生成 fresh 报告。全部 runner 保留真实 command exit、有界并发、deadline 和 process cleanup。
准备阶段可取得依赖。正式可复现性要求同一验证 source SDK、记录的环境和工具链字节进行两次全新禁网构建。Compiler cache 只改善开发,不能证明 fresh-build 可复现。持久证据保留原记录、member identity 和失败尝试,不改变历史状态。
行为修复使用实际 RED 后 GREEN。Python 工具用 unittest,C/C++ 合同用锁定 GoogleTest/GoogleMock 主机框架。CMake graph/policy 缺陷需真实小型 consumer build 与产物观察。固件保持 C11,无 host test runtime。本维护遵循正常 commit hook 和独立审查。
下表记录观察到的 host tool 与声明 lock。最终 clean-source 软件门禁和八个精确 offline candidate 见执行记录。Host 观察保持自身 scope;source qualification 使用记录的 code commit,不自动跟随后续 documentation HEAD。
Host 或执行路径 |
维护边界 |
当前证据 |
|---|---|---|
Linux x86_64 开发主机 |
配置、Ninja、Native/ARM consumer、离线工具与证据传输 |
真实本地执行;观察到 Linux 6.18.44、glibc 2.41 |
Linux 子孙进程取消 |
有界 |
真实嵌套进程及恶意 signal-handler 回归 |
Linux/amd64 OCI 产物 |
封存 manifest/config/layer 字节;本地离线 load |
真实 export、独立 archive restore 和 Docker load/inspect |
Windows 开发路径 |
Bootstrap 选 |
本轮维护未执行集成 |
macOS 开发路径 |
Python/CMake 工具入口;host-specific compiler setup |
本轮维护未执行集成 |
其他 host 或跨主机 ARM 分发 |
需独立已审 tool lock 和执行矩阵 |
Linux archive 身份不建立此资格 |
Linux descendant cleanup 依赖 Linux 进程观察,其他 host 通用终止路径不建立同样嵌套进程验收。Windows/macOS 路径处理是实现边界,不是集成测试结果。
工具 |
声明要求或 lock |
真实本地观察 |
|---|---|---|
Python |
最低 3.11;本地 lock 3.12.14 |
CPython 3.12.14 |
CMake |
最低 3.31;tool lock 3.31.6 |
3.31.6 |
Ninja |
Tool lock 1.13.2;single configuration |
|
Native 编译器 |
环境 lock 中 GNU 14.2.0 |
GCC/G++ 14.2.0,Debian 14.2.0-19 |
ARM 编译器 |
GNU Arm 14.3.rel1,Linux x86_64 archive lock |
GCC 14.3.1,构建日期 20250623 |
clang-format |
14.0.6 |
14.0.6 |
pre-commit |
4.3.0 |
4.3.0 |
可选 ccache |
4.14.1,Linux x86_64 静态分发 |
真实 binary 与 cache hit/miss 校验 |
Git |
源码与 submodule 身份工具 |
Host 2.52.0;记录 OCI 产物 2.47.3 |
GoogleTest/GoogleMock |
1.16.0,锁定 commit 和 archive SHA-256 |
仅主机框架;最终 full-source 执行另行记录 |
维护 Ninja single-configuration,明确拒绝 Ninja Multi-Config;其他 generator 无隐含验收。固件保持 C11。Native test target 启用 C++17,不把测试运行时链接进固件。
Linux x86_64 CP312 offline tool closure 有 15 个 hash-locked wheel,包含本地隔离 pre-commit 准备需要的 Setuptools build backend。全新 CP312 venv 实际完成 --no-index --require-hashes 安装及真实 isolated hook 初始化。完整隔离工具域保持记录源码 scope;最终普通 commit gate 另行执行当前源码。CP311 wheel 字节按 15-wheel lock 校验,但 CP311 安装未执行。最低 Python 版本和 wheel 清单不能替代该缺失结果。
记录 OCI 产物使用 Python 3.12.15、Git 2.47.3,与当前 host 不同。Manifest 为 e936b188b9e30cf37ce109a5407019c91fe2dbc62fb10afceb3f2abbfc823ac8,image config 为 a1ba03c16d424aef88dad6e5b2ead2892734a0bf909dedc23d8855fa4861fbe0。真实 ARM toolchain tree 有 7,190 文件、1,106,755,364 字节,tree SHA-256 44d2fe14e401730074302ad87bdef9762a6cfe12de4bebc6853d181fd51c74fd。Toolchain/OCI transport 执行保留自身 tool-source 身份,结果不能转移为后续 tool 变更的 source qualification。
Recipe lock 声明固定 base/frontend digest、Debian snapshot、五个 APT package 版本及 hash-required Python 输入。已观察 OCI 字节重建尚未成功执行,recipe_reproducible 保持 false。验证产物复用与声明 recipe 输入是独立验收状态。
实施台账保持全部 48 原要求与退出条件不变。更新路径把实现、原 RED/GREEN 和最终源码软件门禁绑定至执行记录与 结果索引。历史测量保留自身源码与精确选择,不继承后续 HEAD。
自动开发 provenance 绑定唯一不可变 command-attempt receipt 并核对命令与工作目录。完整当前合同与真实 candidate plan 执行建立该关联;共享 latest 报告名不能替代精确 attempt。
BLD-18 测量后保留每次消费边界完整 SDK 字节检查,无 parent marker 或 persistent verification bypass。BLD-31 测量声明/实际编译单元和精确选定镜像成本后保留公共静态库。其 decision_verified 状态记录测量选择,而非推测性 source split。
BLD-38 记录实际 fixed-checker candidate plan 与真实 failed-checker 执行,原编排退出条件不变。维护的 72-stage 软件 plan 未经单次完整 plan invocation 执行;分别执行的 full gate 另记。BLD-39 验证 dependency-upgrade evidence 合同,不声称真实 vendor dependency 升级。
BLD-40 覆盖真实 CP312 offline 安装与 isolated hook 准备,CP311 安装未执行。BLD-41 覆盖真实完整 toolchain/OCI transport 与同字节验证复用。BLD-42 保持 declared_recipe_verified_reconstruction_unverified 且 recipe_reproducible=false。BLD-44 覆盖真实新源码 archive proof 与独立仅 archive 验证。本地 archive 保留和 durable hard-link 名称不建立异地存储、发布或 release。
Host 观察保持 /workspace/nexus-build-maintenance-20261012/documentation/host-tool-support-observations.json 中记录 scope。当前 locked closure 与最终源码 receipt 索引在 delivery result index。台账的配置、目标、workflow、delivery、transport 报告保留原始执行、失败尝试和源码 scope。整个构建系统维护的物理 HIL 保持 not_executed。