Contributing¶
This page gives some advices on how to contribute code to MPDAF. Astropy has a well-detailed documentation on contributing to an open-source project using Git, which is also mostly applicable to MPDAF, except for a few differences. MPDAF uses a Gitlab instance instead of Github.
Getting an account¶
The first pre-requisite is to have an account on the git-cral server. If you don’t have one yet, please send email to mpdaf-support@osulistes.univ-lyon1.fr.
Installation¶
You need to install the development version of MPDAF from the git repository, in your environment:
git clone https://git-cral.univ-lyon1.fr/MUSE/mpdaf.git
There are many options to install, but it is recommended to use a virtual environment (virtualenv, or Conda’s environments) to avoid conflicts with your regular install.
Then, you can install MPDAF. Using the development mode makes it easier to test changes, without having to reinstall after each change:
python setup.py develop
Git workflow¶
A classic Git development workflow is used, using branches and merge requests (the equivalent of Github’s Pull requests).
Make sure to start from an up-to-date master:
git checkout master
git pull
Then create a branch and work on it:
git checkout -b my-new-feature
# edit files ...
git commit
And push your branch to the server:
git push --set-upstream origin my-new-feature
You can now create a Merge request.
Unit tests¶
Unit tests are run automatically on the server, after each push to a branch, and the build status is shown on merge requests. It is of course strongly recommended to add a few tests to test the new feature you developed.
It is also a good idea to run the tests locally before pushing to the server, to find errors more quickly and avoid running too many builds on the server.
To run the tests, you need to install pytest:
pip install pytest
And run:
python setup.py test
It is also possible to run tests on multiple Python versions with tox:
pip install tox