-
Notifications
You must be signed in to change notification settings - Fork 166
Release procedure
Steps involved in issuing a new release of CNVkit.
Unit tests should be passing on TravisCI. Locally run the same unit tests tests and the shell pipeline (which is not on TravisCI):
cd test/
make test
make all
-
Do
git log <previous-version>...HEAD > changelog.txt
to list all commit messages since the last release. Brew a cup of tea and edit these for human consumption (as Markdown). The commit messages mention relevant issue and pull request numbers; keep these, and check those conversations for details if anything is unclear. Thank all contributors by GitHub username. -
Ensure the Sphinx documentation (
doc/
) includes all new changes. Usegit grep
to find all instances of specific commands/options/things. Update nearby documentation as needed. -
Ensure dependency versions are correct and consistent between
setup.py
,.travis.yml
, anddevtools/conda-recipe/meta.yaml
.
Commit.
Use the changelog as the commit message.
$ git tag <version> -aF <changelog.md>
Push, including tags.
$ git push --tags
$ python setup.py build sdist
$ twine upload dist/CNVkit-<version>.tar.gz
(Ensure twine is at least version 1.8.0.)
To the next point release, plus the development suffix: <version +1>.dev0
Commit and push.
Edit docker/Dockerfile
to specify the newly released stable version of CNVKit in the last RUN pip
step.
Build the updated image:
$ sudo docker build -t etal/cnvkit:<version> .
$ sudo docker build -t etal/cnvkit:latest .
Verify that it launches:
$ sudo docker run -it etal/cnvkit:latest
root@...:/# cnvkit.py version
<version>
Push to Docker Hub:
$ sudo docker push etal/cnvkit:<version>
$ sudo docker push etal/cnvkit:latest
Commit and push the code to GitHub.