🎉 First off, thanks for taking the time to contribute to metatrain! 🎉
If you want to contribute but feel a bit lost, do not hesitate to contact us and ask your questions! We will happily mentor you through your first contributions.
The first and best way to contribute to metatrain is to use it and advertise it to other potential users. Other than that, you can help with:
- documentation: correcting typos, making various documentation clearer;
- bug fixes and improvements to existing code;
- adding new architectures
- and many more ...
All these contributions are very welcome. We accept contributions via Github pull request. If you want to work on the code and pick something easy to get started, have a look at the good first issues.
Bug and feature requests should be reported as Github issues. For bugs, you should provide information so that we can reproduce it: what did you try? What did you expect? What happened instead? Please provide any useful code snippet or input file with your bug report.
If you want to add a new feature to metatrain, please create an issue so that we can discuss it, and you have more chances to see your changes incorporated.
In this small tutorial, you should replace <angle brackets> as needed. If anything is unclear, please ask for clarifications! There are no dumb questions.
To help with developing start by installing the development dependencies:
pip install tox
Then this package itself
git clone https://github.com/lab-cosmo/metatrain
cd metatrain
pip install -e .
This install the package in development mode, making it importable globally and allowing you to edit the code and directly use the updated version. To see a list of all supported tox environments please use
tox list
The testsuite is implemented using Python's unittest framework and should be set-up and run in an isolated virtual environment with tox. All tests can be run with
tox # all tests
If you wish to test only specific functionalities, for example:
tox -e lint # code style
tox -e tests # unit tests of the main library
tox -e examples # test the examples
You can also use tox -e format
to use tox to do actual formatting instead of just
testing it. Also, you may want to setup your editor to automatically apply the black code formatter when saving your files, there
are plugins to do this with all major editors.
If you want to test a specific archicture you can also do it. For example
tox -e soap-bpnn-tests
Will run the unit and regression tests for the :ref:`SOAP-BPNN <architecture-soap-bpnn>`
model. Note that architecture tests are not run by default if you just type tox
.
The documentation is written in reStructuredText (rst) and uses sphinx documentation generator. In order to modify the documentation, first create a local version on your machine as described above. Then, build the documentation with
tox -e docs
You can then visualize the local documentation with your favorite browser using the following command (or open the :file:`docs/build/html/index.html` file manually).
# on linux, depending on what package you have installed:
xdg-open docs/build/html/index.html
firefox docs/build/html/index.html
# on macOS:
open docs/build/html/index.html
If you want to contribute a new model pleas read the pages on :ref:`architecture-life-cycle` and :ref:`adding-new-architecture`.