Skip to content

CI verify parity, Python 3.13, and tag-gated release packaging (N9)#6

Merged
Cuuper22 merged 1 commit into
mainfrom
claude/eager-cerf-kvmqta-n9
Jun 11, 2026
Merged

CI verify parity, Python 3.13, and tag-gated release packaging (N9)#6
Cuuper22 merged 1 commit into
mainfrom
claude/eager-cerf-kvmqta-n9

Conversation

@Cuuper22

Copy link
Copy Markdown
Owner

N9 of 10: CI and packaging maturity

CI workflow

  • Python 3.13 added to the test matrix; pip caching enabled.
  • New verify job running the project's own gate suite (verify --profile full --gate-timeout 0), gated on the matrix via needs so red commits do not consume runners.
  • New build job (python -m build, twine check, artifact upload), also gated on the test matrix.

Release path

  • New tag-triggered release.yml: build, twine check, and a PyPI trusted-publishing job pinned to an immutable action SHA (pypa/gh-action-pypi-publish v1.14.0), gated on a pypi GitHub environment so nothing can publish before the documented one-time setup.
  • New RELEASING.md with the one-time PyPI trusted-publisher setup and release procedure.
  • pyproject.toml: 3.13 classifier and a release optional dependency group (build, twine), keeping dev lean.

Code-review findings applied

  • Publish action pinned to an immutable SHA instead of the floating release/v1 (the job holds id-token: write).
  • build and verify jobs gated on needs: test so artifacts cannot be produced from red commits.
  • The duplicate CI-side --read-only verify run was dropped (the suite already runs five times across matrix plus verify); read-only verification stays a local/release-time check per RELEASING.md.

Validation (observed locally; Actions cannot run in this environment)

  • Both workflows YAML-parse clean.
  • python -m build succeeded; twine check dist/* PASSED for sdist and wheel.
  • Built wheel installed into a fresh venv; gpu-stack stats from the venv reports the correct registry (16 systems, 1517 variables, 959 equations, 619 root inputs).
  • No source changes; dist/ confirmed gitignored.

https://claude.ai/code/session_01Eu2JVnPFgMQftwYTP3cGQZ


Generated by Claude Code

CI workflow:
- Add Python 3.13 to the test matrix and enable pip caching.
- Add a verify job that runs the project's own gate suite
  (verify --profile full --gate-timeout 0), gated on the matrix via
  needs so red commits do not consume runners.
- Add a build job (python -m build, twine check, artifact upload),
  also gated on the test matrix.

Release path:
- New tag-triggered release.yml: build, twine check, and a PyPI
  trusted-publishing job pinned to an immutable action SHA
  (pypa/gh-action-pypi-publish v1.14.0), gated on a 'pypi' GitHub
  environment so nothing can publish before one-time setup.
- New RELEASING.md documenting the one-time PyPI trusted-publisher
  setup and the release procedure.
- pyproject: add 3.13 classifier and a 'release' optional dependency
  group (build, twine), keeping dev lean.

Validated locally: both workflows YAML-parse; python -m build succeeds;
twine check PASSED for sdist and wheel; the built wheel installed into
a fresh venv serves gpu-stack stats correctly.

https://claude.ai/code/session_01Eu2JVnPFgMQftwYTP3cGQZ
@Cuuper22 Cuuper22 merged commit b4c37b0 into main Jun 11, 2026
4 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants