Release and PyPI publishing

Astro is published to PyPI as astro-pipeline. The import name and CLI remain astro.

Versioning

  • Single source of truth: __version__ in src/astro/__init__.py

  • Hatch reads it via [tool.hatch.version] in pyproject.toml

  • Record user-visible changes in CHANGELOG.md

Build locally

pip install -e ".[dev]"
make build

Artifacts are written to dist/. Verify locally with:

twine check dist/*

For manual uploads, run twine check dist/* if your Twine version supports Metadata 2.4 (PEP 639). PyPI accepts the wheel regardless.

Publish manually

Use this only when not publishing via GitHub Actions.

  1. Create a PyPI account and register the astro-pipeline project.

  2. Create an API token scoped to that project.

  3. Build and upload:

make build
TWINE_USERNAME=__token__ TWINE_PASSWORD=pypi-... twine upload dist/*

After publishing

Users install with:

pip install astro-pipeline

Update README.md and docs/getting-started/installation.md if install instructions change.