Contributing¶
Thank you for your interest in contributing to lonpy!
Development Setup¶
- Clone the repository:
- Install with development dependencies:
- Install pre-commit hooks:
Development Workflow¶
Running Tests¶
With coverage:
Code Quality¶
Run all pre-commit hooks:
Individual tools:
Building Documentation¶
Preview locally:
Build static site:
Code Style¶
- Follow PEP 8 conventions
- Use type hints for all public functions
- Write docstrings in Google style
- Keep functions focused and small
Pull Request Process¶
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and linting
- Commit with a clear message
- Push to your fork
- Open a Pull Request
Commit Messages¶
Use clear, descriptive commit messages:
feat: add support for custom perturbation functions
fix: correct edge weight calculation in CMLON
docs: update visualization examples
test: add tests for edge cases in sampling
Reporting Issues¶
When reporting bugs, please include:
- Python version
- lonpy version
- Minimal reproducible example
- Expected vs actual behavior
- Full error traceback
Feature Requests¶
Feature requests are welcome! Please:
- Check existing issues first
- Describe the use case
- Explain why it would be useful
Questions¶
For questions about using lonpy:
- Check the documentation
- Search existing issues
- Open a new issue with the "question" label