Contributing to rustvello¶
Thank you for your interest in contributing! This guide covers how to set up your development environment and submit changes.
Prerequisites¶
Setup¶
git clone https://github.com/pynenc/rustvello.git
cd rustvello
make install
make install will:
Install Python dependencies via
uv sync --group devBuild the Python bindings via
maturin developInstall pre-commit hooks
Makefile Targets¶
Target |
Description |
|---|---|
|
Install all dependencies and pre-commit hooks |
|
Build Python bindings with maturin |
|
Run all lints and checks (Rust + Python) |
|
Run |
|
Run |
|
Run all tests (Rust + Python) |
|
Run Rust tests only |
|
Run Python tests with pytest |
|
Build all Rust crates |
|
Build Sphinx documentation |
|
Serve docs locally |
|
Clean all build artifacts |
Run make help to see all available targets.
Development Workflow¶
Create a feature branch from
mainMake your changes
Run
make checkandmake testCommit using Conventional Commits format
Push and open a pull request
Conventional Commits¶
All commits must follow the Conventional Commits format:
<type>(<scope>): <description>
Type |
Description |
|---|---|
|
A new feature |
|
A bug fix |
|
Documentation changes |
|
Formatting, no code change |
|
Code restructuring |
|
Performance improvement |
|
Adding or fixing tests |
|
Build system or dependency changes |
|
CI configuration changes |
|
Other maintenance tasks |
Pull Request Guidelines¶
PR title should follow conventional commit format
Include a clear description of the changes
Ensure all checks pass (
make check && make test)Reference any related issues
Project Architecture¶
See Architecture for an overview of the crate structure and how the components fit together.
License¶
By contributing, you agree that your contributions will be licensed under the MIT License.