Just to make sure nothing is forgotten when releasing a new version:
- check that requirements.txt is still up-to-date
- install pip-tools in a venv
- run $venv/bin/pip-compile -o requirements.txt requirements.in
- check that everything works with the new requirements.txt, in particular the virtual machine image
- run checkers on the code (see tools/checkers.txt)
- cppcheck to find potential problems (see tools/wavepacket.cppcheck for the configuration file)
- update suppressions for cppcheck
- clang static analyzer
- clang address and UndefinedBehavior sanitizer (see tools/checkers.txt)
- check the code coverage; apart from certain dirty edges (LoggingObserver), the coverage should be around 100%
- run gcc, clang through with extensive errors
- update AUTHORS, Readme
- update the Wiki on any demo changes (new animations etc.)
- check version number in code, template and documentation
- check that the documentation compiles without severe warnings or errors
- check that compilation works with different compilers and for C++-14 and 17 => use test_all.sh script under tools/
- check that compiltion works with the current Vagrantfile
- check that wp-build script works
- check the binary test output against last version's reference
- tag the release
- build Windows Python package
- check: Which Python version to use, update Readme_PythonPackage.md if required
- build the package according to instructions
- test it
- build and upload packages (.zip, .tbz, Readme file)
- upload and link the new docs
- upload demos and link the new ones
- update the wiki (release page, feature page, front page wiki, demo wiki?)
- announce
- mailing list
- researchgate with extremely primitive markdown
- blog