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 branch
Make 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.sh
for x in tmp/metadata/*/unstable; do cp -r $x history/$(basename $(realpath $x/..))/3.1.x; done
cd history
git add --all
git push
unstable
directory in NodaTime.Web/Markdown to 3.1.x
3.1.x/index.json
to specify the name 3.1.x
unstable
directory and copy index.json from 3.1.x
unstable/index.json
to have a name of unstable
and a
parent of 3.1.x
build/docfx/docfx-web.json
to add the new versiontzdbupdate/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.