Skip to content

Release v0.12.0

Workspace 支持 - Monorepo 检测与 Commit Scope 推断

自动检测 6 种 monorepo 类型(Cargo、pnpm、npm、Lerna、Nx、Turbo),将变更文件映射到对应包,并将 scope 建议注入 LLM prompt 以生成更准确的 commit message。零配置即可使用,支持完整的手动覆盖。

新增

Monorepo Workspace 检测

  • 新增 src/workspace/ 模块,检测 Cargo workspace、pnpm-workspace.yaml、npm/yarn workspaces、lerna.json、nx.json 和 turbo.json
  • 解析 workspace member glob 模式(如 packages/*crates/**)为匹配前缀
  • 检测优先级:Cargo > Pnpm > Npm > Lerna > Nx > Turbo
  • 所有检测错误非致命:输出 warning 日志并返回 None

Commit Scope 推断

  • 将变更文件映射到 workspace 包
  • Scope 规则:1 个包 → 包短名,2-3 个包 → 逗号分隔,4+ 个包 → None(由 LLM 自行判断)
  • 在 LLM user prompt 中注入 ## Workspace: 段,包含 monorepo 类型、受影响包和建议 scope
  • -v 模式下显示检测结果,默认静默

Workspace 配置

  • 新增 [workspace] 配置段,含 enabledmembersscope_mappings 字段
  • members:手动指定 workspace 模式,跳过自动检测
  • scope_mappings:将自动推断的包名重映射为自定义 scope 字符串
  • 默认启用;设置 enabled = false 可关闭

测试

  • workspace_e2e_test.rs 中 14 个端到端测试覆盖全部 6 种 workspace 类型
  • scope 推断、prompt 注入和 glob 转前缀的单元测试

变更

发布流程改进

  • 发布改为先创建草稿,所有构建/发布任务完成后再正式发布
  • 资产下载使用 gh release download 替代 curl,提升可靠性

依赖更新

  • 新增 tomlserde_yml 用于 workspace 配置文件解析

升级

bash
# Homebrew
brew upgrade gcop-rs

# Cargo
cargo install gcop-rs

# pip
pip install --upgrade gcop-rs