Files
pbf/tools/provider-pipeline/README.md
2026-10-06 10:28:22 +08:00

50 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Provider-neutral PBF Pipeline
## 执行
在仓库根目录安装 `requirements-provider-pipeline.txt` 后,执行:
```bash
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 固定包含:
```text
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
```
默认输出:
```text
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 的可审计目录仍保留在:
```text
dist/<provider>/<dataset>/<version>/
```
运行缓存位于 `.tmp/`,不纳入 Git。Pipeline 不生成 ProviderExecutionPlan。