First off, thanks for contributing! We appreciates you.
stac-utils/rustac is a Rust monorepo that provides most of the functionality of this Python package. It's pretty common that a bug in rustac-py is actually a bug in rustac. Knowing which repository to work in can be a little tricky, so don't hesitate to reach out and ask.
It can be a little tricky to ensure that your Python environment is always up-to-date while developing a Rust+Python project. We're still figuring out the best way, but for now, try this:
uv sync
python -m maturin_import_hook site install
This should make sure your pytest runs are picking up the latest changes to your Rust code.
We aim for comprehensive unit testing of this library. Please provide tests for any new features, or to demonstrate bugs. Draft pull requests with a failing test to demonstrate a bug are much appreciated.
Please open a pull request with your changes -- make sure to include unit tests. Please follow standard git commit formatting (subject line 50 characters max, wrap the body at 72 characters).
We use conventional commits. Your commits do not have to but if you'd like to format them this way, we would be grateful.
If you can, use git rebase -i
to create a clean, well-formatted history before opening your pull request.
If you need to make changes after opening your pull request (e.g. to fix CI breakages) we will be grateful if you squash those fixes into their relevant commits.
Thanks so much!
-Pete Gadomski