ccgo 3.4.1

A high-performance C++ cross-platform build CLI
# CCGO 路线图

> 版本:v3.0.12 | 更新时间:2026-01-22

## 项目状态概览

| 模块 | 进度 | 状态 |
|------|------|------|
| Python CLI | 100% | 功能完整,维护模式 |
| Rust CLI | 100% | 功能完整,零 Python 依赖 ✅ |
| 跨平台构建 | 100% | 支持 8 个平台 |
| Docker 构建 | 100% | 通用交叉编译 |
| 依赖管理 | 100% | Git、路径、补丁、锁文件、传递依赖解析 ✅ |
| 发布系统 | 100% | Maven、CocoaPods、SPM、OHPM、Conan |
| 模板系统 | 100% | 基于 Copier 的项目生成 |
| CMake 集成 | 100% | 集中化构建脚本 |
| Gradle 插件 | 100% | Android/KMP 约定插件 |
| 文档 | 100% | 带 i18n 的 MkDocs(本文档!)|

**支持平台**:Android、iOS、macOS、Windows、Linux、OpenHarmony、watchOS、tvOS、Kotlin 多平台

---

## 优先级定义

- **P0(关键)**:阻塞核心功能或发布
- **P1(高)**:重要功能或重大改进
- **P2(中)**:增强功能,有价值但不紧急
- **P3(低)**:长期规划,锦上添花

---

## P0 - 关键(当前版本 v3.1)🔥

### 1. Rust CLI 功能对等
**状态**:100% 完成 ✅ | **目标**:v3.1.0(2026 年 Q1)

- [x] 核心构建命令(build、test、bench、doc)✅
- [x] 依赖管理(带锁文件的 install)✅
- [x] 项目创建(new、init)✅
- [x] 版本管理(tag、package)✅
- [x] vendor 命令实现 ✅
- [x] update 命令用于依赖更新 ✅
- [x] run 命令用于示例/二进制文件 ✅
- [x] CI 命令编排(通过组合命令实现)✅
- [x] 从 Python 完全迁移到 Rust ✅
- [x] 零 Python 依赖(直接调用 Copier)✅

**理由**:Rust 提供更好的性能、类型安全和更简单的分发(单一二进制)。

### 2. 文档完善
**状态**:100% 完成 | **目标**:v3.1.0(2026 年 Q1)✅

- [x] 带 i18n 的 MkDocs 设置 ✅
- [x] 首页和快速入门 ✅
- [x] 完整的平台指南(Android、iOS、macOS、Linux、Windows、OpenHarmony、KMP)✅
- [x] CLI 参考文档 ✅
- [x] CCGO.toml 配置参考 ✅
- [x] CMake 集成指南 ✅
- [x] Gradle 插件参考 ✅
- [x] 迁移指南(从 Conan、Python 到 Rust)✅

**理由**:良好的文档对用户采用和减少支持负担至关重要。

### 3. 错误处理增强
**状态**:100% 完成 | **目标**:v3.1.0(2026 年 Q1)✅

- [x] Rust CLI 中的统一错误类型 ✅
- [x] 带上下文提示的自定义错误类型 ✅
- [x] 带有可操作提示的用户友好错误消息 ✅
- [x] 工具缺失时的优雅降级 ✅
- [x] 全面的配置验证 ✅
- [x] 带需求级别的工具检测模块 ✅
- [x] 集成到构建/发布命令 ✅
- [x] 构建失败的诊断与常见解决方案 ✅

---

## P1 - 高(v3.2-v3.3)🚀

### 4. 包注册表支持
**状态**:0% 完成 | **目标**:v3.2.0(2026 年 Q2)

- [ ] ccgo-registry 服务器实现
- [ ] 发布包到 ccgo-registry
- [ ] 包发现和搜索
- [ ] 语义版本解析
- [ ] 私有注册表支持
- [ ] 与现有注册表集成(Conan Center、vcpkg)

**理由**:在组织和社区内更轻松地共享依赖。

### 5. IDE 集成
**状态**:100% 完成 ✅ | **目标**:v3.2.0(2026 年 Q2)

- [x] VS Code 扩展 (`vscode-ccgo/`) ✅
  - CCGO.toml 语法高亮(TextMate 语法)
  - JSON Schema 验证与错误提示
  - 构建任务集成(所有平台,debug/release)
  - 依赖树可视化(通过 `ccgo tree --format json`)
  - 常用模式的代码片段
- [x] CLion/Android Studio 插件 (`jetbrains-ccgo/`) ✅
  - CCGO.toml 语法高亮(TOML 插件集成)
  - JSON Schema 实时验证与错误提示
  - 所有平台和命令的运行配置
  - 依赖树工具窗口
  - 常用模式的实时模板
  - 插件配置设置界面
- [x] Neovim 插件 (`nvim-ccgo/`) ✅
  - Taplo LSP 集成与 CCGO schema
  - 带 Telescope 集成的构建命令
  - 依赖树侧边栏查看器
  - LuaSnip 代码片段(14+ 模板)
  - 平台/架构选择器
- [x] Xcode 项目生成 (`ccgo build ios/macos --ide-project`) ✅
- [x] Visual Studio 项目生成 (`ccgo build windows --ide-project`) ✅
- [x] Linux IDE 项目生成 (`ccgo build linux --ide-project`) ✅
  - CodeLite 工作区 + compile_commands.json 用于 VS Code/clangd

**理由**:更好的 IDE 支持改善开发者体验。

### 6. 构建性能优化
**状态**:67% 完成 | **目标**:v3.3.0(2026 年 Q2)

- [x] 并行平台构建 ✅
- [x] Docker 层缓存 ✅
- [ ] 增量构建(仅重建更改的源)
- [x] 构建缓存共享(ccache、sccache 集成)✅
- [ ] 远程构建执行(distcc、icecc)
- [x] 构建分析和性能分析 ✅

**理由**:更快的构建 = 更快乐的开发者。

### 7. 高级依赖功能
**状态**:100% 完成 ✅ | **目标**:v3.3.0(2026 年 Q2)

- [x] 带修订固定的 Git 依赖 ✅
- [x] 路径依赖 ✅
- [x] 锁文件生成 ✅
- [x] 依赖覆盖/补丁 ✅
- [x] 依赖 vendoring 改进 ✅
  - SHA-256 校验和验证
  - 构建制品排除规则(target/、cmake_build/ 等)
- [x] 传递依赖解析 ✅([文档]dependency-resolution.md)
- [x] 版本冲突解决策略 ✅
  - First(默认)、Highest、Lowest、Strict 模式
  - install 命令中的 `--conflict-strategy` CLI 选项
- [x] 工作区依赖(monorepo 支持)✅
  - build/install 命令的 `--workspace` 标志
  - `--package <name>` 用于指定特定成员

---

## P2 - 中(v3.4-v4.0)📦

### 8. 测试框架增强
**状态**:100% 完成 ✅ | **目标**:v3.4.0(2026 年 Q3)

- [x] Google Test 集成 ✅
- [x] Catch2 集成 ✅
- [x] 测试发现改进 ✅
  - GoogleTest、Catch2 和 CTest 发现
  - 按名称模式过滤测试
  - 基于测试套件的组织
- [x] 代码覆盖率报告 ✅
  - 支持 gcov、llvm-cov、lcov
  - HTML、LCOV、JSON、Cobertura 输出格式
  - 通过 --fail-under-coverage 强制阈值
- [x] 测试结果聚合 ✅
  - XML 结果解析(GoogleTest 格式)
  - 跨套件聚合
  - JUnit XML 导出
- [x] 基准测试结果比较 ✅
  - Google Benchmark JSON 解析
  - 基线比较与回归检测
  - Markdown/JSON 导出报告
- [x] 与 CI 服务集成 ✅
  - GitHub Actions、GitLab CI、Azure DevOps、Jenkins、TeamCity
  - 自动检测 CI 环境
  - 原生 CI 注解格式

### 9. 代码生成工具
**状态**:0% 完成 | **目标**:v3.5.0(2026 年 Q3)

- [ ] Protocol Buffers 支持
- [ ] Flat Buffers 支持
- [ ] gRPC 支持
- [ ] GraphQL 代码生成
- [ ] OpenAPI 客户端生成
- [ ] 自定义代码生成插件系统

### 10. 平台特定功能
**状态**:各异 | **目标**:v3.6.0(2026 年 Q4)

- [ ] **Android**
  - [ ] Jetpack Compose 原生互操作
  - [ ] Android Studio 插件
  - [ ] R8/ProGuard 配置
- [ ] **iOS/macOS**
  - [ ] SwiftUI 互操作辅助工具
  - [ ] Xcode Cloud 集成
  - [ ] App Clip 支持
- [ ] **OpenHarmony**
  - [ ] DevEco Studio 集成
  - [ ] ArkTS 互操作
- [ ] **Windows**
  - [ ] UWP 支持
  - [ ] WinUI 3 集成

### 11. 安全功能
**状态**:20% 完成 | **目标**:v3.7.0(2026 年 Q4)

- [x] 基本校验和验证 ✅
- [ ] 依赖的 GPG 签名验证
- [ ] 安全审计报告
- [ ] 依赖的 CVE 扫描
- [ ] 供应链安全(SLSA 合规)
- [ ] 代码签名自动化

---

## P3 - 低(v4.0+)🔮

### 12. WebAssembly 支持
**状态**:0% 完成 | **目标**:v4.0.0(2027)

- [ ] WASM 目标编译
- [ ] Emscripten 集成
- [ ] WASI 支持
- [ ] WebAssembly 系统接口(WASI)

### 13. AI 驱动功能
**状态**:0% 完成 | **目标**:v4.1.0(2027)

- [ ] 基于项目分析的依赖建议
- [ ] 构建配置优化建议
- [ ] 从其他构建系统自动迁移
- [ ] 从自然语言生成代码

### 14. 云构建服务
**状态**:0% 完成 | **目标**:v4.2.0(2027)

- [ ] 托管构建服务(ccgo-cloud)
- [ ] 分布式缓存
- [ ] 构建分析仪表板
- [ ] 团队协作功能

### 15. 高级平台支持
**状态**:0% 完成 | **目标**:v4.x(2027+)

- [ ] FreeBSD 支持
- [ ] Haiku OS 支持
- [ ] RISC-V 架构支持
- [ ] LoongArch 架构支持
- [ ] PlayStation/Xbox 平台(如果许可允许)

---

## 最近完成(v3.0)✅

### 构建性能优化(v3.0.12)
- [x] 构建缓存共享(ccache、sccache 集成)
  - 自动检测 PATH 中的 ccache/sccache
  - 优先顺序:sccache > ccache(sccache 更快,功能更多)
  - CMAKE_C_COMPILER_LAUNCHER 和 CMAKE_CXX_COMPILER_LAUNCHER 配置
  - `--cache` CLI 选项:auto(默认)、ccache、sccache、none
  - 集成到所有平台构建器
- [x] 构建分析和性能分析
  - 每个阶段的构建计时(配置、编译、链接、打包)
  - 来自 ccache/sccache 的缓存命中/未命中统计
  - 文件数量和制品大小跟踪
  - 历史数据存储在 ~/.ccgo/analytics/
  - `--analytics` 标志显示构建指标
  - `ccgo analytics` 命令查看构建历史
  - 与历史平均值的比较

### 测试框架增强(v3.0.12)
- [x] 测试发现改进
  - GoogleTest(`--gtest_list_tests`)、Catch2(`--list-tests`)、CTest(`ctest -N`  - 支持正则表达式的测试名称过滤
  - 基于套件的组织和列表
- [x] 代码覆盖率报告
  - 支持 gcov、llvm-cov、lcov 工具
  - 输出格式:HTML、LCOV、JSON、Cobertura、Summary
  - 通过 `--fail-under-coverage` 标志强制阈值
- [x] 测试结果聚合
  - GoogleTest XML 结果解析
  - 跨套件聚合,包含通过/失败/跳过计数
  - JUnit XML 导出用于 CI 集成
- [x] 基准测试结果比较
  - Google Benchmark JSON 解析
  - 可配置阈值的基线比较
  - 通过 `--fail-on-regression` 进行回归检测
  - Markdown/JSON 导出报告
- [x] CI 服务集成
  - GitHub Actions(工作流注解)
  - GitLab CI(可折叠部分)
  - Azure DevOps(任务命令)
  - Jenkins(控制台格式化)
  - TeamCity(服务消息)
  - 通过环境变量自动检测

### 高级依赖功能(v3.0.12)
- [x] 依赖 vendoring 改进
  - SHA-256 校验和验证
  - 构建制品排除规则(target/、cmake_build/、bin/ 等)
  - 改进的归档创建和目录处理
- [x] 版本冲突解决策略
  - 四种策略:First(默认)、Highest、Lowest、Strict
  - install 命令的 `--conflict-strategy` CLI 选项
  - 集成到 VersionResolver 的策略感知解析
- [x] 工作区依赖(monorepo 支持)
  - `--workspace` 标志用于构建/安装所有工作区成员
  - `--package <name>` 用于指定特定工作区成员
  - 用于成员间依赖的拓扑排序解析

### 传递依赖解析(v3.0.11)
- [x] 带循环检测的依赖图(DFS 算法)
- [x] 用于正确构建顺序的拓扑排序(Kahn 算法)
- [x] 依赖树可视化与共享依赖检测
- [x] 版本冲突警告
- [x] 带路径处理的递归 CCGO.toml 解析
- [x] 最大深度保护(50 层)
- [x] 集成到 `ccgo install` 命令
- [x] 全面的测试套件(10 个测试:7 个解析器 + 3 个图)
- [x] 完整文档([docs/dependency-resolution.md]dependency-resolution.md
### Rust CLI 迁移(部分)
- [x] 项目架构重新设计
- [x] 核心命令实现
- [x] 依赖管理系统
- [x] 构建编排
- [x] 配置解析(CCGO.toml)

### Docker 构建系统
- [x] 基于 Docker 的通用交叉编译
- [x] 所有平台的预构建 Docker 镜像
- [x] 镜像缓存和优化
- [x] 多阶段构建支持

### 统一发布
- [x] Maven(本地、私有、中央)发布
- [x] CocoaPods 发布
- [x] Swift Package Manager 发布
- [x] OHPM 发布
- [x] Conan 发布

### Git 集成
- [x] 自动版本标记
- [x] 提交消息生成
- [x] Git hooks(pre-commit)支持
- [x] 基于 Git 的依赖

---

## 如何贡献

我们欢迎贡献!以下是您可以帮助的方式:

1. **选择功能**:从 P1 或 P2 优先级中选择一项
2. **讨论**:开启 GitHub Discussion 或 Issue 讨论您的方法
3. **实现**:遵循我们的[贡献指南]contributing.md
4. **测试**:确保您的更改在各平台上工作
5. **文档**:更新新功能的文档
6. **提交**:创建 pull request

详细指南请参阅[贡献指南](contributing.md)。

---

## 反馈

对 CCGO 的未来有想法?我们很乐意听到您的声音!

- [GitHub Discussions]https://github.com/zhlinh/ccgo/discussions - 功能请求和想法
- [GitHub Issues]https://github.com/zhlinh/ccgo/issues - 错误报告和任务
- 邮箱:zhlinhng@gmail.com

---

*本路线图是一份动态文档,可能会根据社区反馈和项目优先级进行更改。*