Use this checklist to track the things to check before a release.

1. Push a branch with all the code ready for release. Check that the
   the automated tests and build ran without error on all the OS/Python combos
   supported by the various CI (Appveyor and Github Actions).

2. Run these extra tests on Linux.
   You will need valgrind and gcovr installed first.


action                       python3
---------------------------------------
make test                           [ ]
./runtest.sh valgrind               [ ]
./runtest.sh mallocfaults           [ ]
./runtest.sh reallocfaults          [ ]
./runtest.sh pycallfaults           [ ]
./runtest.sh coverage               [ ]


Once you ran the coverage, copy and commit the coverage/ report files to etc/coverage


3. Merge and tag the release once everything is A-OK.

This will trigger the build of wheels and source archives.


4. Finally: 

- Collect the built wheels and sdist from the CI run for the tag run (artifact.zip)
- Extract the zip.
- Run a clamscan and a "twine check" on these.
- Publish on PyPI with "twine upload".
