- Make all changes for the release on
master
(except for the readme). - Have a
vX.Y.Z-readme
branch ready with the readme for the next version. - Prepare a branch in the docs repo with updated docs for the new version and verify the doc comments for the new version.
- Update the NuGet package release notes link to the URL where notes for this version will be. This
will be
https://github.com/WalkerCodeRanger/semver/releases/tag/vX.Y.Z
. - Merge the
vX.Y.Z-readme
branch intomaster
. - Create an annotated tag of the version number being published prefixed with "v". The tag description should match the tag name.
- Wait for the build of that tag to complete in Appveyor.
- Download the nupkg and snupkg files from Appveyor's assets tab.
- Upload those to NuGet.org. The readme should be populated from the package.
These steps only need to be done for a non-prerelease version.
- Create a release from the tag on GitHub.
- Write up the changes in that version.
- Attach the nupkg and snupkg files to the release in GitHub.
- In GitHub, mark the milestone and any included issues as done with the current date.
- Update
appveyor.yml
with the new version number so builds will be assigned proper versions. - Update the
PackageValidationBaselineVersion
in theSemver.csproj
to change the baseline package version to the newly released version. It may be necessary to update theCompatibilitySuppressions.xml
file after that. (see Detecting breaking changes between two versions of a NuGet package at packaging time for more info). Note that theCP0003
error about the version number should be higher occurs locally, but on the build server suppressing it causes the build to fail. - Update the
PublicAPI
files to reflect the newly published APIs.- The easy way to do this is clear out the shipped and unshipped API files except for the
#nullable enable
line, then rundotnet format analyzers --diagnostics=RS0016
- The easy way to do this is clear out the shipped and unshipped API files except for the
- Update the benchmark to reference the new version as the previous version.
- Create a new
vX.Y.Z-readme
branch for the next version.