<< All versions
Skill v1.0.0
currentTrusted Publisher100/100microsoft/directxmath/release
──Details
PublishedJuly 27, 2026 at 07:56 PM
Content Hashsha256:ef3f3712690a73da...
Git SHA
──Files
Files (1 file, 4.3 KB)
SKILL.md4.3 KBactive
SKILL.md · 74 lines · 4.3 KB
version: "1.0.0" name: Release Process description: Guide for performing the DirectXMath 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 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 package.
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
- Download the NuGet package from the ADO pipeline build, and review it with a local project or using NuGet Package Explorer.
- Upload the nupkg to nuget.org via the website.
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 DirectXMath port in VCPKG with the new release version. This will edit the files inports\directxmath. - Test the VCPKG port using the script at
assets/vcpkgdxmath.cmd(in this skill folder). Copy it tod:\vcpkgand run from there after bootstrapping VCPKG. - Run
.\vcpkg x-add-version directxmathto update the VCPKG versioning history. - Submit a PR to the VCPKG GitHub repository to update the DirectXMath port. The PR will be reviewed and merged by the VCPKG maintainers.
Phase 7: Windows SDK Update
- For the DirectXMath release to be included in the next Windows SDK, prepare a PR for the MSCodeHub project from the
mainbranch to thems_sdk_releasebranch. When the PR is complete, the Azure DevOps pipeline will automatically build vpack and submit a PR for further review.
Phase 8: Finalize
- When fully completed, be sure to update the GitHub release with links to the matching NuGet packages and the VCPKG port.
- Contact the Visual C++ compiler team and have them update
src/qa/suites/common/TestAssets.xmlto use the release's commit ids for DirectXMath and the Test Suite to be included in their test coverage.
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\updatevcpkg.ps1 | Updates DirectXMath VCPKG port files | |
assets\vcpkgdxmath.cmd | Tests VCPKG port across all triplets and features |