Contributing Guidelines¶
Thank you for considering contributing to Commol! This document provides guidelines for contributing to the project.
How to Contribute¶
Reporting Bugs¶
Before creating a bug report:
- Check the issue tracker for existing reports
- Verify the bug exists in the latest version
Open the report from the template "Bug or small change" of
.github/ISSUE_TEMPLATE/ (Planning), and include:
- Clear title and description
- Steps to reproduce the issue
- Expected vs actual behavior
- Environment details (OS, Python version, Commol version)
- Code samples or test cases that demonstrate the problem
Suggesting Features¶
Feature suggestions are welcome! A feature becomes work as a proposal, an issue from the template "Proposal" (Planning). Please:
- Check if the feature has already been requested
- Provide a clear use case and rationale
- Describe the desired API or interface
- Consider implementation complexity vs benefit
Pull Requests¶
- Keep PRs focused: One feature/fix per PR
- Write tests: All new code should have tests
- Update docs (mandatory): Every change ships with its documentation. Follow the documentation definition of done
- Follow conventions: Use the project's code style
- Be descriptive: Write clear commit messages and PR descriptions
- Link the issue: The description says
Closes #Nfor the issue it finishes
Development Guidelines¶
The rules for code, comments, documentation and commits are in one place: Conventions. In short:
| Area | Rule |
|---|---|
| Python | Ruff (line length 88), type hints on every signature and never Any, NumPy docstrings on every public item |
| Rust | cargo fmt, no Clippy warnings, rustdoc on every public item |
| Tests | pytest for Python, laid out as in Tests; #[cfg(test)] modules and tests/ for Rust; test both success and error cases |
| Documentation | Mandatory with every change: the definition of done |
| Commits | type(scope): description, one short phrase, no body; see Commits |
Run the checks of Quick commands before you open a pull request.
The pre-commit hooks run most of them on every commit; see Pre-commit Hooks.
Code Review Process¶
For Contributors¶
- Respond to feedback promptly and professionally
- Make requested changes or discuss alternatives
- Keep the PR updated with the target branch
- Test locally before requesting re-review
For Reviewers¶
- Be constructive and respectful
- Explain reasoning for requested changes
- Acknowledge good work when you see it
- Test the changes when possible
Release Process¶
See Release Process for details on versioning and releases.
Getting Help¶
- Documentation: Check the docs
- Questions, bugs and ideas: Open a GitHub issue
Recognition¶
Contributors will be recognized in:
- The project's AUTHORS file
- Release notes for significant contributions
- GitHub's contributor graph
Thank you for contributing to Commol! 🎉