核心用法
changelog 是一款面向开发者的命令行变更日志生成工具,核心工作流为:
1. 解析 Git 历史:扫描 commit message,识别 Conventional Commits 格式(feat:、fix:、BREAKING CHANGE: 等)
2. 智能分组:按语义版本号(SemVer)自动归类提交,提取新增功能、修复项、破坏性变更
3. 模板渲染:内置及自定义 Markdown 模板,输出可直接发布的 CHANGELOG.md
4. 导出集成:支持 JSON 等格式导出,便于对接 CI/CD 流水线或自动化发布系统
显著优点
- 标准化输出:强制遵循 Conventional Commits 规范,降低团队协作成本
- 自动化程度高:一行命令
changelog run即可完成从解析到生成的全流程 - 破坏性变更检测:主动识别
BREAKING CHANGE标记,避免版本升级事故 - 轻量级 CLI:无复杂依赖,适合嵌入 Git hooks 或 GitHub Actions
- 可扩展模板:支持自定义输出格式,适配企业内部文档规范
潜在缺点与局限性
- 输入依赖性强:完全依赖 commit message 的规范性,若团队未统一提交规范,输出质量骤降
- 无 GUI 界面:纯命令行交互,对非技术用户或设计师团队不够友好
- 模板生态有限:相比生态成熟的工具(如
git-cliff、standard-version),社区模板库较小 - 数据隔离性:默认存储于
~/.local/share/changelog/,多项目并发时需注意路径冲突
适合人群
- 追求自动化版本管理的独立开发者与小型技术团队
- 已采用 Conventional Commits 规范的开源项目维护者
- 需在 CI/CD 中自动生成发布 notes 的DevOps 工程师
常规风险
- 信息泄露风险:若仓库包含敏感 commit message(如内部系统 ID、密码重置记录),生成的 changelog 可能意外暴露
- 版本号推断偏差:自动版本 bump 逻辑若与团队实际分支策略冲突,可能导致版本号混乱
- 存储路径权限:
~/.local/share/changelog/的权限配置不当可能导致多用户环境下的数据竞争或泄露