| title | Infrastructure |
|---|---|
| layout | default |
| nav_order | 7 |
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.
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.
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.
We apply for the GitLab for Open Source program. This provides us with the GitLab Ultimate tier at no cost. Membership requires annual renewal.
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 | 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) |
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.