# 开发路线图

MoonPkgConfig 面向原生 FFI 和构建工具，提供可解释的元数据查询。具体发行内容、源码标签和安装记录见 [版本记录](docs/release.md)，可复现命令见 [开发指南](DEVELOPMENT.md)。

## 解析、诊断与查询

- [x] `.pc` 变量、字段、注释与续行解析，保留原文、展开值和源码位置。
- [x] 元数据、版本约束、缺失依赖、循环、冲突和虚拟提供者诊断。
- [x] 公开/私有依赖与动态/静态参数查询，包含 `Cflags.private`。
- [x] 按依赖约束排列编译和链接参数，保留字段内顺序、重复项与来源。
- [x] 参数分类、搜索路径去重、显式 sysroot 与系统路径过滤。
- [x] 最短依赖路径解释与独立的根元数据选择接口。
- [x] 已知字段名的 ASCII 大小写兼容，以及公开可变文档的查询诊断。
- [x] 文档展开预算、诊断数量上限及保持顺序的哈希去重。

## 命令行与安装

- [x] 统一的 `moonpkgconfig inspect / query / check` 命令与兼容旧入口。
- [x] 多个有序搜索目录、同名优先级和原始文件错误保留。
- [x] 成功及失败路径的版本化 JSON、明确退出码和标准输出/错误流约定。
- [x] 仓库外实际安装与运行验证，以及无需 MoonBit 的独立 CLI 包。
- [x] 中英文使用入口、API 最小样例与完整许可证信息。

## 真实原生集成

- [x] 使用查询结果编译 C 静态库、链接并运行 C++ 调用程序。
- [x] zlib 的 MoonBit FFI：CRC-32、压缩、解压及错误返回。
- [x] libpng → zlib 私有依赖、跨目录查询与 PNG 像素往返。
- [x] Expat 静态编译字段、分块 XML 解析和 MSVC 链接负对照。
- [x] 单一规划器与适配器接入 zlib、Expat 和真实文件压缩工具。
- [x] 已有多包工程的实验性 pre-build 接入，保留自定义配置。

## 持续验证

- [x] wasm、wasm-gc、JavaScript、native 四目标检查、构建和测试。
- [x] Ubuntu 与 Windows MSVC 的持续集成和原生消费者。
- [x] 固定 pkgconf 3.0.7、官方样本与六个项目模板的可复现差分。
- [x] 固定种子参数/异常输入、多包依赖图与实际静态链接回归。
- [x] 系统安装语料的参数序列比较，以及移除依赖的失败路径检查。
- [x] 大图和资源边界测量，记录实际时间、峰值内存和工具版本。
- [x] 实际源码 ZIP、独立消费者及 MoonCakes 下载的安装验证。

## 后续方向

- [ ] 为文件加载增加读取大小限制与更细的按需加载策略，保留目录优先级、虚拟提供者和原始错误语义。
- [ ] 为现有工程的 `tools/` 布局扩展实验性构建适配器，验证移动工程并重新配置后的使用。
- [ ] 在工程配置完成前检查所有原生绑定，提供绑定级诊断上下文。
- [ ] 根据实际集成反馈扩展编译器适配范围，并增加对应的原生构建用例。

项目不宣称完整替代 `pkg-config` / `pkgconf`。新增兼容能力以明确的语义、公开接口和可运行用例为边界；后续版本保留既有发行归档和标签。
