Skip to main content

update-changelog

Generate and curate CHANGELOG updates from recent pull requests, then create a ready-for-review PR. Use this when asked to update, refresh, or generate the development changelog.

Datos de origen

Repositorio
dotnet/vscode-csharp
Última actividad en el origen
21 de octubre de 2026 a las 23:02
Idioma detectado de SKILL.md
inglés
Estrellas
3078
Forks
741

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
update-changelog
description
Generate and curate CHANGELOG updates from recent pull requests, then create a ready-for-review PR. Use this when asked to update, refresh, or generate the development changelog.
# Update the CHANGELOG Run the repository's existing changelog generator, curate its candidate entries for user impact, and create a pull request containing only `CHANGELOG.md`. ## Input - **Target branch** (optional): The branch whose changelog should be updated. Default to `main` unless the user specifies another branch. ## Prerequisites 1. Ensure `gh` is installed and authenticated: ```shell gh auth status ``` 2. Check the Node.js version: ```shell node --version ``` Prefer Node.js 24 for parity with repository CI. The current dependencies also support Node.js 22.13 or newer, so a compatible Node.js 22 installation is not a reason to stop. If `npm ci` reports an engine incompatibility, switch to Node.js 24 with an installed version manager such as `nvm`, `fnm`, or Volta. 3. Ensure `roslyn-tools` is available. If it is not installed, run: ```shell dotnet tool install -g Microsoft.RoslynTools --prerelease --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json ``` 4. Run `git status --short --untracked-files=all`. Require a clean worktree and index before switching branches or generating entries. If there are any changes, stop and ask the user to commit, stash, or move that work rather than carrying it onto the changelog branch. ## Generate candidate entries 1. Identify the remote for the canonical `dotnet/vscode-csharp` repository. Do not assume `origin` is canonical because contributor checkouts commonly use `origin` for a fork. Inspect the configured remotes: ```shell git remote -v ``` Prefer an existing remote such as `upstream` whose URL points to `dotnet/vscode-csharp`. If none exists, add one: ```shell git remote add upstream https://github.com/dotnet/vscode-csharp.git ``` 2. Fetch the target branch and all release tags from that canonical remote. The generator uses the newest tag matching the previous changelog version: ```shell git fetch <canonical-remote> <target-branch> --tags ``` 3. Before installing dependencies or running the generator, switch to the dedicated changelog branch based on the fetched target revision: ```shell git switch -c merge/update-<target-branch>-changelog FETCH_HEAD ``` If that branch already exists, switch to it and rebase it onto the fetched target revision instead of recreating or resetting it: ```shell git switch merge/update-<target-branch>-changelog git rebase FETCH_HEAD ``` Stop if the existing branch contains unrelated work or the rebase conflicts. Do not run the generator until this check succeeds: ```shell git merge-base --is-ancestor FETCH_HEAD HEAD ``` This ensures that both the checked-out `CHANGELOG.md` and the generator's `HEAD` range reflect the requested target branch. 4. Install the repository dependencies exactly as CI does: ```shell npm ci ``` 5. Run the existing generator: ```shell npm run updateChangelog ``` If the generator cannot find a tag for the previous version, stop and report the missing version. Do not guess a tag or manually choose an unrelated tag. ## Curate the generated entries Inspect only the changes introduced by the generator: ```shell git diff -- CHANGELOG.md ``` For every newly added pull request, use its description and diff to determine whether it has clear impact on C# extension users: ```shell gh pr view <number> --repo dotnet/vscode-csharp --json title,body,files,url gh pr diff <number> --repo dotnet/vscode-csharp ``` Keep entries for user-visible features, fixes, diagnostics, editor behavior, debugging, reliability, or performance. When the impact is ambiguous, omit the entry. Exclude: - Component updates or insertions for Roslyn, Razor, OmniSharp, the debugger, the Copilot language server, and xamlTools. Their update process already curates relevant nested changelog notes. - Infrastructure, build, pipeline, packaging, or dependency-maintenance work. - Documentation-only or test-only changes. - Internal refactoring without clear user-visible impact. Reword retained entries as concise, factual, user-facing notes while preserving the existing bullet and PR-link format. Do not change any pre-existing changelog line, version header, component insertion note, or older section. ## Handle a no-op result If the generator made no change, or no generated entries remain after curation, restore `CHANGELOG.md` to its pre-generation state and do not create a commit or pull request. Report that there were no relevant user-facing changes. ## Validate the update Before committing: 1. Run `git diff --check`. 2. Confirm that `CHANGELOG.md` is the only modified file intended for the pull request. 3. Review the final diff once more to ensure all existing content is preserved. ## Create the pull request Remain on the dedicated `merge/update-<target-branch>-changelog` branch prepared before generation. Commit only `CHANGELOG.md`: ```shell git add CHANGELOG.md git commit --only --message "Update <target-branch> CHANGELOG" -- CHANGELOG.md git push -u <push-remote> <work-branch> ``` Before creating a pull request, check for an existing open automated changelog PR targeting the same branch. Do not create a duplicate; update the existing PR when possible, or close it only after its replacement is ready. Create a ready-for-review pull request with: - **Repository:** `dotnet/vscode-csharp` - **Base:** `<target-branch>` - **Title:** `[automated] Update <target-branch> CHANGELOG` - **Body:** Briefly summarize the retained user-facing changes. - **Files:** Only `CHANGELOG.md` Use the GitHub CLI and a body file: ```shell gh pr create \ --repo dotnet/vscode-csharp \ --base <target-branch> \ --title "[automated] Update <target-branch> CHANGELOG" \ --body-file <pr-body-file> ``` When pushing from a fork, pass `--head <fork-owner>:<work-branch>`. Do not use `--draft`; the changelog pull request should be ready for review.
Ver en GitHub