ワンクリックで
prepare-release
// Prepares a Devolutions Gateway / Devolutions Agent release commit: bumps the version, generates and inserts the changelog, creates Jira tickets, generates the ToolBox changelog, and produces the final release commit.
// Prepares a Devolutions Gateway / Devolutions Agent release commit: bumps the version, generates and inserts the changelog, creates Jira tickets, generates the ToolBox changelog, and produces the final release commit.
Creates missing DGW Jira tickets from CHANGELOG.md entries and updates the file with the new ticket links.
Generates user-facing changelogs for Devolutions Gateway and Devolutions Agent in Devolutions ToolBox format from CHANGELOG.md.
Build the Devolutions Agent Windows MSI installer locally. Use when asked to build, compile, or rebuild the agent MSI.
Build the Devolutions Gateway Windows MSI installer locally. Use when asked to build, compile, or rebuild the gateway MSI.
| name | prepare-release |
| description | Prepares a Devolutions Gateway / Devolutions Agent release commit: bumps the version, generates and inserts the changelog, creates Jira tickets, generates the ToolBox changelog, and produces the final release commit. |
This skill walks through every step needed to produce the chore(release): prepare for <VERSION> commit for Devolutions Gateway and Devolutions Agent.
The user is responsible for creating and checking out the release branch beforehand. This skill does not create or switch branches.
Run the bundled script to resolve the version, passing the user's argument (if any):
# From the repo root:
pwsh <skill-dir>/scripts/resolve-version.ps1 -Arg "<ARGUMENT>"
The script prints the resolved version to stdout and exits with:
<printed version>. You can type an explicit version (e.g. 2026.2.0), or hotfix / cycle." Then re-run the script with their answer.Show the resolved version to the user and wait for confirmation before proceeding.
Run the PowerShell bump script from the repo root:
./tools/bump-version.ps1 -NewVersion <VERSION>
This updates VERSION, Cargo.toml, Cargo.lock, fuzz/Cargo.lock, the .csproj, .psd1, AppxManifest.xml, and the two Linux packaging changelogs (package/Linux/CHANGELOG.md, package/AgentLinux/CHANGELOG.md). No further changes to those files are needed.
If the script fails (e.g. the new version equals the current version), report the error and stop.
Run git-cliff to get the entries that haven't been released yet:
git cliff --unreleased
The output starts with ## [Unreleased] followed by section headers (### Features, ### Bug Fixes, etc.) and individual bullet entries.
Open CHANGELOG.md. The file begins with:
# Changelog
This document provides a list of notable changes introduced in ...
## <most recent version> (<date>)
...
Insert the new version block between the introductory paragraph and the first existing ## ... version line.
Replace the ## [Unreleased] header that git-cliff produced with the correct format:
## <VERSION> (<TODAY>)
where <TODAY> is today's date in YYYY-MM-DD format (e.g. ## 2026.2.0 (2026-04-01)).
Keep the rest of the git-cliff output (section headers and bullet entries) — but apply the cleanup steps in Step 5 before writing to the file.
Before writing the new block to CHANGELOG.md, apply these improvements:
git-cliff emits HTML comment sort-order prefixes in section titles (e.g. ### <!-- 1 -->Features). Strip them so headings render cleanly: ### Features.
If git-cliff produced a ### Please Sort section, it means those commits didn't follow the conventional-commits format. For each such entry:
git show <commit-hash> to inspect the diff.If you cannot confidently classify a "Please Sort" entry after reading the diff, keep it in a ### Please Sort section and flag it to the user at the end.
Scan all entry titles for obvious spelling errors (typos in common words, wrong capitalisation of proper nouns like "Gateway", "CredSSP", "RDP", etc.) and correct them.
If a commit title is vague (e.g. "fix issue", "update code", "misc changes"), run git show <commit-hash> and rewrite the entry title to accurately describe what changed — keep it concise and factual, matching the style of other entries.
After cleanup, if there are any remaining issues you aren't confident about, briefly list them for the user after writing the file (don't block on them — just inform).
After inserting and cleaning up the entries, check whether any of them explicitly change Linux packaging. Look for entries that:
For each such entry, add a plain-English bullet to the relevant packaging changelog(s):
package/Linux/CHANGELOG.md — for changes affecting the Gateway Linux packagepackage/AgentLinux/CHANGELOG.md — for changes affecting the Agent Linux packageThe bump-version.ps1 script already prepended a ## VERSION (DATE)\n\n- No changes. section. Replace - No changes. with the actual bullets, or leave it as-is if there are genuinely no packaging-related changes.
Before touching Jira, show the user the new version block that was written to CHANGELOG.md and ask them to review it:
"Here's the changelog for . Please review it — you can edit
CHANGELOG.mddirectly now if anything needs adjusting. Type go when you're ready to continue."
Wait for the user to type "go" (case-insensitive) before proceeding. If they send corrections or ask for specific changes, apply them to CHANGELOG.md first, then wait for "go" again.
Run the /changelog-to-jira skill.
This reads the freshly-updated CHANGELOG.md, creates any missing DGW-* Jira tickets, links cross-project tickets, and updates CHANGELOG.md with the new ticket links in one go. Let that skill drive the interaction; come back here when it is finished.
Run the /toolbox-changelog skill (no version argument needed — it defaults to the most recent version block, which is the one we just inserted).
Let that skill run to completion and present its output to the user.
Once both sub-skills are done and the user is happy, stage all modified files and create the commit:
git add -A
git commit -m "chore(release): prepare for <VERSION>"
| File | How it changes |
|---|---|
VERSION | Bumped by bump-version.ps1 |
Cargo.toml, Cargo.lock, fuzz/Cargo.lock | Version bumped |
dotnet/DesktopAgent/DesktopAgent.csproj | Version bumped |
powershell/DevolutionsGateway/DevolutionsGateway.psd1 | Version bumped |
crates/devolutions-pedm-shell-ext/AppxManifest.xml | Version bumped |
package/Linux/CHANGELOG.md | New section prepended by bump-version.ps1 |
package/AgentLinux/CHANGELOG.md | New section prepended by bump-version.ps1 |
CHANGELOG.md | New version block inserted; Jira ticket links added |