2.6 KiB
2.6 KiB
name, description
| name | description |
|---|---|
| changelog | 根据 git 提交记录生成或更新 CHANGELOG.md 文件,自动分类提交并按语义化版本管理 |
CHANGELOG 生成器
自动从 git 提交记录生成符合项目规范的 CHANGELOG.md。
执行步骤
-
读取现有 CHANGELOG.md
- 解析最新版本号(如 0.1.1)
- 识别最新版本的日期
-
获取 git 提交记录
- 尝试查找最新的 git tag
- 如果有 tag:获取从最新 tag 到 HEAD 的所有提交
- 如果没有 tag:根据最新版本日期获取之后的所有提交
- 使用命令:
git log --pretty=format:"%h|%s|%b|%ad" --date=short
-
解析和分类提交
- 从提交信息中提取
type(scope): description格式 - 按 type 分类:
feat→ Added 部分fix→ Fixed 部分refactor,perf,style→ Changed 部分chore,docs,test→ 根据内容判断或忽略
- 按 scope 分组相同类型的改动
- 保留提交的详细说明(body)中的关键信息
- 从提交信息中提取
-
生成新版本内容
- 询问用户新版本号(提供自动递增建议,如 0.1.1 → 0.1.2)
- 使用当前日期(YYYY-MM-DD 格式)
- 生成格式:
## [新版本号] - YYYY-MM-DD: - All changes since 上个版本号 ### Changed: - scope: 变更说明 ### Fixed: - scope: 修复说明 ### Added: - scope: 新增说明 ### Deprecated: -
预览和确认
- 显示生成的新版本内容
- 询问用户是否插入到 CHANGELOG.md
- 如果确认,将新内容插入到文件顶部(在
# Change Log标题之后)
格式要求
- 缩进:使用 2 空格缩进
- 分组:相同 scope 的改动合并,使用子列表
- 排序:
- 部分顺序:Changed → Fixed → Added → Deprecated
- 每部分内按 scope 字母排序
- 空行:各部分之间保留空行
示例输出
## [0.1.2] - 2025-01-14:
- All changes since 0.1.1
### Changed:
- drivers/lisa_uart: 防止传输过程中重新配置
### Fixed:
- drivers/lisa_gpio: 修复中断被重复触发的问题
- drivers/lisa_flash: 修复边界检测
### Added:
- boards: 新增rgb pinmux适配
- components/new_feature: 新增功能组件
注意事项
- 不要自动 git commit 生成的 CHANGELOG
- 只处理 CHANGELOG.md 文件,不修改其他文件
- 如果提交信息格式不规范,尽量智能提取关键信息
- 对于合并提交(Merge commit),可以忽略或提取实际改动
- 保持与现有 CHANGELOG.md 相同的格式风格