Developer Guide#

This is the developer documentation. The following sections will guide you through the process of setting up a development environment and running the tests.

Setup#

Contributions to Jolideco should happen through pull requests on GitHub. So if you have not done yet please fork the repository first. Then you can clone your fork to your local computer:

git clone https://github.com/your-github/jolideco

To start on a new feature or bug fix, create a new branch from the main branch using:

git checkout -b my-new-feature

Then you can start working on your changes. Once you are done, you can push your branch to your fork on GitHub and create a pull request. The pull request will be reviewed and if everything is fine, it will be merged into the main branch.

Development Environment#

For handling the development and test environments Jolideco uses the tool tox. You can start from any Python environment and install tox first for example using pip:

pip install tox

From there all the necessary dependencies will be installed automatically and be handled by tox.

For the development you can rely on one of the pre-defined test environments:

tox --devenv venv-jolideco-dev -e py310
source venv-jolieco-dev/bin/activate

This will create a new venv-jolideco-env environment, that you can activate using the source command. To leave the environment again use deactivate. The command requires that you have Python 3.10 installed on your system. In case you do not have it installed you could change the command to the corresponding Python version like:

tox --devenv venv-jolideco-dev -e py311

However it is recommended to use a rather new Python version for development.

Running Tests#

To run the unit test you can use the following tox command:

tox -e test

If you only want to run part of the test suite, you can also use pytest directly with:

pip install -e .[test]
pytest

Building Docs#

Building the documentation is no longer done using python setup.py build_docs. Instead you will need to run:

tox -e docs

You can also build the documentation with Sphinx directly using:

pip install -e .[docs]
cd docs
make html