blob: fa4bc283db8bc0d5dc235bb433e1dcbf822dcd1e [file] [log] [blame] [view]
# Quick Start for Contributors
## Make and Makefile
We rely on `Makefile` to automate jobs, including setting up environments, testing and releasing.
First you need to have the `make` command available:
```shell
# ubuntu/wsl
sudo apt-get update
sudo apt-get -y install make
```
or
```shell
# windows powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Optional: Needed to run a remote script the first time
irm get.scoop.sh | iex
scoop install make
```
## Poetry
We have migrated from basic pip to [Poetry](https://python-poetry.org/) to manage dependencies and package our project.
Once you have `make` ready, run `make env`, this will automatically install the right Poetry release, and create
(plus manage) a `.venv` virtual environment for us based on the currently activated Python 3 version. Enjoy coding!
Note: Make sure you have `python3` aliased to `python` available on Windows computers instead of pointing to the Microsoft app store.
### Switching between Multiple Python Versions
Do not develop/test on Python < 3.8, since Poetry and some other functionalities we implement rely on Python 3.8+
If you would like to test on multiple Python versions, run the following to switch and recreate virtual environment:
#### Without Python Version Tools
```bash
poetry env use python3.x
poetry install
```
#### With Python Version Tools
```shell
pyenv shell 3.9.11
poetry env use $(pyenv which python)
poetry install
```
Or try: `virtualenvs.prefer-active-python`, which is an experimental poetry feature that can be set to `true` so that it will
automatically follow environment.
# Next
Refer to the [Plugin Development Guide](How-to-develop-plugin.md) to learn how to build a new plugin for a library.