name: write-app-change-log description: 根据自上一个版本标签以来的git历史,生成并更新最新的应用更新日志。
编写应用更新日志
此技能可自动化创建简洁且有意义的应用更新日志的过程。
工作流程
-
获取最新标签:
- 确保从远程仓库获取所有标签。
- 示例:
git fetch --tags origin
-
确定基准标签:
- 查找与模式
v*匹配的最新git标签。 - 示例:
git tag -l "v*" --sort=-v:refname | head -n 1
- 查找与模式
-
收集提交记录:
- 获取从已识别的标签到当前
HEAD的所有提交。 - 对于每个提交,收集标题和完整描述。
- 示例:
git log <base-tag>..HEAD --pretty=format:"%s%n%b%n---"
- 获取从已识别的标签到当前
-
筛选与应用相关的提交:
- 分析提交信息和更改的文件。
- 排除主要影响以下内容的提交:
- 仓库基础设施(例如,
.github/、scripts/、fastlane/,更新日志除外)。 - CI/CD 流水线(例如,工作流 YAML 文件、Dockerfiles)。
- 构建工具配置(除非直接影响应用行为)。
- 内部文档或维护(例如,
README.md、AGENTS.md、task.md、implementation_plan.md)。
- 仓库基础设施(例如,
- 包含修改以下内容的提交:
- 应用源代码(
app/、database/、network/)。 - 资源文件(
strings.xml、UI布局)。 - 面向用户的功能或错误修复。
- 应用源代码(
-
识别有意义的变更:
- 从筛选后的列表中,选择 2-5个最重要 的变更。
- 关注对最终用户影响最大的内容(新功能、主要错误修复、性能改进)。
-
匹配风格和语气:
- 阅读
fastlane/metadata/android/en-US/changelogs/中的现有更新日志。 - 识别编号最高的文件(例如,
9.txt)。 - 分析近期条目的语言、语气和格式。
- 保持同样简洁、专业的风格。
- 通常格式为:
欢迎使用 Janus <版本名称> (<版本代码>),如果列出多个变更则使用项目符号,或者使用单个描述性句子。
- 阅读
-
更新最新的更新日志:
- 获取已识别的有意义变更。
- 按照既定风格起草新内容。
- 更新
fastlane/metadata/android/en-US/changelogs/中编号最高的文件,填入新内容。
指导原则
- 保持简洁。
- 聚焦用户价值。
- 除非必要,避免使用技术术语。
- 确保更新日志中的版本名称和代码与当前项目状态匹配(可在
app/build.gradle.kts或类似文件中找到)。