release
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.
- License 许可
- MIT
- 最近更新
- 2026-11-10
- Stars
- ★ 1.8k
- Forks
- 463
01 前言 Front Matter
- 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.
02 资源文件 5
03 SKILL.md 正文
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)
- VCPKG at
- 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 |
04 同仓库更多 Skills
directxtk12-usage
Guide for integrating DirectX Tool Kit for DirectX 12 into new projects and understanding the library's API surface. Use this skill when asked about how to use DirectXTK12, set up a new project, or get an overview of available classes and functionality.
directxtk12-tutorial
Walk through the DirectX Tool Kit for DirectX 12 Getting Started tutorial step by step. Use this skill when asked to follow the tutorial, set up a new DirectX 12 project, or learn how to use DirectX Tool Kit for DX12 from scratch.