Maintaining the Package¶
This document contains information for the software developers and maintainers. Issues can be posted at `https://github.com/TopSBM/topsbm/issues`_.
Travis CI¶
When a commit is made to any branch of the repository, or a pull request is made, Travis CI pulls in the changes and runs the tests. It will give a green tick if the tests run successfully.
Anyone listed in GitHub as a repository owner can administrate Travis too.
Building the Documentation¶
You can build the documentation on your own machine by installing sphinx and
nbsphinx. Then, in the doc/ directory, run make html.
Recompiling the documentation will re-run examples in Jupyter notebooks only if all cells’ output has been cleared. Otherwise, the documentation will show the output already in the notebook.
Note that the ReadTheDocs service currently refuses to re-run the example notebook, as it takes longer than that service allows.
ReadTheDocs¶
ReadTheDocs recompiles the documentation when any commit is made to the
master branch, and publishes it to `https://topsbm.readthedocs.io`_.
?Anyone listed in GitHub as a repository owner can administrate ReadTheDocs too.
Releasing to PyPI¶
When you are ready to release a new version of the software, you should first make sure that you are authorised to maintain the PyPI package (it lists maintainers on that page).
Then follow these steps:
- Make sure the version is correct in the
__version__variable in [topsbm/__init__.py](https://github.com/TopSBM/topsbm/blob/master/topsbm/__init__.py). For releases, remove suffixes likedev0. Commit that change. - Tag the commit with the version number, with a command such as
git tag v0.2. - Push the tags to github.
git push --tags
4. Make sure setuptools and twine are installed. pip install setuptools twine
4. Remove any files from previous releases in the dist directory: rm dist/*.tar.gz
5. Run python setup.py sdist to create new entries in dist/
6. Ensure your PyPI credentials are stored in ~/.pypirc.
7. Run twine upload dist/*.tar.gz.
8. If you want, create a corresponding GitHub release