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:

  1. PYTHON_CI_GROUP_TOKEN - Defined at the “Group” (Python) level, under Python -> Settings -> Access Tokens. Used for triggering pipelines for merge requests and most automatic updates and checks. The value of this token is inherited by wheel_builder as PYTHON_CI_GROUP_TOKEN under Settings -> CI/CD Settings -> Variables (see the CI/CD variables panel).
  2. 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:

  1. Source should be set to Deploy from a branch
  2. Branch should be set to gh-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.


RISE Project

This site uses Just the Docs, a documentation theme for Jekyll.