@@ -81,6 +81,35 @@ To remove all additional markers and get a simple "release" version, use
81
81
For more information on how to use ``bump_version ``, run ``tox -e bump_version
82
82
-- -help ``.
83
83
84
+ Making a release
85
+ ----------------
86
+
87
+ Release automation is done via the ``publish.yml `` GitHub Actions workflow,
88
+ which is triggered whenever a new tag is pushed and whenever a new GitHub
89
+ release is made. When a new tag is pushed, the project is built and released to
90
+ `Test PyPI <https://test.pypi.org >`_, and when a GitHub release is made, the
91
+ project is built and released to `PyPI <https://pypi.org >`_.
92
+
93
+ To make a release:
94
+
95
+ 1. Tag the repository with the current version – you can use the
96
+ ``./tag_release.sh `` script in the repository root to source the version
97
+ automatically from the current ``VERSION `` file.
98
+ 2. Wait for the GitHub action to succeed, then check the results on
99
+ https://test.pypi.org/project/tzdata/ .
100
+ 3. If everything looks good, go into the GitHub repository's `"releases" tab
101
+ <https://github.com/python/tzdata/releases> `_ and click "Create a new
102
+ release"; type the name of the tag into the box, fill out the remainder of
103
+ the form, and click "Publish".
104
+ 4. Check that the release action has succeeded, then check that everything looks
105
+ OK on https://pypi.org/project/tzdata/ .
106
+
107
+ If there's a problem with the release, use ``tox -e bump -- --post `` to create
108
+ a post release, and if it's sufficiently serious, yank the broken version.
109
+
110
+ It is recommended to start with a release candidate first, since even Test PyPI
111
+ is immutable and each release burns a version number.
112
+
84
113
.. Links
85
114
.. |tox | replace :: ``tox ``
86
115
.. _tox : https://tox.readthedocs.io/en/latest/
0 commit comments