Contributing
Pull requests are welcome. Please make sure to update tests and documentation as appropriate.
For major changes, please open an issue first to discuss what you would like to change.
Toolchain
steinbock is developed using Visual Studio Code. The Python development toolchain includes black, flake8, isort, mypy and pre-commit (see setuptools devel
target). For building the steinbock Docker image, BuildKit needs to be enabled for Docker. Workflows for continuous integration/continuous delivery (CI/CD) are configured using GitHub Actions.
Development
For convenience, the following Docker Compose services are available:
steinbock
for running steinbocksteinbock-debug
for debugging steinbock using debugpypytest
for running unit tests with pytestpytest-debug
for debugging unit tests with pytest and debugpy
Matching Visual Studio Code launch configurations are provided for debugging:
Docker: Python General
for debugging steinbock using Docker directlyPython: Remote Attach (steinbock-debug)
for debugging steinbock using Docker ComposePython: Remote Attach (pytest-debug)
for debugging unit tests with pytest using Docker Compose
To debug specific steinbock commands using e.g. the Python: Remote Attach (steinbock-debug)
launch configuration, adapt the respective command
in the docker-compose.yml file (e.g. add --version
after -m steinbock
). Launch configurations may have to be invoked multiple times in order for them to work.
To debug unit tests on the host system (i.e., not within the Docker container), run pytest tests
in the project root folder or use the "Testing" tab in Visual Studio Code.