feat(publish): abi3 maturin wheel publish workflow → PyPI#44
Merged
Conversation
WHAT: Add .github/workflows/publish.yml — fires on vX.Y.Z tags (and workflow_dispatch). Builds abi3 wheels (cp39 ABI floor) across: - linux x86_64 + aarch64 (manylinux, QEMU) - macOS universal2 (x86_64+arm64, combined by maturin-action) - windows x86_64 Plus an sdist. Uploads via `maturin upload --skip-existing` using the repo's `pypi` environment + PYPI_API_TOKEN secret. Also add `abi3-py39` to the pyo3 feature list in Cargo.toml (required for maturin to stamp the wheel tag correctly); verified it still builds clean. Hook/pipeline parity notes updated in ci.yml + pre-push. WHY: gila-cap-git-tend (branch feat/cap-git-tend in gilamonster-capabilities) declares `gitxtend>=0.1.0` as a dep. The caps CI is Python-only and can't build Rust from source, so gitxtend must be on PyPI for that cap to land. v0.1.0 is release-ready (all M1 read methods + parity-tests merged, E2E suite green, version already bumped on this branch). To release: push the tag — `git tag v0.1.0 && git push origin v0.1.0`. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018R92DDLCsWorb4fSJQrdvD
hartsock
force-pushed
the
feat/pypi-publish
branch
from
June 27, 2026 01:17
f6baa77 to
bc48c2e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.github/workflows/publish.yml— fires onvX.Y.Ztags (orworkflow_dispatch)maturin upload --skip-existingusing the repo'spypienvironment andPYPI_API_TOKENsecretabi3-py39added to pyo3 features inCargo.toml(verified builds clean)ci.yml+.githooks/pre-pushWhy now
gila-cap-git-tendingilamonster-capabilities(branchfeat/cap-git-tend) declaresgitxtend>=0.1.0as a dependency. The caps CI is Python-only — it can't compile Rust from source — so gitxtend must be on PyPI for the cap to land CI-green.v0.1.0 is release-ready: all M1 read-side methods merged, parity-tested vs git, E2E suite green, version already bumped on
pilot/p1-release-v0.1.0(this branch is based on it).After merge
git tag v0.1.0 && git push origin v0.1.0gitxtend 0.1.0gila-cap-git-tend→gilamonster-capabilitiesmainPyPI setup required (one-time)
pypienvironmentPYPI_API_TOKENsecret (a PyPI API token scoped togitxtend, or a Trusted Publisher via OIDC — remove theMATURIN_PYPI_TOKENenv var from the workflow if using OIDC)risk:low — additive (publish workflow only; no change to the Rust logic)