Distribution Workflow¶
Current Status¶
Toolkit is installable as normal Python package and now has explicit distribution smoke coverage for:
- editable install:
python -m pip install -e . - non-editable local install:
python -m pip install . - artifact build:
python -m build - artifact metadata validation:
twine check dist/* - wheel / sdist install smoke via automated tests
Current Release Decision¶
Current release strategy is intentionally conservative:
- use GitHub releases first
- do not publish directly to PyPI yet
- consider TestPyPI only after install docs, wheel smoke checks, and auth-heavy runtime expectations remain stable across contributor machines
Reason:
- toolkit has non-trivial runtime expectations around Earth Engine auth, optional Earthdata-backed paths, caches, and large-data workflows
- package install shape is now stronger, but public-distribution support burden should not outrun runtime/documentation maturity
Local Verification¶
Preferred locked workflow:
uv sync --locked --group dev
rm -rf .tmp/dist-release
uv run python -m build --no-isolation --outdir .tmp/dist-release
uv run twine check .tmp/dist-release/*
uv run pytest -q tests/test_distribution_artifacts.py
Fallback pip checks:
python -m pip install -e .
python -m pip install .
Future Promotion Gates¶
Before TestPyPI / PyPI:
- keep wheel and sdist smoke checks green in CI
- keep README install paths current
- avoid placeholder auth/setup values in user-facing docs
- document expected runtime/auth requirements clearly for packaged users
- decide version bump / tag process for first public release