Contributing#

How can you help?#

Contributions are most welcome and there are many ways you can help regardless of your fluency with software development:

  • First and foremost, do provide feedback on what you do with vpype and how you do it, either on the DrawingBots Discord server or by filling an issue. This knowledge is critically important to improve vpype.

  • Write an issue for any problem or friction point you encounter during the installation or use of vpype or for any feature you feel is missing.

  • Make the present documentation better by fixing typos and improve the quality of the text (English is not the main author’s native language). This issue maintains a list of possible improvements.

  • Write cookbook recipes for new workflows.

  • Improving the test coverage and contributing to CI/CD aspects is welcome — and a good way to become familiar with the code.

  • Improve existing features or contribute entirely new ones with a pull request. If you plan on creating new commands, consider making a plugin first — it will be easy to integrate it into vpype’s codebase later on if it makes sense.

Development guidelines:

  • Write tests for your code (this project uses pytest).

  • Use black for code formatting and isort for consistent imports.

Development environment#

vpype uses Poetry for packaging and dependency management and its installation is required to prepare the development environment. It can be installed either using an install script, or using pipx. Run this command to use the install script:

curl -sSL https://install.python-poetry.org | python3 -

Run this command for a pipx install:

pipx install poetry

See Poetry’s installation instructions for more information.

You can then download vpype, prepare a virtual environment and install all dependencies with a few commands:

git clone https://github.com/abey79/vpype
cd vpype
poetry install -E all --with docs

You can execute vpype (which installed in the project’s virtual environment managed by Poetry) with the poetry run command:

poetry run vpype --help

Alternatively, you can activate the virtual environment and then directly use vpype:

poetry shell
vpype --help

Running the tests#

You can run tests with the following command:

poetry run pytest