发布候选质量门禁
发布候选门禁用于确认当前包不是“能编译就算完成”,而是具备可复现的消费端证据链。
当前基线
截至 2026-06-12:
- TensorRT interface coverage:
0missing rows。 - CUDA runtime interface coverage:
0missing rows。 - Manifest inventory:
3271条 API records,102份 manifests。 - Deferred API 是明确的 manifest/native 边界,不能当作安全 public wrapper 宣传。
当前 package-consumer 证据(2026-06-12):
win-x64-trt10.11-cuda11.8-cudnn8.9:restore/build/native-copy/smoke 通过,native assets 为16/16,探针输出 TensorRT10.11.0、CUDA11.8。win-x64-trt10.11-cuda12.9-cudnn9.22:restore/build/native-copy/smoke 通过,native asset patterns 为19/19,探针输出 TensorRT10.11.0、CUDA12.9。win-x64-trt11.0-cuda12.9-cudnn9.22:restore/build/native-copy/smoke 通过,native asset patterns 为19/19,探针输出 TensorRT11.0.0、CUDA12.9。win-x64-trt11.0-cuda13.2-cudnn9.22:2026-06-14 已完成完整 split 组件包与 collection 包本地打包,restore/build/native-copy 通过,native asset patterns 为19/19;但 package consumer smoke 仍 pending,CUDA 13 runtime/builder 验证完成前 publish readiness 必须 blocked。
本地质量门
powershell -ExecutionPolicy Bypass -File .\eng\Export-InterfaceCoverageMatrix.ps1
dotnet restore .\TensorRtSharp.sln
dotnet build .\TensorRtSharp.sln -c Debug --no-restore
powershell -ExecutionPolicy Bypass -File .\eng\Test-PublicApiBilingualDocumentation.ps1
dotnet test .\tests\JYPPX.ProjectQuality.Tests\JYPPX.ProjectQuality.Tests.csproj -c Debug --no-build
dotnet docfx .\docs\docfx.json
如果修改了 native、manifest 或 generated 文件,还需要运行:
powershell -ExecutionPolicy Bypass -File .\eng\Generate-Bindings.ps1
powershell -ExecutionPolicy Bypass -File .\eng\Test-BindingGeneratorOutputs.ps1
cmake --preset win-x64-trt11-cuda13-release
cmake --build --preset win-x64-trt11-cuda13-release --parallel
期望结果:
- TensorRT missing rows 保持
0。 - CUDA runtime missing rows 保持
0。 dotnet build为0warning、0error。- 公开 API XML 注释同时包含英文和中文。
JYPPX.ProjectQuality.Tests通过。- DocFX 为
0warning、0error。
推荐 smoke 顺序
CudaSmokeRunnerMultiStreamTensorRtSmokeRunnerLifecycleSmokeRunnerOnnxToEngineSmokeRunnerDynamicShapeInferenceBindingsNetworkBuilderSmokeRunner- 各类 layer-specific network runners
以下 asset-dependent sample project 是可执行项目,但需要用户提供模型与 metadata:
ClassificationYoloDet
这些项目只要 README 明确说明所需外部资产和可运行替代路径,就不单独作为 release blocker。CUDA custom-kernel preprocessing 先保留为文档路线图,等待安全 public CudaModule / CudaKernel wrapper 后再加入可运行 sample。
Runtime package 门禁
发布候选涉及 runtime package 时,必须提供:
- 精确 TensorRT、CUDA、cuDNN root 校验。
- 匹配 CMake preset 输出的 runtime asset collection。
- managed package 与 matching runtime package pack 证据。
- package consumer restore/build/native asset copy 验证。
- 兼容机器上的 package consumer smoke 证据;如果被 WDAC、driver/runtime 不兼容阻塞,应记录为环境 blocker,而不是 package layout failure。
- private-feed 或 split-delivery readiness 必须要求
local-validated;pending-local-validation不能视为 ready。
CUDA 12.9 和 TensorRT 11 Windows 组合必须使用精确 CUDA/TensorRT/cuDNN 依赖链证据。trt11.0-cuda13.2-cudnn9.22 可以构建,但当前机器 runtime/builder 创建仍依赖 CUDA 13-capable driver/runtime 环境。
Linux 包当前保持 dry-run / structure-ready 状态,不能作为真实 Linux 发布证据,直到 self-hosted Linux x64 runner 完成 build、asset collection、pack、consumer validation 和可选 GPU smoke。
远端发布前置条件
在启用远端发布链前,请先确认:
package-managed.yml在publish_to_nuget=true时要求仓库 secretNUGET_API_KEY是纯文本 ASCII 的 nuget.org API key。不要填加密后的本机凭据或其它机器导出的 token 片段。runtime-windows.yml要求 Windows self-hosted runner 在线,并带有self-hosted、windows、x64标签。runtime-linux.yml需要独立的 Linux x64 self-hosted runner。如果暂时没有 Linux runner,请在release-bundle.yml中保持linux_runtime_keys为空,让 Linux 模块自动 no-op。