This document describes how Noda Time is released. It is intended to be used as
a checklist by the person doing a release. It only covers doing a
new major/minor release; patch releases are generally just a matter
of editing Build.Directory.props, tagging the right branch and
creating a release in GitHub. The examples given are for releasing 3.1.0.
When everybody's happy, there are no issues outstanding for the milestone, and all the tests pass.
Search the issue tracker for open issues with the right milestone (e.g.
is:open is:issue milestone:1.4.0).
Directory.Build.props in the root directory; this contains the version number3.1.x from main. (This is automatically a "protected" branch.)3.1.0 against the new branchIn the future, this will hopefully go back to pushing to NuGet, but we haven't sorted out code signing yet.
Instead, for now, fetch the tag locally and build/push following the same steps that are in build/tzdbupdate/update-*.sh.
(These change a little over time, so aren't duplicated here. We may extract them as a script at some point...)
Make a single change in the main branch in the nodatime repo:
Directory.Build.props in the root directory to set PackageValidationBaselineVersion equal to VersionMake changes in the main branch in the nodatime.org repo:
We keep the docfx metadata and snippets for each minor version in the history branch of the nodatime.org repo.
This used to be maintained via a buildhistory.sh script which would fetch all sources and rebuild from scratch.
As tools have aged, this has become infeasible - but we can easily add new versions.
build directory of the nodatime.org reporm -rf ./history./buildapidocs.shfor x in tmp/metadata/*/unstable; do cp -r $x history/$(basename $(realpath $x/..))/3.1.x; donecd historygit add --allgit commit -m "Add history for 3.1.x"git pushunstable directory in NodaTime.Web/Markdown to 3.1.x3.1.x/index.json to specify the name 3.1.xunstable directory and copy index.json from 3.1.xunstable/index.json to have a name of unstable and a
parent of 3.1.xtzdbupdate/update-3.0.sh to update-3.1.sh and edit it accordinglytzdbupdate/update-all.sh to call the new scriptOnce everything has been merged, trigger the GitHub action "Build documentation" in the nodatime.org repo and check the results.