Skip to main content

update-changelog

Update docs/CHANGELOG.md with every commit since the last release notes update, one user-facing line per change linking to the GitHub commit. Use when the user asks to "update the changelog", "update the release notes", or add recent commits to docs/CHANGELOG.md.

跳到安装

来源信息

仓库
Xpra-org/xpra
最近来源活动
2026年9月14日 12:18
检测到的 SKILL.md 语言
英语
星标
2,975
分支
237

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
update-changelog
description
Update docs/CHANGELOG.md with every commit since the last release notes update, one user-facing line per change linking to the GitHub commit. Use when the user asks to "update the changelog", "update the release notes", or add recent commits to docs/CHANGELOG.md.
# update-changelog Adds the commits made since the last changelog update to the top (unreleased) section of `docs/CHANGELOG.md`. Readers use these notes to decide whether a release is relevant to them. ## Steps ### 1. Find the commits to add ```sh git log --oneline -5 -- docs/CHANGELOG.md # last "update the release notes" commit git log --oneline <last-update>..HEAD # new commits git diff docs/CHANGELOG.md # uncommitted edits already made by the user - keep them ``` Earlier updates sometimes missed commits, so also check every commit since the last release tag. A commit counts as covered if the changelog already links its hash, its `(cherry picked from commit ...)` origin, or the commit named in a "Port of ..." body: ```sh tag=$(git describe --tags --abbrev=0) for h in $(git log --format=%H $tag..HEAD); do grep -q "$h" docs/CHANGELOG.md && continue o=$(git log -1 --format=%b $h | sed -n 's/.*cherry picked from commit \([0-9a-f]*\).*/\1/p') [ -n "$o" ] && grep -q "$o" docs/CHANGELOG.md && continue git log -1 --format='%h %ad %s' --date=short $h done ``` Skip only housekeeping commits: `update the release notes`, `bump version`, and changelog-only doc commits. Everything else goes in, including branch-specific test changes (put those under Cosmetic). Add the missed older commits too, and tell the user which ones were missed. ### 2. Understand what each commit fixes Read `git show <hash>`: the body, the diff, and any new tests. Tests often show the real bug best. Work out what the user saw: which clients or servers, which options, and whether the code path is on by default (check `xpra/scripts/config.py`). That decides both the wording and the category. ### 3. Write the entries Format, under the right category in the top section: ``` * [description of the problem](https://github.com/Xpra-org/xpra/commit/<full 40-char hash>) ``` - **Describe the problem, not the code change.** Say what broke and for whom, e.g. "GTK clients fail to restack a window above or below another window", not "pass GdkWindow instead of ClientWindow". Mention the option or platform when the bug depends on it, e.g. "with `modal-windows` enabled, ...". - **One commit per line.** A fixup or a very closely related commit goes on the same line: ` * [main change](url) + [fixup](url)`. Other short forms already in the file also work, such as `[... ](url) [and ...](url)` and `+ [on macOS](url)`. - **Which hash to link:** - a `git cherry-pick -x` commit links the master commit named in `(cherry picked from commit ...)` - a manual port (e.g. body says "Port of <hash>") links the **branch commit**, not master - everything else links the branch commit - Always use full hashes: `git rev-parse <short>`. ### 4. Categories Use the categories already in the top section, keeping their emoji. The usual ones are: `🔧 Platforms, build and packaging`, `⚠️ Major`, `🌈 Encodings`, `Minor`, `*️⃣ Keyboard`, `📋 Clipboard`, `🎥 Recorder / replay`, `🖧 Network`, `💄 Cosmetic`. Some are subsystem-specific, e.g. `Wayland backend`, `CUDA and NVENC`, `macOS`, `MS Windows`. - Add a **new category** only when more than 4 commits refer to the same subsystem. Move the related existing entries into it. - **Major**: crashes, broken features, sessions or windows unusable, on default settings. - **Minor**: real bugs with a narrow trigger, like a non-default option or an unusual setup. - **Cosmetic**: logging errors, spurious warnings, unit tests, CI, type checks. ### 5. Finish - Change the date on the top section header (`## [x.y.z] YYYY-MM-DD`) to today. - Check coverage again with the loop from step 1. Only the housekeeping commits should be left. - Only edit `docs/CHANGELOG.md`. Do not commit unless asked. - Report what was added and where, which older commits had been missed, and anything left out and why.
在 GitHub 查看