2.2 KiB
Provider-neutral PBF Pipeline
执行
在仓库根目录安装 requirements-provider-pipeline.txt 后,执行:
python tools/provider-pipeline/run_provider_pipeline.py --manifest providers/navsea/manifest.json
python tools/provider-pipeline/run_provider_pipeline.py --manifest providers/cm95/manifest.json
也可重复传入 --sample-tile z/x/y 覆盖 manifest 中的样本候选。Pipeline 复用 manifest 声明的现有人工 assignment 或冻结 Catalog,不会用自动 matcher 覆盖审核结果。已有视觉目录和实例化目录会从 .tmp/provider-pipeline/ 复用;需要从头重算时删除对应 work 目录。--no-export 只运行到 Package 校验,因此不会执行 PBF-07 和 PBF-08。
阶段
PBF-01 保存原 Style、Sprite 和真实 PBF 样本并计算 SHA-256 / source fingerprint。PBF-02 复用现有 Style Visual Object Tool。PBF-03 接收 provider/dataset 参数并为每个 feature 写 occurrence 及可追溯证据。PBF-04 从冻结 Standard Catalog 的视觉 hash 对照,或读取声明的人工 assignment。PBF-05/06 使用共享契约和校验逻辑。只有 PASS 或 PASS_WITH_WARNINGS 才能 PBF-07 导出。
PBF-08 在 PBF-07 成功后自动生成一个可直接交给 NavSea 的单文件 ZIP。ZIP 使用严格白名单,缺少任何规定文件都会直接失败;临时 PBF、.tmp、工具源码、人工审核中间文件和其他未声明文件不会进入 ZIP。
PBF-08 ZIP 固定包含:
provider-package.json
provider-policy.json
mapping-layer-assignment.json
resources-style.json
resources-sprite.json
resources-sprite.png
validation.json
validation.md
MANIFEST.json
默认输出:
dist/<provider>/<dataset>/
<provider>-<dataset>-<version>.navsea-provider.zip
ZIP 内部还有一个同名顶层目录,避免解压多个 Provider 包时文件混在一起。Pipeline 在完成 ZIP 后会重新打开 ZIP,核对文件列表、CRC,并计算 ZIP SHA-256;这些信息写入 pipeline-report.json 的 PBF-08 节点,同时打印 deliveryZip 和 deliveryZipSha256。
PBF-07 的可审计目录仍保留在:
dist/<provider>/<dataset>/<version>/
运行缓存位于 .tmp/,不纳入 Git。Pipeline 不生成 ProviderExecutionPlan。