Skip to content

Latest commit

 

History

History
69 lines (51 loc) · 2.54 KB

CONTRIBUTING.md

File metadata and controls

69 lines (51 loc) · 2.54 KB

Contributing

Issues

If you think you've found a bug, or have an idea for a feature, let us know here.

Developing

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.

Commits

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!

Documentation & testing

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.

Releasing

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.