Files
2026-08-13 16:50:52 +08:00

2.6 KiB
Raw Permalink Blame History

name, description
name description
changelog 根据 git 提交记录生成或更新 CHANGELOG.md 文件,自动分类提交并按语义化版本管理

CHANGELOG 生成器

自动从 git 提交记录生成符合项目规范的 CHANGELOG.md。

执行步骤

  1. 读取现有 CHANGELOG.md

    • 解析最新版本号(如 0.1.1
    • 识别最新版本的日期
  2. 获取 git 提交记录

    • 尝试查找最新的 git tag
    • 如果有 tag获取从最新 tag 到 HEAD 的所有提交
    • 如果没有 tag根据最新版本日期获取之后的所有提交
    • 使用命令:git log --pretty=format:"%h|%s|%b|%ad" --date=short
  3. 解析和分类提交

    • 从提交信息中提取 type(scope): description 格式
    • 按 type 分类:
      • featAdded 部分
      • fixFixed 部分
      • refactor, perf, styleChanged 部分
      • chore, docs, test → 根据内容判断或忽略
    • 按 scope 分组相同类型的改动
    • 保留提交的详细说明body中的关键信息
  4. 生成新版本内容

    • 询问用户新版本号(提供自动递增建议,如 0.1.1 → 0.1.2
    • 使用当前日期YYYY-MM-DD 格式)
    • 生成格式:
    ## [新版本号] - YYYY-MM-DD:
    
    - All changes since 上个版本号
    
    ### Changed:
      - scope: 变更说明
    
    ### Fixed:
      - scope: 修复说明
    
    ### Added:
      - scope: 新增说明
    
    ### Deprecated:
    
    
  5. 预览和确认

    • 显示生成的新版本内容
    • 询问用户是否插入到 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 相同的格式风格