@@ -197,6 +197,25 @@ I already have a couple of ideas for future versions:
197197* making the SMTP outbox as convenient to use as ``django.core.mail.outbox ``
198198* add your own here!
199199
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+
200219----
201220
202221.. [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:
216235.. _a piece of software : http://pypi.python.org/pypi/python-amazon-product-api/
217236.. _Mailsink recipe : http://code.activestate.com/recipes/440690/
218237.. _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