Skip to content

DeveloperGuide

Oliver Beckstein edited this page Apr 27, 2019 · 10 revisions

Overview over the development process. (The developer guide is an evolving document. Please modify as necessary.)

Development

Development happens on the master branch. The master branch is supposed to be installable and produce correct results at any time.

Contributing

Fork the repository and create a PR or, if you have write access to the repo, create a branch in the repo. Name the branch issue-XXX-SUMMARY where you typically reference an issue in the issue tracker and SUMMARY is a very short description, e.g., issue-10-dx.

Discuss all issues related to a PR in the comments to the PR.

Release management

  • We use semantic versioning MAJOR.MINOR.PATCH (i.e., briefly, major revision changes whenever the API changes in backwards-incompatible manner, MINOR changes for new features, PATCH changes for fixes that correct functionality; as long as MAJOR == 0, we can break the API with increasing MINOR.)

  • Releases are cut from the master branch and tagged with release-MAJOR.MINOR.PATCH (note: the release tag determines the tag because we use versioneer, which obtains the release number from the git tag; the git tag must contain the prefix release-). We do from the master branch:

    1. Check CHANGELOG.md and finalize.
    2. git tag release-<major>.<minor>.<patch>
    3. git push --tags
    4. python setup.py sdist bdist_wheel
    5. twine upload dist/*
  • Note: the tags need to be pushed to GitHub with git push --tags. (You can add text to the releases on GitHub.)

  • Packages are published from the tagged (pip package, conda package, tar balls on GitHub, zenodo).

    • pip: see above with twine
    • source tarballs on GitHub: create a release from the tag (just add some text)
    • zenodo tarballs and DOIs are automatically minted
    • conda package is automatically created when a new PyPi release is published. Go to conda-forge/mdanalysisdata-feedstock and look for a PR by a bot. Review the PR and merge if all ok.
  • Docs are published on https://www.mdanalysis.org/MDAnalysisData (only the latest develop) and are automatically uploaded via travis.

Clone this wiki locally