First off, thank you for considering contributing to GeoToolKit! It's people like you that make GeoToolKit such a great tool.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps which reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include screenshots if possible
- Include your environment details:
- OS version
- Python version
- GeoToolKit version
- GDAL version
- Other relevant package versions
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- A clear and descriptive title
- A detailed description of the proposed functionality
- Explain why this enhancement would be useful
- List any additional dependencies that might be required
- Include mockups or examples if applicable
- Fork the repo and create your branch from
main
- If you've added code that should be tested, add tests
- If you've changed APIs, update the documentation
- Ensure the test suite passes
- Make sure your code follows the existing style
- Issue that pull request!
- Clone the repository:
git clone https://github.com/raythurman2386/geotoolkit.git
cd geotoolkit
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
.\venv\Scripts\activate # Windows
- Install development dependencies:
pip install -e ".[dev,docs]"
- Install pre-commit hooks:
pre-commit install
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit:
git add .
git commit -m "Description of your changes"
- Push to your fork:
git push origin feature/your-feature-name
- Create a Pull Request
Run the test suite:
pytest
Run with coverage:
pytest --cov=geotoolkit tests/
Build the documentation:
cd docs
make html
- Follow PEP 8 guidelines
- Use type hints
- Write docstrings in Google format
- Keep line length to 88 characters (Black default)
- Sort imports using isort
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
- Use clear, concise language
- Include code examples
- Document both successful and error cases
- Include type hints in examples
- Provide real-world use cases
-
Feature Development
- Create feature branch
- Develop and test
- Submit PR
-
Bug Fixes
- Create bug fix branch
- Fix and test
- Submit PR
-
Documentation
- Create docs branch
- Update documentation
- Submit PR
Feel free to contact the project maintainers if you have any questions or need help getting started.