# Contributing

When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the maintainers of this repository before making a change.

See [developing](../docs/developing.md) for environment setup and [AGENTS.md](../AGENTS.md) for
detailed coding standards.

## Pull Request Process

1. **Format and lint**: `uv run ruff format .` then `uv run ruff check . --fix --show-fixes`
2. **Type check**: `uv run mypy`
3. **Test**: `uv run pytest` — all tests must pass before submitting
4. **Document**: Update docs if your change affects the public interface
5. You may merge the Pull Request once you have the sign-off of one other developer. If you
   do not have permission to do that, you may request a reviewer to merge it for you.

## Decorum

- Participants will be tolerant of opposing views.
- Participants must ensure that their language and actions are free of personal
  attacks and disparaging personal remarks.
- When interpreting the words and actions of others, participants should always
  assume good intentions.
- Behaviour which can be reasonably considered harassment will not be tolerated.

Based on [Ruby's Community Conduct Guideline](https://www.ruby-lang.org/en/conduct/)
