If you think you've found a bug, or have an idea for a feature, let us know here.
If you think you can fix one of the bugs, or would like to submit a new feature, then let's get coding!
Once you've cloned the repository, fork it, and get your development environment
set up. We use poetry, nox, and pre-commit to
handle environments, testing, and linting. Between them, they make sure that all
checks run in isolated environments. If you don't have poetry
, please see the
installation instructions here. Once you have poetry, you can
get set up with:
poetry install
poetry run pre-commit install --install-hooks
Then, to run static checks, run:
pre-commit run -a
Pre-commit will automatically run black, mypy, and ruff. When you push a change, GitHub Actions will trigger a more robust suit using Nox, including security check and automated documentation building.
We use a GitHub Action for python-semantic-release to manage our version numbers. This automatically parses your commit messages to determine if a new release is necessary, and, if so, what kind (ie. major, minor, patch). So your commit message is important!
If you add new code, please add documentation and tests for it as well. We use napoleon numpy for our docstrings, and sphinx for automatic documentation. Our testing suite is pytest.
pyprql uses python-semantic-release to automate the release process.
To trigger a release, in the commit message add the terms fix:
, perf:
, or
feat:
.
The version number will get updated automatically there is no need to update
them (in pyproject.toml
and pyprql/__init__.py
) manually.