<< All versions
Skill v1.0.0
Trusted Publisher100/100microsoft/directxtk12/release
──Details
PublishedJune 16, 2026 at 09:16 AM
Content Hashsha256:c91d54c8d93963d8...
Git SHA
──Files
Files (1 file, 4.6 KB)
SKILL.md4.6 KBactive
SKILL.md · 72 lines · 4.6 KB
version: "1.0.0" name: release description: Guide for performing the DirectX Tool Kit for DirectX 12 release process. Use this skill when asked to help with releasing a new version, publishing packages, or updating ports.
Release Process
Prerequisites
- All changes merged into the
mainbranch with all tests passing. - GPG signing configured for your GitHub account (for verified tags).
- Access to the MSCodeHub mirror repository and Azure DevOps pipelines.
- Local repository:
- VCPKG at
d:\vcpkg(synced withmainbranch) - PATs will be needed for scripts that access GitHub and ADO.
<!-- markdownlint-disable MD029 -->
Steps
Phase 1: Prepare the Release
- Git pull the local repository to ensure it is up to date with the
mainbranch. - Run the PowerShell script
build\preparerelease.ps1which will generate a topic branch for the release, update the version number inCMakeLists.txt, theREADME.mdfile, the release notes in the nuspec files, and create a stub in theCHANGELOG.mdfile for the new release. - Edit the
CHANGELOG.mdfile to update it with a summary of changes. - Submit the topic branch for review and merge into
mainonce approved. Allow the GitHub Actions workflows and the Azure DevOps pipelines to complete successfully before proceeding.
Phase 2: Tag and Create GitHub Release
- Run the PowerShell script
build\completerelease.ps1which will set a tag on the project repo and the test repo, and create a release on GitHub with the release notes fromCHANGELOG.md. Ensure you have set up GPG signing for your GitHub account so that the tags will be verified. - Git pull the local repository to ensure it is up to date with the
mainbranch. Be sure to include--tags.
Phase 3: MSCodeHub and Signed Binaries
- Push the
mainbranch to the MSCodeHub mirror repository. Be sure to include--tags. - Create a PR on MSCodeHub from the
mainbranch to thereleasebranch. - Merge the PR on MSCodeHub to update the release branch, which will trigger the Azure DevOps pipeline to build the NuGet packages.
- Edit the GitHub release and upload the signed binaries from the matching DirectXTK release to the release assets (
xwbtool.exe,xwbtool_arm64.exe, andMakeSpriteFont.exe).
Phase 4: Source Archive Signing
- Download the GitHub source .zip archive from the release. Unzip and compare to the local repo to ensure it matches — keep in mind there may be some CR/LF differences.
- Run minisign on the .zip to generate a signature file, and upload the signature file to the release assets.
Phase 5: NuGet Validation and Publishing
- Validate the NuGet packages with <https://github.com/walbourn/directxtk-tutorials> by pushing the NuGet packages to a local Packages Source folder, and refreshing the NuGet packages from that folder. Then build using BuildAllSolutions.targets.
- Run the PowerShell script
build\promotenuget.ps1 -Version <version> -Releaseto promote the version to the Release view on the project-scoped ADO feed. The-Versionparameter is required and should match the NuGet package version (e.g.,2026.6.2.1). - Run the MSCodeHub pipeline to publish the NuGet packages to nuget.org. The pipeline will automatically push the most recent package promoted to the Release view to nuget.org.
Phase 6: VCPKG Port Update
- Git pull a local repository of VCPKG to
d:\vcpkgin sync with themainbranch of the VCPKG repository. - Run the PowerShell script
build\updatevcpkg.ps1to update the DirectXTK12 port in VCPKG with the new release version. This will edit the files inports\directxtk12. - Test the VCPKG port using the script at
assets/vcpkgdxtk12.cmd(in this skill folder). Copy it tod:\vcpkgand run from there after bootstrapping VCPKG. - Run
.\vcpkg x-add-version directxtk12to update the VCPKG versioning history. - Submit a PR to the VCPKG repository to update the DirectXTK12 port back to the main GitHub repo. The PR will be reviewed and merged by the VCPKG maintainers.
Phase 7: Finalize
When fully completed, be sure to update the GitHub release with links to the matching NuGet packages, the VCPKG port, and the winget manifests for the tools.
Key Scripts
| Script | Purpose | |
|---|---|---|
build\preparerelease.ps1 | Creates topic branch, updates version numbers and changelog stub | |
build\completerelease.ps1 | Sets tags, creates GitHub release from changelog | |
build\promotenuget.ps1 | Promotes NuGet package to Release view on ADO feed | |
assets\vcpkgdxtk12.cmd | Tests VCPKG port across all triplets and features | |
build\updatevcpkg.ps1 | Updates DirectXTK12 VCPKG port files |