Contributing to Raresim
July 17, 2025 ยท View on GitHub
Thank you for your interest in contributing to Raresim! We welcome contributions from the community to help improve this project.
Code of Conduct
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.
How to Contribute
Reporting Issues
- Check if the issue has already been reported in the issue tracker
- If not, create a new issue with a clear title and description
- Include steps to reproduce the issue, expected behavior, and actual behavior
- Specify the version of Raresim and Python you're using
Feature Requests
- Open an issue with the "enhancement" label
- Describe the feature and its benefits
- Include any relevant use cases or examples
Pull Requests
- Fork the repository and create a new branch for your feature/fix
- Ensure your code follows the project's style guide
- Add tests for new functionality
- Update documentation as needed
- Run tests and ensure they pass
- Submit a pull request with a clear description of the changes
Development Setup
- Fork and clone the repository
- Set up a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate - Install development dependencies:
pip install -r requirements-dev.txt - Install pre-commit hooks:
pre-commit install
Code Style
- Follow PEP 8 style guide
- Use type hints for all function signatures
- Keep lines under 88 characters (Black's default)
- Run
black .to format your code - Run
isort .to sort imports - Run
flake8to check for style issues
Testing
- Write tests for new functionality
- Run tests with
pytest - Ensure test coverage remains high
- Update tests when fixing bugs
Documentation
- Update documentation when adding new features or changing behavior
- Keep docstrings up to date
- Follow Google style for docstrings
Release Process
- Update version in
pyproject.toml - Update
CHANGELOG.md - Create a release tag
- Push changes to GitHub
- Publish to PyPI