|
3 | 3 | > 本文件追踪 `mcpp-community/mcpp` 公开仓的版本演进。 |
4 | 4 | > 格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/)。 |
5 | 5 |
|
| 6 | +## [0.0.2] — 2026-05-09 |
| 7 | + |
| 8 | +第二个公开版本。新增 C 语言一等公民支持、xpkg 风格依赖命名空间,以及包管理子系统骨架重构。 |
| 9 | + |
| 10 | +### 新增 |
| 11 | + |
| 12 | +- ✅ **C 语言源文件支持** — `mcpp.toml` 的 `[build]` 段新增 `cflags`、 |
| 13 | + `cxxflags`、`c_standard` 三个字段;ninja 后端探测 `.c` 源文件后自动派 |
| 14 | + 生兄弟 C 编译器(`g++ → gcc`、`clang++ → clang`、跨编译器前缀如 |
| 15 | + `x86_64-linux-musl-gcc` 同样适用),发出独立的 `c_object` 规则。 |
| 16 | + 按文件扩展名分发:`.cppm → cxx_module`、`.c → c_object`、其它 → |
| 17 | + `cxx_object`;dyndep / 模块扫描自动跳过 `.c`。**实测可直接编译 |
| 18 | + mbedtls 3.6.1 全部 108 个 `.c` 源文件**(SHA-256 测试向量与 FIPS |
| 19 | + 180-4 一致)。 |
| 20 | + |
| 21 | +- ✅ **xpkg 风格依赖命名空间** — `mcpp.toml` 现在原生支持三种依赖书写形式: |
| 22 | + - 平铺默认命名空间:`gtest = "1.15.2"` ⇒ `(mcpp, gtest)`,无引号 |
| 23 | + - TOML 子表命名空间:`[dependencies.mcpplibs] cmdline = "0.0.2"` ⇒ |
| 24 | + `(mcpplibs, cmdline)`,无引号 |
| 25 | + - 老式带点字符串(向后兼容):`"mcpplibs.cmdline" = "0.0.2"` 仍能解析 |
| 26 | + - CLI 同步:`mcpp add mcpplibs:cmdline@0.0.2` 接受 `<ns>:<name>` |
| 27 | + 冒号分隔形式,写出仍是子表写法 |
| 28 | + - 解析层在 `DependencySpec` 增加 `namespace_` + `shortName` 结构化 |
| 29 | + 字段,fetcher / lockfile / cache 等下层逻辑沿用现有完全限定 key。 |
| 30 | + |
| 31 | +### 改进 |
| 32 | + |
| 33 | +- 🛠 **`src/pm/` 子系统骨架** — 启动包管理代码集中化: |
| 34 | + `dep_spec` / `lock_io` / `package_fetcher` / `resolver` 四个模块从 |
| 35 | + `manifest.cppm` / `lockfile.cppm` / `fetcher.cppm` / `cli.cppm` 抽出 |
| 36 | + 到 `src/pm/` 下;旧模块保留薄 shim,所有调用点零改动。后续 `commands` |
| 37 | + / `publisher` / `pm` 门面三个 PR 在路上。 |
| 38 | +- 📄 **新增设计文档** `.agents/docs/`: |
| 39 | + - `2026-05-08-package-index-config.md` — 多源包索引仓配置 + |
| 40 | + `mcpp.lock` 索引 commit 锁定 + 两层不可变性 |
| 41 | + (L1 publish policy + L2 lock mechanism) |
| 42 | + - `2026-05-08-pm-subsystem-architecture.md` — 包管理子系统目标布局 |
| 43 | + 与 7 步落地计划 |
| 44 | + |
| 45 | +### 修复 |
| 46 | + |
| 47 | +- 🐛 path 依赖的 `[package].name` 比对支持 xpkg 标准 `name` + 旧式 |
| 48 | + `<ns>.<name>` 复合名两种形式,兼容当前 mcpp-index 描述符尚未迁移的 |
| 49 | + 状态。 |
| 50 | + |
| 51 | +### 兼容性 |
| 52 | + |
| 53 | +向后兼容。老的 `mcpp.toml` / `mcpp.lock` 不需要任何改动即可在 0.0.2 下 |
| 54 | +继续工作。带引号的 `"ns.name"` 形式继续被解析,只是新写出的 `mcpp add` |
| 55 | +会用无引号的子表形式。 |
| 56 | + |
6 | 57 | ## [0.0.1] — 2026-05-07 |
7 | 58 |
|
8 | 59 | mcpp 首个公开发版本。 |
|
0 commit comments