Metadata-Version: 2.4
Name: grdl-sartoolbox
Version: 0.1.0
Summary: Python port of NGA MATLAB SAR Toolbox - SAR processing algorithms
Author-email: "geoint.org" <noreply@geoint.org>
License: MIT
Project-URL: Homepage, https://github.com/ngageoint/grdl-sartoolbox
Project-URL: Repository, https://github.com/ngageoint/grdl-sartoolbox
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: grdl>=0.1.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Dynamic: license-file

# grdl-sartoolbox

Pure-NumPy reimplementation of the [NGA MATLAB SAR Toolbox](https://github.com/ngageoint/MATLAB_SAR).

## Installation

```bash
pip install grdl-sartoolbox
```

Or install from source:

```bash
git clone https://github.com/geoint-org/grdl-sartoolbox.git
cd grdl-sartoolbox
pip install -e ".[dev]"
```

## Publishing to PyPI

### Dependency Management

All dependencies are defined in `pyproject.toml`. Keep these files synchronized:

- **`pyproject.toml`** — source of truth for versions and dependencies
- **`requirements.txt`** — regenerate with `pip freeze > requirements.txt` after updating `pyproject.toml`
- **`.github/workflows/publish.yml`** — automated PyPI publication (do not edit manually)

### Releasing a New Version

1. Update the `version` field in `pyproject.toml` (semantic versioning: `major.minor.patch`)
2. Update `requirements.txt` if dependencies changed: `pip install -e ".[all,dev]" && pip freeze > requirements.txt`
3. Commit both files
4. Create a git tag: `git tag v0.2.0` (matches version in `pyproject.toml`)
5. Push to GitHub: `git push && git push --tags`
6. Create a GitHub Release from the tag — this triggers the publish workflow automatically

The workflow:
- Builds wheels and source distribution using `python -m build`
- Publishes to PyPI with OIDC authentication (secure, no API keys)
- Artifacts are available at [pypi.org/p/grdl-sartoolbox](https://pypi.org/p/grdl-sartoolbox)

See [CLAUDE.md](CLAUDE.md#dependency-management) for detailed dependency management guidelines.

## License

MIT License. See [LICENSE](LICENSE) for details.
