How to Contribute

Follow the steps below to contribute to the project.

Basics git command for implementing a new feature:
  • Cloning the repository: git clone https://github.com/cta-observatory/cta-lstchain.git

  • Checking out a branch: git switch -c mybranch

  • Download the private test data using ./download_test_data.sh, ask one of the maintainers if you do not know the credentials.

  • Make the changes in <file>

  • Run the unit tests

  • Committing your changes: git add <file>, git commit

  • Submitting changes: git push -u origin mybranch

Unit tests

Perform tests locally with pytest before committing the changed file.

Running just pytest will not run the tests requiring the private test data, but as these are important, as these include for example all tests on observed LST data, run pytest -m 'private_data or not private_data', to exectute all tests.

Build the documentation locally

Install the required dependencies for building the documentation: pip install -e ".[docs]"

Compile the documentation from docs: make clean html.

To look at the documentation in your browser, this command is handy:

python -m http.server -d _build/html

Then visit the printed url.

Note

Automatic documentation deployment is actually doing: make html SPHINXOPTS="-W --keep-going -n --color -j auto"

Contribute to the documentation

The documentation might fall behind the code or analysis workflow, so if you find something that is not documented or not clear, please contribute to the documentation. Simply modify the corresponding .rst files in docs and open a pull-request with your changes.

Please do, someone will probably come after you and face the same issues you did.