Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Contributing to MDAnalysis.analysis
DRAFT (2015-12-08) — orbeckst
MDAnalysis is open source and welcomes contributions from the community. In fact, one of the strengths of MDAnalysis is its openness to contributors from a wide range of scientific areas, which leads to it being useful across different disciplines within a coherent framework and user interface. This is particularly reflected in the
MDAnalysis.analysis sub-package, which contains a number of unique solutions to analysis problems such as polymer physics, water dynamics or lipid membrane physics.
In order to maintain a uniform high standard across the whole MDAnalysis library, we will introduce basic standards for code in
MDAnalysis.analysis. We will work with contributors to achieve these standards and we will work on applying these standards to existing code.
Standards for code in
- New module must have a maintainer (i.e. someone who is willing to fix bugs and review pull requests)
- The maintainer's name, email and github username must be contained in the code and in the docs.
- The date of addition must be documented (through
.. versionadded:: 1.0reST tags and
:year: 2016at the top of the docs).
- The maintainer has to updated contact details (through a PR or issue).
- The maintainer has to find a successor if they cannot maintain code anymore. The successor is then added to the docs as above.
- Code must be fully documented.
- Include all relevant academic citations.
- Follow the Style Guide for doc strings.
- Code must follow the Style Guide.
- The module must have Unit Tests:
- tests key functionality
- comes with necessary data files
- coverage ≥85% (as measured by coveralls)
How should imports be handled?
- Can they be imported at top level or should they be inside functions/methods?
- Do they need to be guarded with try/except and error messages printed or is
How to deal with modules that are not installed by default, such as
scipy(at the moment not a dependency)
- color brewer
brewer2mpl(or now palettable)