release: generate release catalog companions for build artifacts - #609
Open
msarahan wants to merge 29 commits into
Open
release: generate release catalog companions for build artifacts#609msarahan wants to merge 29 commits into
msarahan wants to merge 29 commits into
Conversation
msarahan
force-pushed
the
codex/release-build-output-manifests
branch
2 times, most recently
from
August 3, 2026 18:35
3b37e61 to
d95d03f
Compare
This was referenced Aug 3, 2026
msarahan
force-pushed
the
codex/release-build-output-manifests
branch
from
August 4, 2026 14:50
407b824 to
f0cf91b
Compare
msarahan
force-pushed
the
codex/release-build-output-manifests
branch
from
August 4, 2026 15:01
f0cf91b to
cc9a937
Compare
msarahan
marked this pull request as ready for review
August 4, 2026 16:50
msarahan
force-pushed
the
codex/release-build-output-manifests
branch
from
August 5, 2026 18:56
cc9a937 to
8f57ac8
Compare
msarahan
added a commit
to rapidsai/shared-actions
that referenced
this pull request
Aug 6, 2026
# What is this? This is the reusable action that creates manifests for the artifacts produced by our open source builds. This is part of a plan for: * rapidsai/release-scripts#102 * [For scanning purposes, especially of binary artifacts like wheels, we need to know what software was used at build time. It is often not possible to reverse engineer this information with what we have today.](https://gitlab-master.nvidia.com/RAPIDS/nspect-manager/-/merge_requests/5) The implementation here follows our existing dispatch pattern, rather than earlier efforts that basically did the same thing on shared-workflows (rapidsai/shared-workflows#609)
msarahan
force-pushed
the
codex/release-build-output-manifests
branch
from
August 6, 2026 22:38
8f57ac8 to
a946d6d
Compare
Created with Codex (GPT-5).
msarahan
force-pushed
the
codex/release-build-output-manifests
branch
from
August 6, 2026 22:51
a946d6d to
f19cf9f
Compare
msarahan
force-pushed
the
codex/release-build-output-manifests
branch
from
August 7, 2026 18:56
9b3f9bb to
737648d
Compare
msarahan
force-pushed
the
codex/release-build-output-manifests
branch
from
August 7, 2026 18:59
737648d to
b548f50
Compare
Contributor
Author
|
Marking this as do not merge because we should change the shared-actions refs after merging rapidsai/shared-actions#136 |
jameslamb
dismissed
their stale review
August 21, 2026 03:34
I'll be out for a bit, so dismissing my blocking review to unblock you. I reviewed the shared-actions PR that complements this (rapidsai/shared-actions#136 (review)).
Can review this one if you need when I'm back.
jameslamb
self-requested a review
August 21, 2026 03:34
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.
Posted by Codex (GPT-5) on behalf of @msarahan. This pull request description is LLM-generated; readers should treat its content accordingly.
Why
RAPIDS currently creates a release by tagging repositories in dependency order and allowing those tags to trigger builds that publish directly to release channels. That makes the tag a prerequisite for producing the artifacts, forces downstream repositories to wait for upstream publication and CDN synchronization, and prevents us from validating the complete final-version artifact set before any part of it is public.
The proposed release platform reverses that relationship: build the complete release candidate first, verify the exact bytes as a set, and only then promote those approved bytes and tag their source commits. For that to work, the shared build workflows need a release-candidate mode that:
This PR supplies that integration for the standard Conda, wheel, and custom build workflows. It consumes the release catalog action developed in
rapidsai/shared-actions#136.Merge dependency
Important
rapidsai/gha-tools#274must be merged before this PR. This PR now passesRAPIDS_BUILD_TYPE=release-candidatethrough unchanged and depends on gha-tools to recognize its release-version semantics while excluding the publicrapidsaiandrapidsai-nightlychannels from candidate dependency resolution.What changes
Release-candidate build mode
release-candidateas a supportedbuild_typeand uses the full nightly build matrix for candidate coverage.Private staging instead of publication
release-candidatebuilds, so candidates cannot enter Anaconda.org, PyPI, or other normal public destinations before approval.rapids-release-candidatesS3 bucket.Release catalog companions
For every release-candidate matrix job, the shared-actions release catalog action creates a companion folder containing:
release-catalog-entries.json, with package identity, artifact SHA-256, source repository and commit, workflow/run identity, and evidence paths;The generated CycloneDX document currently identifies the artifact itself and binds it to its digest. Component/dependency inventory is intentionally left for a future schema version.
Companions do not modify the artifacts they describe. S3 uploads are conditional and accept an existing object only when its bytes match, making retries idempotent while rejecting conflicting output for the same destination.
Standard and custom producers
conda:<repository>andwheel:<repository>; they are not unique package IDs.custom-job.yamlremains opt-in throughrelease-catalog-config. This supports outputs such as Maven JARs and standalone archives without treating every custom artifact as publishable release content.package_identity_file; the action does not infer identity from arbitrary filenames.Explicit, validated inputs
All producers pass the checked-out source revision explicitly as
source-sha: ${{ env.RAPIDS_SHA }}.RAPIDS_SHAcomes from the caller-selected checkout when supplied and otherwise from the checked-out repository, ensuring the catalog identifies what the job actually built.The action validates configuration against its versioned input schema before inspecting artifacts and validates generated entries against its output schema. Configuration, materialization, and upload failures are surfaced as GitHub Actions error annotations.
See the
shared-actionsrelease catalog documentation for the companion layout, schemas, package parsing rules, evidence semantics, and S3 layout.Release-platform flow
Compatibility and rollout
release-catalog-config.Tracks
rapidsai/build-infra#381.