This guide is intended to help you get started with developing guppyft.
If you find any errors or omissions in this document, please open an issue!
Note
By submitting a contribution to this project, you certify that you have the right to submit it and agree that your contribution is licensed under the Apache License, Version 2.0, under the same terms as the rest of the project.
Contributions to guppyft are welcomed! Please open an issue or pull request if you have any questions or suggestions.
PRs should be made against the main branch, and should pass all CI checks before being merged. This includes using the conventional commits format in the PR title.
To set up the development environment, you will need:
uv: https://docs.astral.sh/uv/getting-started/installation/just>=1.46.0: https://just.systems/man/en/installation.html (version 1.46.0 or above)rust: https://www.rust-lang.org/tools/installcargo-nextest: https://nexte.st/docs/installation/pre-built-binaries/
Once installed, you can install all Python dependencies and enable the pre-commit hooks by running:
just setupTo see a list of all available commands, run:
justThe Python code in this repository is formatted using ruff and the Rust code using rustfmt to ensure a consistent style. Most IDEs will provide automatic formatting on save, but you can also run the formatter manually with:
just formatWe also use various linters to catch common mistakes and enforce best practices. To run these, use:
just checkTo quickly fix some common issues, run:
just fixThis may not be able to fix all issues, and some manual inspection will be required to address any outstanding errors.
To quickly compile and run all the tests, you can use:
just testTo run only the Rust or Python tests, use:
just test-rust
just test-python