bash
This page contains a list of things that you should check before issuing a new valjean
release. In the future, some or all of the things below may (should!) be automated.
- Choose the version number of the next release. Use Semantic Versioning.
- Create a new branch off the development branch. If you are releasing version
{x.y.z}
, call the branchreleng-v{x.y.z}
. Commit all the following steps on this branch. - Revise this TODO list, if necessary!
- Run the code
linters <linting>
and fix all the warnings. Run all the
unit tests <unit-tests>
, including the slow ones. Make sure they all pass. Use parallelism:$ pytest -m slow -n 4 # for 4 tests in parallel
Push the
-n
option and overload the test machine a bit (e.g. use-n 6
if you have 4 cores). If the tests start failing because they run too slowly, they are probably quite close to failing the health checks/deadlines in sequential mode anyway, and they may do so on another machine. Fix them so that they run faster.Also, run the command above a few times, in case some tests fail erratically.
Running pytest also runs doctests. Make sure they all pass.
Build archives <distributing-code>
for the code and the documentation- Test
package installation <package-installation>
, with and without optional dependencies (pip
,conda
and documentation). Check the install/setup/tests/extras requirements: are they up to date? - Build the HTML documentation
in nitpicky mode <nitpicky-mode>
. Fix all the warnings, except the intentional ones. Check external documentation links <linkcheck>
with thelinkcheck
builder. Fix the broken ones.- Check the
TODO list <todolist>
and update it. Can anything be removed? - Update the
changelog <changelog>
. - Commit and make a pull request.
Once the pull request is accepted, tag the new version:
$ git tag vx.y.z # for appropriate values of x, y and z
Remember to push the tag to the shared repository.
Create a source tarball and deploy it on the local network <distributing-code>
. This requires reinstalling the package and rebuilding the documentation.- Remember to merge any release changes back into the development branch.
- Congratulations, you have made a new
valjean
release!