We welcome contributions from the community! This document outlines how you can contribute to the pybmc project.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/your-username/pybmc.git cd pybmc - Set up the development environment:
poetry install
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
- Make your changes and ensure tests pass:
pytest
- Commit your changes with a descriptive message:
git commit -m "Add new feature for orthogonalization" - Push your branch to your fork:
git push origin feature/your-feature-name
- Open a pull request against the main repository
- Follow PEP 8 style guidelines
- Use type hints for all function signatures
- Write docstrings for all public classes and functions using Google style
- Keep functions small and focused (under 50 lines when possible)
- Write unit tests for new features using pytest
- Update documentation in the
docs/directory - Add examples for new features in usage.md
- Update API reference in api_reference.md when adding new public interfaces
- Write tests for new features in the
tests/directory - Ensure test coverage remains above 90%
- Run tests locally before submitting a PR:
pytest --cov=pybmc
When reporting issues, please include:
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Environment details (OS, Python version, etc)
- All pull requests require at least one maintainer approval
- Maintainers will review for:
- Code quality and style
- Test coverage
- Documentation updates
- Backward compatibility
- Be prepared to make revisions based on feedback
By contributing to pybmc, you agree that your contributions will be licensed under the GPL V3 License.