Release
GraphReFly Python is built with maturin over the native Rust binding crate.
The 0.22 line publishes wheels only. Source distributions are deferred until the release artifact can include a self-contained Rust source tree instead of depending on a sibling checkout.
Version
Section titled “Version”The Python package version lives in pyproject.toml.
Wheels
Section titled “Wheels”Release wheels target the stable CPython ABI for Python 3.12+ (abi3-py312).
This keeps one wheel usable across supported ordinary CPython 3.12, 3.13, and
3.14 runtimes on the same platform.
Free-threaded CPython wheels are not part of the 0.22 release policy.
The release workflow checks out graphrefly-rs@main. Before tagging, confirm
Rust main contains the exact native binding commit intended for the Python
release.
Publish
Section titled “Publish”Release publishing is handled by GitHub Actions from tags matching v*.
Configure PyPI Trusted Publishing for this repository before pushing a release
tag. The workflow uses OpenID Connect, not a long-lived PyPI API token.
Before tagging, rebuild the package-local docs from source:
uv run python scripts/check_api_docs.pypnpm --dir website docs:gen:checkpnpm --dir website buildShared website/blog publishing remains owned by ~/src/graphrefly. This
package deploys its own Starlight output to https://py.graphrefly.dev/; the
shared site links to that package-local artifact and does not copy generated
Python API pages into the main graphrefly.dev artifact.
git tag v0.22.0git push origin v0.22.0