blob: 8c858271bd0b9edf33ac4a937152dbb5f93c69bf [file] [log] [blame]
Alex Stapletonc5fffd32014-03-18 15:29:00 +00001Doing a release
Alex Gaynor89063f62014-01-06 15:52:38 -08002===============
3
Paul Kehrer27bb5fe2014-07-04 11:28:08 -05004Doing a release of ``cryptography`` requires a few steps.
5
6Verifying OpenSSL version
7-------------------------
8
9The release process uses a static build for Windows wheels. Check that the
10Windows Jenkins builders are on the latest version of OpenSSL before performing
11the release.
Alex Gaynor89063f62014-01-06 15:52:38 -080012
13Bumping the version number
14--------------------------
15
Paul Kehrer27bb5fe2014-07-04 11:28:08 -050016The next step in doing a release is bumping the version number in the
Alex Gaynor89063f62014-01-06 15:52:38 -080017software.
18
Alex Gaynorce0b5a32014-01-06 16:53:31 -080019* Update the version number in ``cryptography/__about__.py``.
Alex Stapletona39a3192014-03-14 20:03:12 +000020* Update the version number in ``vectors/cryptography_vectors/__about__.py``.
Alex Gaynor3f230402014-01-08 09:21:57 -080021* Set the release date in the :doc:`/changelog`.
Alex Gaynor89063f62014-01-06 15:52:38 -080022* Do a commit indicating this.
23* Send a pull request with this.
24* Wait for it to be merged.
25
26Performing the release
27----------------------
28
Alex Stapleton63b3de22014-02-08 09:43:16 +000029The commit that merged the version number bump is now the official release
Alex Gaynorb3794db2014-01-07 09:25:54 -080030commit for this release. You will need to have ``gpg`` installed and a ``gpg``
31key in order to do a release. Once this has happened:
Alex Gaynor89063f62014-01-06 15:52:38 -080032
33* Run ``invoke release {version}``.
34
Alex Gaynorfea893c2014-01-07 11:06:51 -080035The release should now be available on PyPI and a tag should be available in
36the repository. You should verify that ``pip install cryptography`` works
Alex Gaynor41c14d52014-01-07 11:19:08 -080037correctly:
38
39.. code-block:: pycon
40
41 >>> import cryptography
42 >>> cryptography.__version__
43 '...'
Alex Stapletona39a3192014-03-14 20:03:12 +000044 >>> import cryptography_vectors
45 >>> cryptography_vectors.__version__
46 '...'
Alex Gaynor41c14d52014-01-07 11:19:08 -080047
48Verify that this is the version you just released.
Paul Kehrerff26c742014-04-02 19:11:53 -050049
50Post-release tasks
51------------------
52
Paul Kehrer3bcd3e02014-04-02 21:00:35 -050053* Update the version number to the next major (e.g. ``0.5.dev1``) in
Paul Kehrerff26c742014-04-02 19:11:53 -050054 ``cryptography/__about__.py`` and
55 ``vectors/cryptography_vectors/__about__.py``.
Paul Kehrer3bcd3e02014-04-02 21:00:35 -050056* Add new :doc:`/changelog` entry with next version and note that it is under
57 active development
Paul Kehrerff26c742014-04-02 19:11:53 -050058* Send a pull request with these items
Paul Kehrer32547412014-04-02 21:31:41 -050059* Check for any outstanding code undergoing a deprecation cycle by looking in
60 ``cryptography.utils`` for ``DeprecatedIn**`` definitions. If any exist open
61 a ticket to increment them for the next release.
Ayrxeced8b72014-05-04 16:07:39 +080062* Send an email to the `mailing list`_ announcing the release.
63
64.. _`mailing list`: https://mail.python.org/mailman/listinfo/cryptography-dev