We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Adding/Proposing new features
We use github to host code, to track issues and feature requests, as well as accept pull requests.
- Fork the repo and create your branch from
master
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
I can imagine that some questions don't fit an issue. Therefore there is also a chat on gitter.
In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.
Report bugs using Github's issues
We use GitHub issues to track public bugs. Report a bug by opening a new issue. Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
We test the code formatting in the CI pipelines. If you don't want these to fail, you need to format:
- Rust code with
$ cargo fmt
- Python code with black (version 21.6b0) and isort (version 5.9.2). Run both from the
py-polars
directory with$ black . && isort .
We use linters to enforce code quality. This will be checked in CI.
For Python, type hints are enforced using mypy. This will be checked in CI.
If you want to contribute to the Python code, you also have to setup a Rust installation to be able to test your changes. You have to follow these steps:
- install rust nightly via rustup
- run
$ rustup override set nightly
from the root of the repo. - from ./py-polars run
$ pip3 install -r build.requirements.txt
- from ./py-polars run
$ ./tasks.sh build-run-tests
The last step installs a (slow) development build in your current environment and runs pytest.
By contributing, you agree that your contributions will be licensed under its MIT License.