Skip to content

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