The main forum for BayesPy development is GitHub. Bugs and other issues can be reported at https://github.com/bayespy/bayespy/issues. Contributions to the code and documentation are welcome and should be given as pull requests at https://github.com/bayespy/bayespy/pulls. In order to create pull requests, it is recommended to fork the git repository, make local changes and submit these changes as a pull request. The style guide for writing docstrings follows the style guide of NumPy, available at https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt. Detailed instructions on development workflow can be read from NumPy guide, available at http://docs.scipy.org/doc/numpy/dev/gitwash/development_workflow.html. BayesPy uses the following acronyms to start the commit message:
- API: an (incompatible) API change
- BLD: change related to building numpy
- BUG: bug fix
- DEMO: modification in demo code
- DEP: deprecate something, or remove a deprecated object
- DEV: development tool or utility
- DOC: documentation
- ENH: enhancement
- MAINT: maintenance commit (refactoring, typos, etc.)
- REV: revert an earlier commit
- STY: style fix (whitespace, PEP8)
- TST: addition or modification of tests
- REL: related to releasing
Since version 0.3.7, we have started following Vincent Driessen’s branching model in how git is used.
- Commit any current changes to git.
- Start a release branch:
git flow release start x.y.z
- Edit version number in setup.py and commit.
- Add changes to CHANGELOG.rst and commit.
- Publish the release branch:
git flow release publish x.y.z
- Finish the release:
git flow release finish x.y.z. Write the following commit message:
REL: Version x.y.z.
- Push to GitHub:
git push && git push --tags
- Download the release tarball from GitHub and use that in the phases below. This avoids having local garbage in the release.
- Publish in PyPI:
python setup.py release_pypi
- Update the documentation web page:
cd doc && make gh-pages
- Publish in mloss.org.
- Announcements to email@example.com, firstname.lastname@example.org and email@example.com.