Contributing

The long-term aim of this project is to be designed, built and supported by (and for) the geochemistry community. In the present, the majority of the work involves incorporating geological knowledge and frameworks into a practically useful core set of tools which can be later be expanded. As such, requests for features and bug reports are particularly valuable contributions, in addition to code and expanding the documentation. All individuals contributing to the project are expected to follow the Code of Conduct, which outlines community expectations and responsibilities.

Also, be sure to add your name or GitHub username to the contributors list.

Note

This project is currently in beta, and as such there’s much work to be done.

Feature Requests

If you’re new to Python, and want to implement a specific process, plot or framework as part of pyrolite_meltsutil, you can submit a Feature Request. Perhaps also check the Issues Board first to see if someone else has suggested something similar (or if something is in development), and comment there.

Bug Reports

If you’ve tried to do something with pyrolite_meltsutil, but it didn’t work, and googling erro messages didn’t help (or, if the error messages are full of pyrolite_meltsutil.XX.xx), you can submit a Bug Report . Perhaps also check the Issues Board first to see if someone else is having the same issue, and comment there.

Contributing to Documentation

The documentation and examples for pyrolite_meltsutil are gradually being developed, and any contributions or corrections would be greatly appreciated. Currently the examples are patchy, and a ‘getting started’ guide would be a helpful addition. If you’d like to edit an existing page, the easiest way to get started is via the ‘Edit on GitHub’ links:

Header found on each documentation page highlighting the "Edit on GitHub" link.
These pages serve multiple purposes:
  • A human-readable reference of the source code (compiled from docstrings).

  • A set of simple examples to demonstrate use and utility.

  • A place for developing extended examples [1]

Contributing Code

Code contributions are always welcome, whether it be small modifications or entire features. As the project gains momentum, check the Issues Board for outstanding issues, features under development. If you’d like to contribute, but you’re not so experienced with Python, look for good first issue tags or email the maintainer for suggestions.

To contribute code, the place to start will be forking the source for pyrolite-meltsutil from GitHub. Once forked, clone a local copy and from the repository directory you can install a development (editable) copy via python setup.py develop. To incorporate suggested changes back to into the project, push your changes to your remote fork, and then submit a pull request onto pyrolite-meltsutil/develop .

Note

  • See Installation for directions for installing extra dependencies for development, and Development for information on development environments and tests.

  • pyrolite-meltsutil development roughly follows a gitflow workflow. pyrolite-meltsutil/master is only used for releases, and large separable features should be build on feature branches off develop.

  • Contributions introducing new functions, classes or entire features should also include appropriate tests where possible (see Writing Tests, below).

  • pyrolite-meltsutil uses Black for code formatting, and submissions which have passed through Black are appreciated, although not critical.

Writing Tests

There is currently a broad unit test suite for pyrolite-meltsutil, which guards against breaking changes and assures baseline functionality. pyrolite-meltsutil uses continuous integration via Travis, where the full suite of tests are run for each commit and pull request, and test coverage output to Coveralls.

Adding or expanding tests is a helpful way to ensure pyrolite-meltsutil does what is meant to, and does it reproducibly. The unit test suite one critical component of the package, and necessary to enable sufficient trust to use pyrolite-meltsutil for scientific purposes.