用途
SimpMusic Release Changelog 是面向 SimpMusic 项目的发布更新日志工作流。它规定更新日志只列出已交付的工作,且每一行都链接到追踪该工作的 issue 或 PR;在写日志前,先核对项目管理面板(Project #2),确保日志中的链接指向面板中真实存在的内容。
主要产出文件
- 完整更新日志:changelogs/<version>/en-US.md 与 changelogs/<version>/vi-VN.md,无长度限制。
- 应用商店文案(F-Droid / Play):fastlane/metadata/android/<locale>/changelogs/<versionCode>.txt,不超过 500 字符,由 owner 撰写;不得为容纳新条目而删减 owner 的条目,放不下的内容归入 changelogs/。
- GitHub 发布说明:New / Improved / Fixed 分节,并附完整更新日志链接。
第一步:核对 Project #2
先对两个仓库执行 git fetch,确认分支不落后于 origin。然后盘点上次发布标签以来的全部内容:
- app:git log <lastTag>..origin/dev --no-merges
- core:git -C core log $(git ls-tree <lastTag> core | awk '{print $3}')..HEAD
- maxrave-dev/SimpMusic 与 maxrave-dev/core 中已合并的 PR
- 面板:gh project item-list 2 --owner maxrave-dev --limit 500 --format json
只报告面板缺失的已完成工作:已由交付提交修复但仍处于开启状态的 issue、没有对应 issue 的已交付改动、未上板的已合并 PR、以及已交付部分未反映的面板条目。新建和未分类的 issue 不纳入此报告。
在宣布某 issue 已修复前,需阅读其时间线(提交引用、关联 PR、owner 评论)与代码。若修复仅在代码注释中提及该 issue,时间线不会有链接,此时需将堆栈跟踪与提交进行比对。
owner 批准后的处理:
- 已修复 issue: gh issue comment N --body "Fixed in <version> (<sha>)" gh issue edit N --milestone v<version> gh project item-add 到 Project #2 将 Status 设为 Done Done 会自行关闭 issue;若在此之前执行 gh issue close --comment,会输出 "already closed" 并丢弃评论,因此必须先评论。
- 无对应 issue 的已交付改动:每个版本创建一个任务,标题为 Polish for <version>: …,打上 Improvement 及主题标签,设置里程碑与 Done 状态后关闭,逐项列出改动及其提交。
项目 ID:project 为 PVT_kwHOBsekuM4AoHIU,Status 字段为 PVTSSF_lAHOBsekuM4AoHIUzgfvIvs,Done 选项为 98236657。由于 origin 可能指向 fork,始终传入 --repo maxrave-dev/SimpMusic。
第二步:编写 changelogs/<version>/
文件结构:
SimpMusic <version>
New
- <功能>:用户现在能做什么。(#N)
Improved
- <区域>:哪些方面变好了。(#N)
Fixed
- 用户看到的症状。(#N)
vi-VN.md 中标题为 ## Mới、## Cải thiện、## Sửa lỗi。
每一行至少附一个链接:issue、PR、core PR、无独立 issue 时链接该版本的 Polish 任务、新增应用语言时链接 Crowdin。使用完整 URL,因为 GitHub 不会在仓库文件内自动链接 #N。
排序:先遵循 owner 的 fastlane <versionCode>.txt,再按区域补充其余条目。措辞描述用户可见的变化而非代码,每项一行、不硬换行。vi-VN.md 以 "bạn" 称呼读者,"anh" 仅用于称呼 owner。两个文件需条目与链接一致,可用 grep -c '^- ' 及链接目标的排序 diff 校验。
常见错误
- 在“面板缺失”报告中列入新建、未分类 issue——只列已完成工作。
- 为每个小改动建任务——每个版本只建一个 Polish 任务。
- 更新日志行没有链接——链接 issue、PR,或没有时链接 Polish 任务。
- 设置 Done 后才执行 gh issue close --comment——应先评论再设 Done。
- .md 文件中使用 #N 简写——应使用完整 URL。
- vi-VN.md 中使用 "anh"——应使用 "bạn"。
- 为在 500 字符内放入新条目而删减 owner 的 fastlane 条目——保留 fastlane 原文,完整列表放 changelogs/。