Add PyPI release tooling - #6
Conversation
- scripts/release.sh: prepare (version bump in pyproject + __init__, changelog roll, release PR) and publish (tag push) — mirrors the sdk-python convention - publish.yml: tag-triggered build + twine check + PyPI trusted publishing (pypi environment); release.yml: GitHub Release from CHANGELOG.md - CHANGELOG.md seeded with the unreleased 0.1.0 feature set; RELEASING.md
| ensure_clean | ||
|
|
||
| local current new base branch pkg | ||
| current="$(get_version)" |
There was a problem hiding this comment.
nit: current is read here, before the base branch is checked out at line 127. If prepare is run from a branch whose pyproject.toml version differs from base (e.g. a stale feature branch), the bump is computed against the wrong version, and set_version "$new" then writes that onto base. Consider reading current="$(get_version)" after git checkout "$base" / git pull so the bump is always relative to the branch you actually tag from. (not blocking)
| name: ${{ steps.meta.outputs.name }} ${{ steps.meta.outputs.version }} | ||
| body: ${{ steps.notes.outputs.body }} | ||
| generate_release_notes: false | ||
| make_latest: true |
There was a problem hiding this comment.
super nit: make_latest: true is unconditional, so re-running this workflow via workflow_dispatch for an older tag (the documented GitHub-Release recovery path in RELEASING.md) would re-mark that older release as "latest". Consider gating it to the tag-push path, e.g. make_latest: ${{ github.event_name == 'push' }}. (not blocking)
Mirrors the sdk-python release convention:
./scripts/release.sh prepare|publish, tag-triggeredpublish.yml(build, twine check, tag↔version guard, PyPI trusted publishing via thepypienvironment),release.ymlfor GitHub Releases from CHANGELOG.md. One adaptation:release.shbumps bothpyproject.tomlandhotdata_materialized/__init__.pysince the package tests enforce they match. Changelog helpers verified locally (roll + extract). Note: PyPI trusted publishing for this repo must be configured once on pypi.org before the first publish.