Contributing
We welcome contributions to gleplot! This document provides guidelines for contributing to the project.
Getting Started
Fork the repository on GitHub
Clone your fork locally:
git clone https://github.com/yourusername/gleplot.git cd gleplot
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
Install in development mode with dependencies:
pip install -e ".[dev]"
Create a new branch for your work:
git checkout -b feature/your-feature-name
Development Workflow
Running Tests
Run the test suite:
pytest
With coverage:
pytest --cov=gleplot
Code Style
We use black for code formatting and flake8 for linting.
Format your code:
black src/ tests/
Check for linting issues:
flake8 src/ tests/
Type Checking
We use mypy for static type checking:
mypy src/
Building Documentation
Build the documentation locally:
cd docs
make html
The built HTML will be in docs/build/html/.
Submitting Changes
Make sure all tests pass:
pytest
Ensure code is formatted and passes linting:
black src/ tests/ flake8 src/ tests/ mypy src/
Update documentation if needed
Commit your changes:
git commit -m "Clear, descriptive commit message"
Push to your fork:
git push origin feature/your-feature-name
Create a Pull Request with a clear description of your changes
Code Guidelines
Follow PEP 8 style guide
Write docstrings for all public functions and classes
Add tests for new features
Update documentation for changes in API
Keep commits atomic and focused
Reporting Issues
When reporting bugs, please include:
Your Python version
Your operating system
Steps to reproduce the issue
Expected behavior
Actual behavior
Any error messages or tracebacks
Feature Requests
Feature requests are welcome! Please describe:
The use case and problem it solves
Example usage
Any relevant references or prior art
Code of Conduct
This project is committed to providing a welcoming and inclusive environment. Please be respectful and constructive in all interactions.
Questions?
If you have questions about contributing, please open an issue or contact the maintainers.
Thank you for contributing to gleplot!