8. Getting Involved

This project is hosted in github. To provide feedback about bugs and errors or questions and requests for enhancements, use github’s Issue-tracker.

8.1. Development procedure

For submitting code, use UTF-8 everywhere, unix-eol(LF) and set git --config core.autocrlf = input.

The typical development procedure is like this:

  1. Install and arm a pre-commit hook with black to auto-format you python-code.

  2. Modify the sources in small, isolated and well-defined changes, i.e. adding a single feature, or fixing a specific bug.

  3. Add test-cases “proving” your code.

  4. Rerun all test-cases to ensure that you didn’t break anything, and check their coverage remain above the limit set in setup.cfg.

  5. If you made a rather important modification, update also the Changes file and/or other documents (i.e. README.rst). To see the rendered results of the documents, issue the following commands and read the result html at build/sphinx/html/index.html:

    python setup.py build_sphinx                  # Builds html docs
    python setup.py build_sphinx -b doctest       # Checks if python-code embeded in comments runs ok.
    
  6. If there are no problems, commit your changes with a descriptive message.

  7. Repeat this cycle for other bugs/enhancements.

  8. When you are finished, push the changes upstream to github and make a merge_request. You can check whether your merge-request indeed passed the tests by checking its build-status Integration-build status on the integration-server’s site (TravisCI).

    Hint

    Skim through the small IPython developer’s documentantion on the matter: The perfect pull request

8.2. Development team

  • Author:
    • Kostis Anagnostopoulos
  • Contributing Authors:
    • Heinz Steven (test-data, validation and review)
    • Georgios Fontaras (simulation, physics & engineering support)
    • Alessandro Marotta (policy support)
    • Jelica Pavlovic (policy support)
    • Eckhard Schlichte (discussions & advice)

8.3. Discussion