Skip to content

Latest commit

 

History

History
58 lines (36 loc) · 2.11 KB

RELEASING.rst

File metadata and controls

58 lines (36 loc) · 2.11 KB

Release Procedure

Our current policy for releasing is to aim for a bug-fix release every few weeks and a minor release every 2-3 months. The idea is to get fixes and new features out instead of trying to cram a ton of features into a release and by consequence taking a lot of time to make a new one.

Important

pytest releases must be prepared on Linux because the docs and examples expect to be executed on that platform.

To release a version MAJOR.MINOR.PATCH, follow these steps:

  1. For major and minor releases, create a new branch MAJOR.MINOR.x from the latest master and push it to the pytest-dev/pytest repo.
  2. Create a branch release-MAJOR.MINOR.PATCH from the MAJOR.MINOR.x branch.

    Ensure your are updated and in a clean working tree.

  3. Using tox, generate docs, changelog, announcements:

    $ tox -e release -- MAJOR.MINOR.PATCH

    This will generate a commit with all the changes ready for pushing.

  4. Open a PR for the release-MAJOR.MINOR.PATCH branch targeting MAJOR.MINOR.x.
  5. After all tests pass and the PR has been approved, tag the release commit in the MAJOR.MINOR.x branch and push it. This will publish to PyPI:

    git tag MAJOR.MINOR.PATCH
    git push git@github.com:pytest-dev/pytest.git MAJOR.MINOR.PATCH

    Wait for the deploy to complete, then make sure it is available on PyPI.

  6. Merge the PR.
  7. Cherry-pick the CHANGELOG / announce files to the master branch:

    git fetch --all --prune
    git checkout origin/master -b cherry-pick-release
    git cherry-pick --no-commit -m1 origin/MAJOR.MINOR.x
    git checkout origin/master -- changelog
    git commit  # no arguments
  8. Send an email announcement with the contents from:

    doc/en/announce/release-<VERSION>.rst

    To the following mailing lists:

    And announce it on Twitter with the #pytest hashtag.