Contributing Guide¶
Thank you for your interest in contributing to geoterminal! This document provides guidelines and instructions for contributing.
Development Setup¶
-
Fork and clone the repository:
git clone https://github.com/yourusername/geoterminal.git cd geoterminal
-
Create a virtual environment:
poetry install poetry shell
-
Install development dependencies:
pip install -e .
-
Install pre-commit hooks:
pre-commit install
Development Workflow¶
-
Create a new branch:
git checkout -b feature-name
-
Make your changes and write tests
-
Run tests:
pytest
-
Run pre-commit checks:
pre-commit run --all-files
-
Commit your changes:
git add . git commit -m "Description of changes"
-
Push to your fork and create a pull request
Code Style¶
We use:
- Black for code formatting
- isort for import sorting
- flake8 for linting
- mypy for type checking
Testing¶
- Write tests for new features
- Maintain or improve coverage
- Use pytest fixtures when appropriate
- Test both success and error cases
Documentation¶
- Update docstrings (Google style)
- Update relevant documentation files
- Include doctest examples where helpful
- Update CHANGELOG.md
Pull Request Process¶
- Update documentation
- Add tests for new features
- Update CHANGELOG.md
- Ensure CI checks pass
- Request review from maintainers
Code of Conduct¶
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Get Help¶
If you need help, you can:
- Open an issue with your question
- Join our community discussions
- Reach out to maintainers
Thank you for contributing to geoterminal!