| * Release checklist |
| |
| - Check that the current virtualenv matches the current coverage branch. |
| - Version number in coverage/version.py |
| version_info = (4, 0, 2, "alpha", 1) |
| version_info = (4, 0, 2, "beta", 1) |
| version_info = (4, 0, 2, "candidate", 1) |
| version_info = (4, 0, 2, "final", 0) |
| - Python version number in classifiers in setup.py |
| - Copyright date in NOTICE.txt |
| - Update specific Python versions in appveyor.yml ("PYTHON_VERSION") |
| - Update CHANGES.rst, including release date. |
| - don't forget the jump target |
| - Update README.rst |
| - "New in x.y:" |
| - Python versions supported |
| - Update docs |
| - Python versions in doc/index.rst |
| - Version of latest stable release in doc/index.rst |
| - Version, release, release_date and copyright date in doc/conf.py |
| - Look for CHANGEME comments |
| - Don't forget the man page: doc/python-coverage.1.txt |
| - Check that the docs build correctly: |
| $ tox -e doc |
| - Generate new sample_html to get the latest, incl footer version number: |
| $ make clean |
| $ pip install -e . |
| $ cd ~/cog/trunk |
| $ rm -rf htmlcov |
| $ coverage run --branch --source=cogapp -m pytest -k CogTestsInMemory; coverage combine; coverage html |
| - IF PRE-RELEASE: |
| $ rm -f ~/coverage/trunk/doc/sample_html_beta/*.* |
| $ cp -r htmlcov/ ~/coverage/trunk/doc/sample_html_beta/ |
| - IF NOT PRE-RELEASE: |
| $ rm -f ~/coverage/trunk/doc/sample_html/*.* |
| $ cp -r htmlcov/ ~/coverage/trunk/doc/sample_html/ |
| cd ~/coverage/trunk |
| - IF NOT PRE-RELEASE: |
| check in the new sample html |
| - Done with changes to source files, check them in. |
| $ git push |
| - Build and publish docs: |
| - IF PRE-RELEASE: |
| $ make publishbeta |
| - ELSE: |
| $ make publish |
| - Kits: |
| - Start fresh: |
| $ make sterile |
| - Source kit and wheels: |
| $ make kit wheel |
| - Linux wheels: |
| $ make kit_linux |
| - Windows kits |
| - wait for over an hour for Appveyor to build kits. |
| - https://ci.appveyor.com/project/nedbat/coveragepy |
| $ make download_appveyor |
| - examine the dist directory, and remove anything that looks malformed. |
| - check the dist directory: |
| $ python -m twine check dist/* |
| - test the pypi upload: |
| $ make test_upload |
| - Update PyPI: |
| - upload kits: |
| $ make kit_upload |
| - Tag the tree |
| $ git tag coverage-3.0.1 |
| $ git push --tags |
| - Bump version: |
| - coverage/version.py |
| - increment version number |
| - IF NOT PRE-RELEASE: |
| - set to alpha-0 if just released. |
| - CHANGES.rst |
| - add an "Unreleased" section to the top. |
| $ git push |
| - Update Tidelift: |
| $ make tidelift_relnotes |
| - Update GitHub releases: |
| $ make github_releases |
| - Update readthedocs |
| - @ https://readthedocs.org/projects/coverage/versions/ |
| - find the latest tag in the inactive list, edit it, make it active. |
| - readthedocs won't find the tag until a commit is made on master. |
| - keep just the latest version of each x.y release, make the rest active but hidden. |
| - IF NOT PRE-RELEASE: |
| - update git "stable" branch to point to latest release |
| $ git branch -f stable <latest-tag> |
| $ git push --all |
| - @ https://readthedocs.org/projects/coverage/builds/ |
| - wait for the new tag build to finish successfully. |
| - @ https://readthedocs.org/dashboard/coverage/advanced/ |
| - change the default version to the new version |
| - Visit the fixed issues on GitHub and mention the version it was fixed in. |
| - "This is now released as part of [coverage 5.2](https://pypi.org/project/coverage/5.2)." |
| - make a milestone for the next release and move open issues into it. |
| - Announce: |
| - twitter @coveragepy |
| - nedbatchelder.com blog post? |
| - testing-in-python mailing list? |
| |
| |
| * Testing |
| |
| - Testing of Python code is handled by tox. |
| - Create and activate a virtualenv |
| - pip install -r requirements/dev.pip |
| - $ tox |
| |
| - Testing on Linux: |
| - $ make test_linux |
| |
| - For complete coverage testing: |
| |
| $ make metacov |
| |
| This will run coverage.py under its own measurement. You can do this in |
| different environments (Linux vs. Windows, for example), then copy the data |
| files (.metacov.*) to one machine for combination and reporting. To |
| combine and report: |
| |
| $ make metahtml |
| |
| - To run the Javascript tests: |
| |
| open tests/js/index.html in variety of browsers. |