Contributing to EOForestSTAC#
Overview#
We welcome your skills and enthusiasm for the EOForestSTAC project! There are many ways to contribute beyond writing code: bug reports, documentation improvements, usage examples, new product integrations, and feature suggestions are all valuable.
Types of Contributions#
Report Bugs#
Report bugs at simonbesnard1/eoforeststac#issues.
Please include:
Your operating system name and version.
The output of
python -c "import eoforeststac; print(eoforeststac.__version__)"A minimal reproducible example.
The full traceback.
Fix Bugs#
Look through the GitHub issues for bugs tagged "bug" and "help wanted". These are open to anyone.
Implement Features#
Look for issues tagged "enhancement" and "help wanted". Before starting work on a large feature, open an issue first to discuss the design.
Add a New Product#
To add a new EO product to the catalog:
Add a product config in
eoforeststac/products/<product>.py.Add a catalog module in
eoforeststac/catalog/<product>.py.Add a writer in
eoforeststac/writers/<product>.pythat extendsBaseZarrWriter.Register the product in
eoforeststac/catalog/root.py.
See the CCI_BIOMASS or GAMI_AGECLASS implementations as templates.
Write Documentation#
EOForestSTAC documentation lives in doc/. Improvements to explanations, additional usage examples, and fixes to typos are always welcome.
Submit Feedback#
Use the GitHub Discussions board for questions, ideas, and general feedback.
Development Setup#
Fork the repository on GitHub.
Clone your fork and install in editable mode:
git clone https://github.com/YOUR_USERNAME/eoforeststac.git cd eoforeststac pip install -e ".[dev]"
Create a feature branch:
git checkout -b feature/my-new-feature
Make your changes, add tests, and verify everything passes:
pytest eoforeststac/tests/ -v --cov=eoforeststac
Check code style (Ruff):
ruff check eoforeststac/ ruff format --check eoforeststac/
To auto-format:
ruff format eoforeststac/
Commit and push to your fork, then open a pull request.
Code Style#
EOForestSTAC uses Ruff for linting and formatting with a line length of 100 characters. All code must pass ruff check and ruff format --check before merging.
Tests#
Tests live in eoforeststac/tests/. The test suite uses pytest.
Run the full suite:
pytest eoforeststac/tests/ -v --cov=eoforeststac --cov-report=term-missing
Building the Documentation#
cd doc
python -m sphinx -b html . _build/html
# Open _build/html/index.html in a browser
Pull Request Guidelines#
Before submitting a pull request:
Add tests for any new functionality.
Update docstrings (NumPy style) for any changed public functions.
Ensure
pytest eoforeststac/tests/passes with no failures.Ensure
ruff check eoforeststac/passes with no errors.Update
doc/if your change affects user-visible behaviour.
Pull requests are reviewed by Simon Besnard (@simonbesnard1). Response times are best-effort; please be patient.
License#
By contributing to EOForestSTAC you agree that your contributions will be licensed under the EUPL-1.2 license.