跳到主要内容

Darra PROFINET IO Device 发布检查清单

发布前逐项核对, 全部勾选后才允许跑 发布链\release.ps1 -Channel Formal。 Test 渠道可放宽部分条目(标注 [Test 可宽]), Formal 一律全过。 口径与 release.ps1 七阶段 / 版本戳 / 产物契约一致, 详见 发布手册.md

1. 版本一致性

  • CMakeLists.txtproject(DarraProfinet VERSION X.Y.Z) 与目标版本一致
  • version\core.txt / driver.txt / sdk.txt 三文件内容 == 目标版本 (漂移先跑 version\sync-versions.ps1)
  • 计划传入的 -Version == 上述三源(发布链入口与 FINALIZE 各校验一次)
  • _Stage\ 无旧版本残留版本戳(有则删 stamp_*.txt 或整个 _Stage\, 防混版本)

2. 构建就绪(Stage 1 BUILD 前置)

  • 源码在 git 上处于期望 commit(working tree 无意外脏文件)
  • 工具链就绪:dotnet / msbuild(VS Build Tools)/ cmake / mvn / python / cargo 均在 PATH(缺任一 → Stage 1 如实 throw, 先装齐)
  • 工具\build-all.ps1 存在且 Release 构建历史 0 error
  • 驱动构建脚本 Darra_Pnet_Kernel\Windows\scripts\build-driver.ps1 存在
  • 核心测试工程已配置过 CMake(Darra_Pnet_Core\out\tests\CMakeCache.txt 在, Stage 4 才能跑测试门)

3. 测试门(Stage 4 TEST 前置)

  • 核心测试 test_pnet_*.exe 全量 PASS(退出码 0); test_pnet_core 实测 8/8 通过(2026-08-07 复核, 见发布手册 §8)
  • TEST_Config 冒烟 PASS(配置生成 → 校验 → 回读 → 三端闭环)
  • 测试机冒烟已过(装驱动 / 启服务 / GUI 配置 → GSDML 导出 / TIA 导入, 按设计文档 §2.5 基础测试口径)
  • 测试只读产物, 不装驱动 / 不启 Service 的边界已守(dev 机)

4. 载荷完整(Stage 2/3/5 前置)

  • Payload 必需件齐全:根级 DarraPnet.dll(native 核心, 非 SDK 托管 dll)/ DarraRT_Pnet.sys / DarraRT_Pnet.inf / Darra.Pnet.Service.exe + gui\Darra.Pnet.GUI.exe(同名 DarraPnet.dll 子目录隔离, 安装器契约 FindGuiExe 优先查安装根\gui)
  • 服务载荷含全套运行时依赖:Darra.Pnet.Service.dll + appsettings.json + Microsoft.Extensions.* + runtimes\(framework-dependent 部署, 缺依赖 dll 服务无法启动; deps/runtimeconfig 必须保留)
  • GUI 载荷含改名后的运行时配置:gui\Darra.Pnet.GUI.runtimeconfig.json + gui\Darra.Pnet.GUI.deps.json(apphost 按 exe 名找, 缺失启动即崩)
  • SDK 6 语言产物齐全:DarraPnet.dll(CSharp)/ Darra.Pnet.SDK.C.lib(C)/ darra-pnet-slave-<v>.jar(Java)/ darra_pnet_sdk-<v>-*.whl(Python)/ libdarra_pnet.rlib(Rust); CPP header-only 源拷贝即交付
  • sha256-manifest.json 生成且逐文件哈希比对通过(Stage 3 自动)
  • Payload.zip 条目结构含 5 项根级必需件(Stage 5 自动校验)

5. 证书 / 密钥就绪

  • 驱动签名策略明确:测试签名证书已生成(装机走测试签名流程)或 Darra_Pnet_Publish 的 EV/测试签就绪; 未签名 sys 不装正式机
  • 授权后台 HMAC secret 已从占位值更换为强随机(正式发布前必须)
  • 授权后台 D1 三表已配置(pnet_personal_codes / pnet_enterprise_codes / pnet_enterprise_devices)
  • 安装器签名策略明确(Formal: 待 Darra_Pnet_Publish 补齐 EV 签名; 当前 SelfContained 单文件直发, 不加壳)
  • [Test 可宽] 测试证书允许自签, 正式证书链不触碰 MS 副签链(只读引用 ETH 发布链口径)

6. 渠道与命名

  • -Channel Test: 安装器命名 DarraPnetSetup-<ver>-test.exe
  • -Channel Formal: 安装器命名 DarraPnetSetup-<ver>.exe(不带标记), 且必须全链通过(含签名与授权核对)
  • 安装器装配路径确认:C:\DARRA\Profinet_Slave(与 InstallEngine 契约一致)

7. 收尾(Stage 7 FINALIZE 后)

  • 发布摘要齐全:版本 / 渠道 / 安装器路径 + 大小 + SHA256 / 载荷文件数 / 日志
  • stamp_build/collect/verify/test/pack/finalize 全部为本次版本
  • 安装器 SHA256 已归档(发布记录)
  • 发布记录登记:版本 / 渠道 / 日期 / 变更点 / 已知缺口状态