Repository navigation
CI: publish a package index of the release wheels on GitHub Pages - #6
Merged
Merged
Conversation
A PEP 503 index (simple/qi/) lists the wheels of all the GitHub Releases (except drafts and pre-releases), with their SHA-256, so that pip and uv can install qi by version instead of linking each wheel by URL. The index is generated by ci/generate_index.py and deployed by the new "Package index" workflow, started after each release or manually. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
Publishes a PEP 503 package index on GitHub Pages (
https://funwithagents.github.io/libqi-python/simple/), listing the wheels of all GitHub Releases. pip and uv can then installqiby version, instead of each client linking every wheel by URL with platform markers.ci/generate_index.py: buildssimple/index.htmlandsimple/qi/index.htmlfrom the GitHub Releases API. Each link points to the release asset and carries its#sha256=hash: the digest GitHub reports, or the script's own hash for assets older than GitHub's digests (e.g. v3.1.6). Drafts and pre-releases are excluded, because a pre-release has wheels with the same file names as the final release..github/workflows/index.yml: new "Package index" workflow (workflow_dispatch) that generates the index and deploys it withactions/deploy-pages.wheels.yml: after a release (not a pre-release), the release job starts the index workflow onmaster. Thereleaseevent can't be used because releases created with theGITHUB_TOKENdon't trigger it, and thegithub-pagesenvironment only accepts deployments from the default branch.--extra-index-url, pinned version).Client usage with uv:
Test plan
uv lock+uv sync+import qiin a client project (macOS arm64, Python 3.13)Independent of #5 (version bump): no conflicts, and the index is regenerated from all releases whatever the merge order.
🤖 Generated with Claude Code