@@ -3,47 +3,59 @@ How to release pytest
3
3
4
4
.. important ::
5
5
6
- pytest releases must be prepared on **linux ** because the docs and examples expect
6
+ pytest releases must be prepared on **Linux ** because the docs and examples expect
7
7
to be executed in that platform.
8
8
9
9
#. Install development dependencies in a virtual environment with::
10
10
11
11
pip3 install -r tasks/requirements.txt
12
12
13
- #. Create a branch ``release-X.Y.Z `` with the version for the release. Make sure it is up to date
14
- with the latest ``master `` (for patch releases) and with the latest ``features `` merged with
15
- the latest ``master `` (for minor releases). Ensure your are in a clean work tree.
13
+ #. Create a branch ``release-X.Y.Z `` with the version for the release.
16
14
17
- #. Check and finalize `` CHANGELOG.rst `` (will be automated soon).
15
+ * ** patch releases **: from the latest `` master ``;
18
16
19
- #. Execute to automatically generate docs, announcements and upload a package to
17
+ * **minor releases **: from the latest ``features ``; then merge with the latest ``master ``;
18
+
19
+ Ensure your are in a clean work tree.
20
+
21
+ #. Generate docs, changelog, announcements and upload a package to
20
22
your ``devpi `` staging server::
21
23
22
24
invoke generate.pre_release <VERSION> <DEVPI USER> --password <DEVPI PASSWORD>
23
25
24
- If ``--password `` is not given, it is assumed the user is already logged in. If you don't have
25
- an account, please ask for one!
26
+ If ``--password `` is not given, it is assumed the user is already logged in ``devpi ``.
27
+ If you don't have an account, please ask for one.
28
+
29
+ #. Open a PR for this branch targeting ``master ``.
30
+
31
+ #. Test the package
26
32
27
- #. Run from multiple machines::
33
+ * ** Manual method **
28
34
29
- devpi use https://devpi.net/USER/dev
30
- devpi test pytest==VERSION
35
+ Run from multiple machines::
31
36
32
- Alternatively, you can use ` devpi-cloud-tester < https://github.com/nicoddemus/devpi-cloud-tester>`_ to test
33
- the package on AppVeyor and Travis (follow instructions on the ``README``).
37
+ devpi use https://devpi.net/USER/dev
38
+ devpi test pytest==VERSION
34
39
35
- #. Check that tests pass for relevant combinations with::
40
+ Check that tests pass for relevant combinations with::
36
41
37
42
devpi list pytest
38
43
39
- or look at failures with "devpi list -f pytest".
44
+ * ** CI servers **
40
45
41
- #. Feeling confident? Publish to PyPI::
46
+ Configure a repository as per-instructions on
47
+ devpi-cloud-test _ to test the package on Travis _ and AppVeyor _.
48
+ All test environments should pass.
49
+
50
+ #. Publish to PyPI::
42
51
43
52
invoke generate.publish_release <VERSION> <DEVPI USER> <PYPI_NAME>
44
53
45
54
where PYPI_NAME is the name of pypi.python.org as configured in your ``~/.pypirc``
46
55
file `for devpi <http://doc.devpi.net/latest/quickstart-releaseprocess.html?highlight=pypirc#devpi-push-releasing-to-an-external-index>`_.
47
56
48
-
49
57
#. After a minor/major release, merge ``features `` into ``master `` and push (or open a PR).
58
+
59
+ .. _devpi-cloud-test : https://github.com/obestwalter/devpi-cloud-test
60
+ .. _AppVeyor : https://www.appveyor.com/
61
+ .. _Travis : https://travis-ci.org
0 commit comments