Contributing¶
Contributions are welcome: bug reports, fixes, documentation, and features.
Before you start¶
- For a bug, open an issue with a minimal reproduction.
- For a feature, open an issue first so the design can be discussed. Behavior that the TOON specification already defines is the easiest to accept.
Workflow¶
- Fork the repository and create a branch.
- Set up the environment as described in Development.
- Make the change, with tests.
- Run the checks below.
- Open a pull request describing what changed and why.
Checks¶
cargo fmt
cargo clippy --all-targets -- -D warnings
uv run maturin develop --uv
uv run --no-sync pytest
uv run --no-sync pre-commit run -a
Expectations for a pull request¶
- New behavior or a fixed bug comes with a test.
- User-visible changes update
docs/andCHANGELOG.md. - Public functions keep
src/lib.rsdocstrings andtoons.pyistubs in sync. - Commit messages follow Conventional Commits,
for example
fix(deserialization): accept blank lines in non-strict mode.
Agents working in this repository should read AGENTS.md, which records the build commands and the encoder and decoder invariants.
Questions¶
Open a GitHub issue or start a discussion. Existing issues and pull requests are a good reference for the level of detail expected.