The main forum for BayesPy development is GitHub. Bugs and other issues can be reported at Contributions to the code and documentation are welcome and should be given as pull requests at 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 Detailed instructions on development workflow can be read from NumPy guide, available at 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.

Making releases

  • Commit any current changes to git.
  • Start a release branch: git flow release start x.y.z
  • Edit version number in 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 release_pypi
  • Update the documentation web page: cd doc && make gh-pages
  • Publish in
  • Announcements to, and