aboutsummaryrefslogtreecommitdiffstats
path: root/docs/doing-a-release.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doing-a-release.rst')
-rw-r--r--docs/doing-a-release.rst36
1 files changed, 31 insertions, 5 deletions
diff --git a/docs/doing-a-release.rst b/docs/doing-a-release.rst
index 283b98b6..043d52d2 100644
--- a/docs/doing-a-release.rst
+++ b/docs/doing-a-release.rst
@@ -3,12 +3,33 @@ Doing a release
Doing a release of ``cryptography`` requires a few steps.
+Security Releases
+-----------------
+
+In addition to the other steps described below, for a release which fixes a
+security vulnerability, you should also include the following steps:
+
+* Request a `CVE from MITRE`_. Once you have received the CVE, it should be
+ included in the :doc:`changelog`. Ideally you should request the CVE before
+ starting the release process so that the CVE is available at the time of the
+ release.
+* Ensure that the :doc:`changelog` entry credits whoever reported the issue.
+* The release should be announced on the `oss-security`_ mailing list, in
+ addition to the regular announcement lists.
+
Verifying OpenSSL version
-------------------------
-The release process uses a static build for Windows wheels. Check that the
-Windows Jenkins builders have the latest version of OpenSSL installed
-before performing the release.
+The release process creates wheels bundling OpenSSL for Windows, macOS, and
+Linux. Check that the Windows, macOS, and Linux builders (both
+``pyca/cryptography-manylinux1`` and ``pyca/cryptography-manylinux2010``) have
+the latest OpenSSL. If anything is out of date follow the instructions for
+upgrading OpenSSL.
+
+Upgrading OpenSSL
+-----------------
+
+Use the `upgrading OpenSSL issue template`_.
Bumping the version number
--------------------------
@@ -30,7 +51,7 @@ The commit that merged the version number bump is now the official release
commit for this release. You will need to have ``gpg`` installed and a ``gpg``
key in order to do a release. Once this has happened:
-* Run ``invoke release {version}``.
+* Run ``python release.py {version}``.
The release should now be available on PyPI and a tag should be available in
the repository.
@@ -59,8 +80,9 @@ Post-release tasks
------------------
* Update the version number to the next major (e.g. ``0.5.dev1``) in
- ``cryptography/__about__.py`` and
+ ``src/cryptography/__about__.py`` and
``vectors/cryptography_vectors/__about__.py``.
+* Close the `milestone`_ for the previous release on GitHub.
* Add new :doc:`/changelog` entry with next version and note that it is under
active development
* Send a pull request with these items
@@ -70,5 +92,9 @@ Post-release tasks
* Send an email to the `mailing list`_ and `python-announce`_ announcing the
release.
+.. _`CVE from MITRE`: https://cveform.mitre.org/
+.. _`oss-security`: https://www.openwall.com/lists/oss-security/
+.. _`upgrading OpenSSL issue template`: https://github.com/pyca/cryptography/issues/new?template=openssl-release.md
+.. _`milestone`: https://github.com/pyca/cryptography/milestones
.. _`mailing list`: https://mail.python.org/mailman/listinfo/cryptography-dev
.. _`python-announce`: https://mail.python.org/mailman/listinfo/python-announce-list