Infrastructure
The python-wheels project makes use of some supplemental infrastructure available both on GitHub, and externally. The following sections outline these services and how to configure/maintain them.
RISE RISC-V Runners
For RISE-hosted builds of Python wheels and upstream submissions, the python-wheels repository uses the RISC-V Runners project. It is already enabled for the repository; to reconfigure, see the installation guide.
GitLab
The python-wheels project is a continuation of wheel_builder, which is hosted on GitLab. This project leverages the GitLab CI/CD framework to create pipelines for building, testing, and deploying wheels, along with automatic documentation updates and periodic checks for new package versions upstream.
While development and maintenance now primarily occur on GitHub, the existing GitLab infrastructure (particularly the package registry) must be maintained. The original wheel_builder documentation is maintained for reference purposes, and provides a detailed explanation of how the project was originally structured.
GitLab for Open Source
We apply for the GitLab for Open Source program. This provides us with the GitLab Ultimate tier at no cost. Membership requires annual renewal.
CI/CD Pipeline Tokens and Access
The GitLab CI/CD pipelines make use of project tokens, generated at different project scopes. Two tokens are defined:
PYTHON_CI_GROUP_TOKEN- Defined at the “Group” (Python) level, underPython -> Settings -> Access Tokens. Used for triggering pipelines for merge requests and most automatic updates and checks. The value of this token is inherited bywheel_builderasPYTHON_CI_GROUP_TOKENunderSettings -> CI/CD Settings -> Variables(see the CI/CD variables panel).rise-github-package-registry- Defined at the “Repository” (wheel_builder) level. Used for pushing wheels to the GitLab package registry from GitHub.
These tokens are generated with a 1-year expiry timeline, so they need to be regenerated by a project administrator/owner.
Token Scope Reference
| Token | Level | Role | Scopes | Used For | Expiry |
|---|---|---|---|---|---|
PYTHON_CI_GROUP_TOKEN | Group (Python) | Maintainer | api, read_api, read_repository, write_repository | MR pipeline triggers, auto updates/checks | 1 year (April 19th, 2027) |
rise-github-package-registry | Repository deploy token (wheel_builder) | n/a (deploy token) | read_package_registry, write_package_registry | Push wheels GitHub → GitLab package registry | 1 year (June 29th, 2027) |
GitHub Pages Configuration
The .github/workflows/docs.yml workflow handles building and deploying documentation, including providing previews of the docs on a per-PR basis. For this to work correctly, the following settings need to be configured under Settings -> Pages -> Build and deployment in the repository:
Sourceshould be set toDeploy from a branchBranchshould be set togh-pages/(root)
When this is configured, any changes touching the docs folder will trigger a docs build, where upon completion the rossjrw/pr-preview-action will automatically comment on the PR with a link looking like:
https://riseproject-dev.github.io/python-wheels/pr-preview/pr-171/
Note that the gh-pages branch should be automatically created by the workflows, but if not it must be created manually with an empty .nojekyll file in the project root to avoid long rebuild times.