Skip to content

Commit b48bc59

Browse files
committed
Gate PyPI publish on draft release
1 parent 7b633ce commit b48bc59

5 files changed

Lines changed: 13 additions & 8 deletions

File tree

.github/workflows/release.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,9 @@ jobs:
132132
133133
publish-pypi:
134134
runs-on: ubuntu-latest
135-
needs: build-release
135+
needs:
136+
- build-release
137+
- create-github-release
136138
if: startsWith(github.ref, 'refs/tags/v')
137139
environment:
138140
name: pypi

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717
- Release workflow permissions are split so the gate/artifact build job runs
1818
with read-only repository contents access; only the tag-only draft release job
1919
receives `contents: write`.
20+
- Tag-based PyPI publishing now waits for the draft GitHub release job to
21+
succeed before requesting the protected `pypi` environment.
2022

2123
## [0.3.0] - 2026-05-07
2224

RELEASE.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,12 @@ The workflow keeps release permissions split: the gate/artifact build job uses
107107
read-only repository contents access, and only the tag-only draft release job
108108
uses `contents: write`.
109109

110-
The same tag workflow publishes the Python package distributions to PyPI through
111-
Trusted Publishing/OIDC. The GitHub `pypi` environment exists and requires
112-
review by `code5717`. As of the latest release-readiness audit, `a7-py` is not
113-
yet a public PyPI project. Before the first real publish, create or preconfigure
114-
the PyPI project trusted publisher with:
110+
After the draft GitHub release job succeeds, the same tag workflow publishes
111+
the Python package distributions to PyPI through Trusted Publishing/OIDC. The
112+
GitHub `pypi` environment exists and requires review by `code5717`. As of the
113+
latest release-readiness audit, `a7-py` is not yet a public PyPI project. Before
114+
the first real publish, create or preconfigure the PyPI project trusted
115+
publisher with:
115116

116117
- owner: `code5717`
117118
- repository: `a7-py`

RELEASE_READINESS_REVIEW.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ not factually provable from local tests alone.
6868
read-only repository contents access; only the tag-only draft release job gets
6969
`contents: write`.
7070
- Release tags now publish package distributions to PyPI through Trusted
71-
Publishing/OIDC after the release gate passes.
71+
Publishing/OIDC only after the release gate and draft GitHub release job pass.
7272
- C backend `for-in` lowering now caches iterable expressions before loop
7373
length and element access.
7474
- String literal tokenization now rejects unknown escapes and malformed `\xHH`

TODO.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ These are entire subsystems. Each needs a design decision before implementation
250250

251251
- [x] Add PyPI or package-registry publishing.
252252
Files: `.github/workflows/`
253-
Notes: release tags now publish built distributions to PyPI through Trusted Publishing/OIDC. The GitHub `pypi` environment exists and requires maintainer review; `a7-py` is not yet a public PyPI project, so create or configure the PyPI trusted publisher for repository `code5717/a7-py`, workflow `release.yml`, and environment `pypi` before the first real publish.
253+
Notes: release tags now publish built distributions to PyPI through Trusted Publishing/OIDC after the draft GitHub release job succeeds. The GitHub `pypi` environment exists and requires maintainer review; `a7-py` is not yet a public PyPI project, so create or configure the PyPI trusted publisher for repository `code5717/a7-py`, workflow `release.yml`, and environment `pypi` before the first real publish.
254254

255255
- [ ] Design and implement `fall` lowering.
256256
Files: `src/passes/semantic_validator.py`, `src/backends/zig.py`, `src/backends/c.py`, `docs/SPEC.md`

0 commit comments

Comments
 (0)