Contributions to project “Sailor” are warmly welcomed. This page gives you detailed information on steps to take when you want to:
Report a bug¶
short self-contained example or code snippet how to reproduce the bug
description of the current behaviour and what is wrong with it
description of the desired behavior, depicting how the code is expected to work
Create a feature request¶
Contributing to the code base¶
This section will give you the minimum requirements to starting development with project “Sailor”.
You have cloned the Github project. Every instruction assumes that you are currently in the project folder on your development machine.
Ideally you have created a dedicated python environment for development with “Sailor”. Please check the classifiers in
setup.py for the currently supported python versions and use the most recent eligible version.
Install the dependencies by running:
pip install -r requirements.txt
Install the “Sailor” sources
pip install -e .
This section describes how we support additonal use cases that may occur during development.
Install tools required for everything related to Sailor development by running:
pip install -r .ci/requirements_dev.txt
Find the current settings and/or possible instructions to run linting/testing tools in
requirements.txt lists the concrete dependencies that our code is meant to be tested for. This file should never be modified manually, only through
pip-compile (see below).
requirements.in lists abstract dependencies. If you would like to introduce a new package as dependency to this project:
please add it to requirements.in and run
pip-compileto update the requirements.txt
Add the resulting changes to your next pull request.
pip-compile is part of package pip-tools (can be installed via pip).
Building the package¶
We are using a PEP517 and PEP518 compliant build tooling.
To create distribution files simply run:
python -m build -ws
Contributing to the documentation¶
You will need to install Sphinx and dependencies that we use. If you have installed all dev tools already, you can skip this step.
pip install -r .ci/docs/requirements_docs.txt
Go to the
docs directory and run:
The HTML is built into the
docs/_build directory. You can view the docs by simply opening index.html with your browser.
If you just ran
make html for the first time, it might be that the documentation is not rendered properly (specifically the TOC for the API documentation on the left).
In this case please run once:
touch apidoc.rst make html SPHINXOPTS="-a"
Further builds should only require
Adding or removing API doc pages¶
This step is only required when new modules/packages have been added or removed. If you want to update the apidoc:
(only if any packages/modules have been removed): delete the corresponding .rst files
commit the changes