@@ -197,6 +197,25 @@ I already have a couple of ideas for future versions:
197
197
* making the SMTP outbox as convenient to use as ``django.core.mail.outbox ``
198
198
* add your own here!
199
199
200
+ Preparing a release
201
+ -------------------
202
+
203
+ For package maintainers, here is how we release a new version:
204
+
205
+ #. Ensure that the ``CHANGES `` file is up to date with the latest changes.
206
+ #. Create a tag whose name is the `PEP 440 `_-compliant version number prefixed
207
+ by ``v ``, making sure to include at least three version number components
208
+ (e.g. ``v0.6.0 ``).
209
+ #. Make sure that all tests pass on the tagged version.
210
+ #. Push the tag to Github.
211
+ #. Make a fresh clone of the repository, and in the root directory of the new
212
+ clone, run ``pyproject-build `` (from the `build `_ package). This will create
213
+ source and wheel packages under ``dist/ ``.
214
+ #. Upload the source and wheel to PyPI using ``twine upload `` (see `twine `_).
215
+ #. Using the `new release form on Github `_, prepare notes for the new release
216
+ following the pattern of previous releases. The "Auto-generate release notes"
217
+ button will be useful in summarizing the changes since the last release.
218
+
200
219
----
201
220
202
221
.. [1 ] The idea for this project was born when I needed to check that `a piece
@@ -216,3 +235,7 @@ I already have a couple of ideas for future versions:
216
235
.. _a piece of software : http://pypi.python.org/pypi/python-amazon-product-api/
217
236
.. _Mailsink recipe : http://code.activestate.com/recipes/440690/
218
237
.. _Sebastien Martini : http://code.activestate.com/recipes/442473/
238
+ .. _PEP 440 : https://peps.python.org/pep-0440/
239
+ .. _build : https://pypa-build.readthedocs.io/en/latest/
240
+ .. _twine : https://twine.readthedocs.io/en/stable/
241
+ .. _new release form on Github : https://github.com/pytest-dev/pytest-localserver/releases/new
0 commit comments