Information for developers
There is a
Makefile for all the following tasks (and more). Type
make to print the available targets.
Install from source
To install from source run:
python3 setup.py install
Install the requirements
To install the requirements run:
pip3 install -r requirements.txt
To generate a requirements file (usually requirements.txt), that you commit with your project, run:
pip3 freeze > requirements.txt
Please note that testing requires launching the complete DSP API stack which is based on docker images. Therefore, we recommend installing the docker desktop client.
To run the complete test suite:
When contributing to the project please make sure you use the same code style rules as we do. We use
autopep8 and mypy. The configuration is defined
pyproject.toml in the root directory of the project.
[tool.autopep8] max_line_length = 180 experimental = true [tool.mypy] ignore_missing_imports = true follow_imports = "silent" show_column_numbers = true strict = true
You can use the configuration with
autopep8 --global-config pyproject.toml --in-place $FilePath$
mypy --config-file pyproject.toml
If you are using PyCharm we recommend installing autopep8 as external tool. You can then use it with right-click on the
External Tools >
autopep8 to reformat files in-place. mypy is available as
For formatting Markdown files (*.md) we use the default styling configuration provided by PyCharm.
Publishing is automated with GitHub Actions and should not be done manually. Please follow the
Pull Request Guidelines. If done
correctly, when merging a pull request into
release-please action will create or update a pull request for
a release. This pull request will follow semantic versioning and update the change log. Once all desired features are
merged, the release can be executed by merging this release pull request into
main. This will trigger actions that
create a release on GitHub, on PyPI and the docs.
Please ensure you have only one pull request per feature.
Publishing is automated with GitHub Actions and should not be done manually. If you still need to do it, follow the steps below.
Generate the distribution package. Make sure you have the latest versions of
python3 -m pip install --upgrade pip setuptools wheel python3 setup.py sdist bdist_wheel
You can install the package locally from the dist:
python3 -m pip ./dist/some_name.whl
Upload package works also with
make dist make upload
For local development:
python3 setup.py develop
Contributing to the documentation
The documentation is a collection of markdown files in the
After updates of the files, build and check the result with the following command:
The documentation is published on https://docs.dasch.swiss/latest/DSP-TOOLS. During the centralized release process of all components of the DSP software stack, the docs of dsp-tools get built from the main branch to https://docs.dasch.swiss.