-
Notifications
You must be signed in to change notification settings - Fork 278
Release procedure
David Tchepak edited this page Oct 6, 2017
·
35 revisions
- Move unreleased changes in CHANGELOG to new version heading.
- Ensure BreakingChanges.txt up to date and move unreleased breaking changes to new version heading.
- Ensure Acknowledgements up to date.
- Make final commit and tag this commit as "vx.y.z" (z changes on patches, y on new features or minor changes to behaviour, x for breaking API changes). The tag message should be "NSubstitute x.y.z".
- Build using:
./build.sh All configuration=Release. This will build to output/release. (This is for Git bash shell on Windows; otherwise try./build/build.bat) - Test nuget package on a project using a local repository.
- Push final commit and tags to main repo.
- Push release to nuget:
build\NuGet.exe push "bin/release/NSubstitute/NSubstitute.*.nupkg" -Source https://www.nuget.org/api/v2/package. (Make sure nuget.exe is up-to-date first!nuget update -self) - Publish website (built to output dir,
bin/Release/nsubstitute.github.com). - Announce (mailing list, twitter, and unleash carrier pigeons to spread the joyous news). Be sure to credit people who contributed to the release!
- ...
- Profit!
- Move unreleased changes in CHANGELOG to new version heading.
- Ensure BreakingChanges.txt up to date and move unreleased breaking changes to new version heading.
- Ensure Acknowledgements up to date.
- Make final commit and tag this commit as "vx.y.z" (z changes on patches, y on new features or minor changes to behaviour, x for breaking API changes). The tag message should be "NSubstitute x.y.z". For the rare occasions when a pre-release package is required, can use
(alpha|beta|rc)x.y.z. - Build using:
./build.sh All mode=Release targets=ALL. This will build to output/release. (This is for Git bash shell on Windows; otherwise trybuild.bat) - Test nuget package on a project using a local repository.
- Push final commit and tags to main repo.
- Push release to nuget:
ThirdParty\NuGet\NuGet.exe push (path to .nupkg) -Source https://www.nuget.org/api/v2/package. (Make sure nuget.exe is up-to-date first!nuget update -self) - Copy release ZIP from output to
Source/Docs/Downloads - Update source/docs/index.html to point to new ZIP file to download (NSubstitute-x.x.0.0.zip)
- Commit website changes and push to repo
- Re-build and publish website (built to output dir).
- Announce (mailing list, twitter, and unleash carrier pigeons to spread the joyous news). Be sure to credit people who contributed to the release!
- ...
- Profit!
Note: I had trouble with jekyll v0.11.2 on Windows & Ruby193 (maruku would give undefined method errors). I had to gem install jekyll --version '0.11.0', and then uninstall version 0.11.2 of jekyll using gem uninstall jekyll to get it to work. I also had to gem install liquid --version '2.2.2' and uninstall the later version of that, as per this StackOverflow answer.