All code submitted to this project must meet the following standards:
- Understand what you submit. Every contributor must have fully read and understood the code they author or propose. Submitting generated, copied, or adapted code without comprehending its behavior is not acceptable.
- Solve real problems. Contributions must be grounded in real-world use cases that the author has encountered directly. Hypothetical features, speculative abstractions, and "just in case" additions without a concrete, demonstrable need will not be accepted.
- Discuss before you build. Before opening a pull request for new features, significant changes, or non-trivial refactors, start a GitHub Discussion or open an issue with a feature request or RFC. This gives maintainers and the community a chance to provide feedback on the approach before time is invested in implementation. Bug fixes and small improvements may skip this step.
- Fix root causes, not symptoms. Do not suppress warnings, comment out failing tests, or add workarounds to bypass CI. Investigate and resolve the underlying issue.
- Keep it minimal. Only change what is necessary. Do not refactor surrounding code, add unused abstractions, or introduce features beyond the scope of your contribution.
- Test what you change. All contributions must pass the existing test suite. New behavior should include appropriate tests. Contributions that break existing tests without justification will not be accepted.
- Follow project conventions. This project has established coding standards (see
CONTRIBUTING.md). Contributions should follow the existing patterns for error handling, naming, documentation, and module structure.
We as members, contributors, and maintainers pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
Examples of behavior that contributes to a positive environment:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community and the project
Examples of unacceptable behavior:
- Harassment, intimidation, or discriminatory language
- Trolling, insulting or derogatory comments, and personal attacks
- Publishing others' private information without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right to remove, edit, or reject comments, commits, code, issues, and other contributions that do not align with this Code of Conduct, and to temporarily or permanently ban any contributor for behaviors they deem inappropriate, threatening, or harmful.
This Code of Conduct is adapted from the Contributor Covenant, version 2.1.