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.

Jump to install

Source facts

Repository
Xpra-org/xpra
Last source activity
September 14, 2026 at 12:18
Detected SKILL.md language
English
Stars
2,979
Forks
237

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions ยท Read-only preview
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.
View on GitHub