Contributing to PyPopART¶
Thank you for your interest in contributing to PyPopART! This document provides guidelines for contributing to the project.
Ways to Contribute¶
- Report bugs and issues
- Suggest new features or enhancements
- Improve documentation
- Submit bug fixes
- Add new algorithms or features
- Write tests
Getting Started¶
Development Setup¶
- Fork the repository on GitHub
-
Clone your fork locally:
-
Create a virtual environment:
-
Install in development mode with all dependencies:
-
Install pre-commit hooks:
Making Changes¶
-
Create a new branch for your changes:
-
Make your changes and write tests
-
Run tests to ensure everything works:
-
Run linters and formatters:
-
Commit your changes with clear messages:
-
Push to your fork and submit a pull request
Code Style¶
- Follow PEP 8 style guidelines
- Use Black for code formatting
- Use Ruff for linting
- Add type hints where appropriate
- Write docstrings in NumPy style
Testing¶
- Write tests for all new features
- Ensure existing tests pass
- Aim for good test coverage
- Use pytest for testing
Documentation¶
- Update documentation for new features
- Add docstrings to all public functions and classes
- Include examples in docstrings
- Update the changelog
Pull Request Process¶
- Ensure all tests pass
- Update documentation as needed
- Add entry to CHANGELOG.md
- Submit pull request with clear description
- Address any review feedback
Reporting Issues¶
When reporting issues, please include:
- PyPopART version
- Python version
- Operating system
- Minimal example to reproduce the issue
- Expected vs. actual behavior
- Error messages and stack traces
Code of Conduct¶
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Help create a positive community
Questions?¶
If you have questions, feel free to:
- Open an issue on GitHub
- Start a discussion in GitHub Discussions
- Contact the maintainers
Thank you for contributing to PyPopART!