Set up an automated release pipeline to build, package, and publish Python distributions to the Python Package Index (PyPI).
Goals
Automate the process of building and publishing Python packages to pypi.org
Ensure packages are properly versioned following semantic versioning
Integrate the pipeline into our existing CI/CD workflow for seamless releases
Requirements
[ ] Define the trigger(s) for the pipeline (e.g., tag push, GitHub release creation, manual dispatch)
[ ] Configure authentication to PyPI using a trusted publisher (OIDC) or API token
[ ] Build source distribution (sdist) and wheel (bdist_wheel) artifacts
[ ] Validate the package before publishing (e.g., twine check)
[ ] Run test suite prior to publishing to prevent broken releases
[ ] Optionally publish to TestPyPI first for validation
[ ] Add documentation/README for the release process
Acceptance Criteria
- A successful pipeline run publishes a correctly versioned package to pypi.org
- The package is installable via pip install immediately after release
- The pipeline is idempotent and handles failures gracefully (e.g., duplicate version detection)
- Package metadata (description, classifiers, license, project URLs) is complete and accurat
Set up an automated release pipeline to build, package, and publish Python distributions to the Python Package Index (PyPI).
Goals
Automate the process of building and publishing Python packages to pypi.org
Ensure packages are properly versioned following semantic versioning
Integrate the pipeline into our existing CI/CD workflow for seamless releases
Requirements
[ ] Define the trigger(s) for the pipeline (e.g., tag push, GitHub release creation, manual dispatch)
[ ] Configure authentication to PyPI using a trusted publisher (OIDC) or API token
[ ] Build source distribution (sdist) and wheel (bdist_wheel) artifacts
[ ] Validate the package before publishing (e.g., twine check)
[ ] Run test suite prior to publishing to prevent broken releases
[ ] Optionally publish to TestPyPI first for validation
[ ] Add documentation/README for the release process
Acceptance Criteria