构建系统维护合同

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 子孙进程取消

有界 /proc 检查、group/descendant freeze、kill 和 terminal-state 观察

真实嵌套进程及恶意 signal-handler 回归

Linux/amd64 OCI 产物

封存 manifest/config/layer 字节;本地离线 load

真实 export、独立 archive restore 和 Docker load/inspect

Windows 开发路径

Bootstrap 选 .venv/Scripts;CMake 和 tool 路径显式

本轮维护未执行集成

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

1.13.2.git.kitware.jobserver-pipe-1

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。