Contributing to cloelib¶
Thank you for your interest in contributing to cloelib! We are committed to an open science approach.
Ways to Contribute¶
Check out open issues to see if development is already planned. We welcome community support on issues tagged with help wanted.
If you have suggestions or found a bug, open an issue and follow the provided templates. Tag @cloe-maintainers to notify them about a possible new contribution.
Contribution Workflow¶
Follow these steps to contribute:
1. Create a Feature Branch¶
Use descriptive branch names (e.g., feature/add-jax-support, fix/convergence-issue). Link your branch to the issue by including the issue number in the branch name or PR description, and/or leaving the branch in the associated issue in a comment.
2. Make Your Changes¶
We recommend to suggest a possible implementation in the issue description of the task and interact with the cloe-maintainers first. This will avoid unnecessary work not to be used.
- Write clear, modular code
- Add tests for new functionality
- Update documentation as needed
3. Commit Your Changes¶
Write concise, descriptive commit messages.
4. Push Your Branch¶
5. Open a Pull Request¶
Submit a pull request to the main repository. Please use the PR template and ensure you include:
- A clear description of your changes
- References to related issues
- Tests demonstrating the fix or feature
Our maintainers will review your contribution, and we'll work together to get it merged!
Code Standards¶
We maintain high code quality using automated tools via pre-commit:
- Linting: Ruff keeps code clean
- Formatting: Prettier and Black ensure consistency
- Type Safety: mypy catches type errors early
Our CI/CD pipeline also runs unit tests with pytest.
All checks must pass before merging. We recommend using draft PRs if you need to iterate.
Questions?¶
Got questions? Don't hesitate! Open an issue, join our discussion board, or ping @cloe-maintainers. We're here to help and love collaborating with our community.