Contributing
InSARHub welcomes contributions of all kinds — bug fixes, new processors/analyzers, documentation improvements, and frontend enhancements.
Quick Setup
git clone https://github.com/your-username/InSARHub.git
cd InSARHub
conda env create -f environment.yml
conda activate insarhub
pip install -e ".[test]"
Project Layout
InSARHub/
├── src/insarhub/
│ ├── analyzer/ # Analyzers source code
│ ├── app/
│ │ ├── frontend/ # React + Vite web UI (TypeScript)
│ │ └── routes/ # FastAPI route handlers
│ ├── cli/ # Command-line interface
│ ├── commands/ # Command objects shared by CLI and GUI
│ ├── config/
│ │ ├── defaultconfig.py # Dataclass configs for every module
│ │ └── paths.py # Centralized workdir path layout
│ ├── core/ # Base classes, registry, engine
│ ├── downloader/ # Downloader source code
│ ├── processor/ # Processors source code
│ └── utils/ # Shared utilities
├── docs/ # MkDocs documentation source
└── mkdocs.yml
Submitting Changes
- Create a feature branch:
git checkout -b feat/my-feature - Keep commits focused — one logical change per commit.
- Update
CHANGELOG.mdunder[Unreleased]. - Open a pull request against
maindescribing what changed and why.
Reporting Bugs
Open an issue at https://github.com/jldz9/InSARHub/issues with:
- InSARHub version (
insarhub --version) - OS and Python version
- Minimal reproduction steps
- Relevant log output or error traceback
See Backend for Python/API contribution details and Frontend for the React UI.