GiGL is distributed as two wheels that are always installed together:
gigl— pure Python (same wheel for CPU and CUDA users)gigl-core— compiled C++/CUDA extensions, ABI-bound to the torch variant
Both wheels are always versioned and released together. bump_version.py updates both versions and keeps the
gigl-core pin in pyproject.toml in sync automatically.
A full release involves two GitHub Actions workflows run in sequence.
This workflow bumps the version, creates the release branch and tag, releases the KFP pipeline, and opens the merge-back PR. Trigger it manually:
- Go to the Actions tab in the GitHub repository.
- Select Create Release from the left sidebar.
- Click Run workflow, choose the bump type (
major,minor, orpatch), and click Run workflow.
The workflow will:
- Bump the version in
pyproject.toml(bothgiglandgigl-core) and commit it to a newrelease/vX.Y.Zbranch. - Release the GiGL KFP pipeline from that branch.
- Create and push a version tag
vX.Y.Z. - Open a PR to merge
release/vX.Y.Zback tomain.
This workflow builds and publishes the gigl and gigl-core wheels. Trigger it from the release branch created in Step
1:
- Go to the Actions tab.
- Select Release GiGL from the left sidebar.
- Click Run workflow, select the
release/vX.Y.Zbranch from the branch dropdown, and click Run workflow.
The workflow runs two jobs in parallel — one on a CPU runner, one on a GPU runner — and publishes both wheels to both variant registries.
Once both workflows succeed, merge the PR opened by Create Release to bring the version bump back into main.
Nightly builds are triggered automatically by nightly_release_&_test.yml, which calls create_release.yml with
bump_type=nightly. The Release GiGL wheel-publish step is not part of the nightly flow.
Each release run publishes to two self-contained registries:
| Registry | Packages |
|---|---|
gcp-release-registry-cpu |
gigl (pure Python) + gigl-core (CPU wheel) |
gcp-release-registry-cu128 |
gigl (pure Python) + gigl-core (CUDA 12.8 wheel) |
Users install from exactly one registry based on their variant — see installation docs.