Skip to content

Latest commit

 

History

History
60 lines (37 loc) · 2.05 KB

HOWTORELEASE.rst

File metadata and controls

60 lines (37 loc) · 2.05 KB

Release Procedure

Our current policy for releasing is to aim for a bugfix 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 in that platform.

  1. Create a branch release-X.Y.Z with the version for the release.

    • maintenance releases: from 4.6-maintenance;
    • patch releases: from the latest master;
    • minor releases: from the latest features; then merge with the latest master;

    Ensure your are in a clean work tree.

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

    $ tox -e release -- <VERSION>

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

  3. Open a PR for this branch targeting master (or 4.6-maintenance for maintenance releases).
  4. After all tests pass and the PR has been approved, publish to PyPI by pushing the tag:

    git tag <VERSION>
    git push git@github.com:pytest-dev/pytest.git <VERSION>

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

  5. Merge the PR.
  6. If this is a maintenance release, cherry-pick the CHANGELOG / announce files to the master branch:

    git fetch --all --prune
    git checkout origin/master -b cherry-pick-maintenance-release
    git cherry-pick --no-commit -m1 origin/4.6-maintenance
    git checkout origin/master -- changelog
    git commit  # no arguments
  7. 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.