Contributing
Welcome! We're happy to have you here. Thank you in advance for your contribution to protarrow.
The repo ships a justfile with the common
development commands. Run just --list to see them all.
Development environment set up
just setup
This runs uv sync --all-groups, regenerates the proto-derived python files,
and installs the git pre-commit hooks (via prek).
If you only need to regenerate the proto-derived python files, use:
just proto
Testing
This library relies on property based testing. Tests convert randomly generated data from protobuf to arrow and back, making sure the end result is the same as the input.
The tests take a long time to run, so just test runs them in parallel:
just test
Extra pytest arguments are forwarded:
just test -k test_my_thing
To get coverage:
just coverage
Linting
just lint
New Release
Create new releases in github and autogenerate the change log there.
Testing the documentation
just docs-serve
To produce a static build:
just docs-build
Updating dependencies
just update
This upgrades the uv.lock, recompiles docs/requirements.txt, and runs
prek autoupdate.
Resources
The repo set up is inspired by this guide