Prerequisites
- Docker installed (our helper scripts build and publish inside the project image)
- Push access to
transloadit/python-sdk - PyPI API token with publish rights (
PYPI_TOKEN), exported or stored in.env
Steps for version 1.0.3 (example)
- Bump version in
pyproject.toml,transloadit/__init__.py, andtests/test_request.py. - Add the
### 1.0.3 / YYYY-MM-DD ###entry toCHANGELOG.md. - Run the matrix (add
PYTHON_SDK_E2E=1if you want the live upload):./scripts/test-in-docker.sh --python 3.12
- Commit on
main:git commit -am "Release v1.0.3" - Tag & push:
git tag v1.0.3 git push origin main --tags
- Publish to PyPI via Docker helper (ensures clean tree & version alignment):
PYPI_TOKEN=... ./scripts/notify-registry.sh
- Publish the GitHub release (pulls notes from the changelog section):
NOTES=$(python - <<'PY'
import pathlib, re version = "1.0.3" text = pathlib.Path("CHANGELOG.md").read_text() pattern = rf"^### {re.escape(version)}.*?(?=^### |\Z)" match = re.search(pattern, text, flags=re.MULTILINE | re.DOTALL) print(match.group(0).strip() if match else "") PY ) gh release create v1.0.3 --title "v1.0.3" --notes "$NOTES"
8. Verify the Read the Docs build kicked off: <https://transloadit.readthedocs.io/en/latest/>
Additional background lives here: <https://github.com/transloadit/team-internals/blob/HEAD/_howtos/2020-12-14-maintain-python-sdk.md>.