# 开发路线图

路线图按“可运行、可验证、可复现”的顺序推进。已完成项都能在提交记录、测试或验证文档中找到对应证据。

## 已完成：解析与诊断基础

- [x] `.pc` 变量、字段、注释与续行解析，按顺序展开变量。
- [x] 保留字段名和值的文件、行、列位置，并在出错后继续解析。
- [x] 元数据、版本约束、缺失依赖、循环和冲突诊断。
- [x] wasm、wasm-gc、JavaScript、native 四目标检查与测试。

## 已完成：依赖查询与可解释输出

- [x] 区分 `Requires`、`Requires.private`、`Libs.private` 和动态/静态查询。
- [x] 按稳定顺序聚合 Cflags/Libs，并保留每个参数的包、字段和源码位置。
- [x] 提供 POSIX shell 安全展示、结构化 JSON 和可选路径去重。
- [x] 支持多个有序搜索目录、版本查询与条件、变量查询与调用方覆盖。
- [x] 提供单文件检查、整目录检查和查询三组 CLI。

## 当前重点：扩大真实兼容证据

- [x] 加入 zlib 与 libffi 固定版本、提交及许可证的真实上游模板。
- [x] 在本地与 CI 自动差分验证 38 项 pkgconf 查询输出及退出码。
- [x] 在 `--explain` 中展示根包到参数所属包的最短依赖路径。
- [x] 按 pkgconf 3.0.7 的比较矩阵实现 `Provides` 范围声明，并加入官方样本及端到端差分。
- [x] 提供显式、可复现的系统路径过滤和 sysroot 重写，并与 pkgconf 3.0.7 差分。
- [x] 用 MoonPkgConfig 查询结果完成最小 C 静态库与 C++ 调用程序的编译、链接和运行闭环。

## 发布准备

- [x] 补齐仓库元数据，并在本地与 CI 检查 MoonCakes 打包清单。
- [x] 确认 MoonCakes 命名空间 `xmyd0915/moonpkgconfig` 并完成0.1.0首次发布。
- [x] 固定0.1.0版本，整理发行说明草案，并提供单命令评审演示。
- [x] 核对仓库、许可证、来源、项目方向与申报核心内容一致；记录申报早期数字需更新。
- [x] 保留9月28日的发布标签 `v0.1.0` 与成功 CI 记录。

## 后续重点：真实集成与兼容性

- [x] 读取真实安装的 zlib 元数据，直接驱动 MoonBit FFI 程序的构建与压缩/解压验证。
- [x] 增加 libpng → zlib 的真实私有依赖安装场景，核对跨目录查询、缺失依赖诊断及静态 PNG 编解码。
- [x] 补齐常用参数分类查询，方便构建系统分别处理搜索目录、库名及其余选项；保留来源、操作数和诊断，并与 pkgconf 3.0.7 对照。
- [x] 测量四种大型依赖图及展开边界，保留耗时、峰值内存和原始记录；修复路径解释重复搜索与5,000包深链解析失败。
- [x] 在单次查询中索引虚拟提供者、缓存依赖步骤，并复用有效子图的目录检查判定；保留插入顺序和问题根诊断，保存同机收益与限制。
- [x] 发布0.2.0并推送源码标签；实际归档消费者通过本地与 CI，MoonCakes 下载的新项目通过四目标安装及公开接口验证。
- [x] 增加 Windows MSVC 的真实 zlib 构建、静态库名显式映射与 MoonBit FFI；验证原始安装及正确引用的空格路径副本，并接入 Windows CI 和适配边界回归。
- [x] 增加直接依赖 MoonCakes 0.2.0 的独立文件压缩消费者，在仓库之外重现依赖故障、修复和实际构建；公开来源、文件往返与互操作记录，并接入双平台 CI。
- [x] 扩大到六个固定版本真实项目模板，校验来源与许可证哈希，以独立预期及 pkgconf 3.0.7 验证120项查询和4项静态顺序；增加固定种子的参数及异常输入检查和可复现报告。
- [x] 修复 Expat 语料暴露的 `Cflags.private` 缺口，支持静态编译参数与分类，保留跨依赖顺序、来源和错误位置；接口随0.3.0发布。
- [x] 用真实 Expat 静态安装驱动 MoonBit XML 解析，核对分块、Unicode、属性、实体、错误位置和 FFI 边界；MSVC 移除/恢复私有字段的负对照验证实际链接影响，并接入双平台 CI。
- [x] 整理0.3.0候选版本、发行说明与新增公开接口的实际归档消费者。
- [x] 正式发布0.3.0、创建源码标签，并从 MoonCakes 全新下载安装复验。
- [x] 修复损坏依赖被排除后丢失原始诊断的问题，保护私有查询模式、搜索目录和虚拟包语义；主分支新增8项核心及22个文件加载场景。
- [x] 提供使用 MoonCakes 0.3.0 的通用原生消费者模板，通过配置与应用源码接入 zlib 和 Expat，并在仓库之外验证失败、修复及真实构建。
- [x] 串联损坏依赖定位、修复、参数来源与两个实际消费者的可重复演示。

诊断修复对应0.3.1。新增接口及实际归档已通过独立验证；正式上传、源码标签和注册表新安装结果见 [发布记录](docs/release.md)，已有版本的标签与校验值保留。

当前项目仍不宣称完整替代 `pkg-config`/`pkgconf`。每次提交对应实际功能、测试、修复或文档变化，不为增加数量拆分无意义提交。
