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).

  • 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:

$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -

(See Poetry’s documentation for alternative means of installation.)

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

$ git clone https://github.com/abey79/vpype.git
$ cd vpype
$ poetry install

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