Skip to content

Add schema-validated release catalog companion action - #136

Open
msarahan wants to merge 17 commits into
rapidsai:mainfrom
msarahan:agent/release-build-output-container
Open

Add schema-validated release catalog companion action#136
msarahan wants to merge 17 commits into
rapidsai:mainfrom
msarahan:agent/release-build-output-container

Conversation

@msarahan

@msarahan msarahan commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This adds a schema-validated action that creates a release catalog companion for an existing build artifact. The release platform can aggregate these job-level entry files into the release catalog. That catalog supports the two purposes tracked in rapidsai/build-infra#381:

  • assembling releases that can be tested and verified before formal tagging
  • preserving build-time software evidence, especially for binary artifacts such as wheels where that evidence cannot reliably be reconstructed later.

The action:

  • validates configuration before inspecting artifacts
  • validates every resolved artifact, package identity, and evidence file during materialization
  • uploads one enveloped release-catalog-entries.json plus collected evidence as release-catalog-<source-artifact-name>

Tracks rapidsai/build-infra#381.

@msarahan msarahan added the DO NOT MERGE Development or canary PR; do not merge label Aug 7, 2026
@msarahan
msarahan force-pushed the agent/release-build-output-container branch from 76acdd5 to 3a9568f Compare August 7, 2026 18:55
@msarahan msarahan added improvement Improves an existing functionality non-breaking Introduces a non-breaking change and removed DO NOT MERGE Development or canary PR; do not merge labels Aug 13, 2026
@msarahan
msarahan marked this pull request as ready for review August 13, 2026 14:30
@msarahan
msarahan requested a review from a team as a code owner August 13, 2026 14:30
@msarahan
msarahan requested a review from jameslamb August 13, 2026 14:30
@msarahan
msarahan force-pushed the agent/release-build-output-container branch 3 times, most recently from 0197244 to 4144565 Compare August 13, 2026 15:45
@msarahan
msarahan force-pushed the agent/release-build-output-container branch from 4144565 to a18a4a7 Compare August 13, 2026 20:09
@msarahan msarahan added breaking Introduces a breaking change non-breaking Introduces a non-breaking change and removed non-breaking Introduces a non-breaking change breaking Introduces a breaking change labels Aug 13, 2026
@msarahan msarahan changed the title Make release output dispatch container-safe Simplify and validate release build-output action configuration Aug 17, 2026

@jameslamb jameslamb left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did my best to review this.

My read is that this replaces a bunch of individual arguments with:

  • automatically calculating some of the values
  • allowing a few more values only needed in specific cases (like cuVS Java builds) to be passed in as a single dictionary via this new config: argument

At a surface level that sounds good to me! Less opportunity for misconfiguration across the repos, easier to change the behavior in the future.

My comments in this PR are light, but see my review on rapidsai/shared-workflows#609 ... I think documentation (ideally written by a human) in the release-build-output/ directory would be really helpful for folks to understand why this exists and what it does. I looked through the code, logs, and output from the testing PRs (rapidsai/dask-cuda#1672, rapidsai/nx-cugraph#274, NVIDIA/cuvs#2400) and think I have a picture of that, but I personally would find it hard to modify this setup if a new requirement came in.

Comment thread .pre-commit-config.yaml Outdated
# The runtime validator suite requires jq. pre-commit.ci validates the same
# valid fixtures against config.schema.json; GitHub Actions runs the full
# valid/invalid runtime suite on an Ubuntu runner with jq.
skip: [actionlint-docker, release-build-output-config]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
skip: [actionlint-docker, release-build-output-config]
# why skip these in pre-commit.ci?
#
# * 'actionlint-docker': needs docker
# * 'release-build-output-config': need 'jq'
#
# There are covered in other CI jobs where we have more control over the runtime evnvironment.
#
skip: [actionlint-docker, release-build-output-config]

This comment is really verbose, overly-specific, and only applies to release-build-output-config even though its placement makes it looks like it applies to everything in skip:. Would you consider something like this suggestion?

description: >-
Release build-output JSON object containing artifact_type, component_id, output_directory, and custom artifact
selection and package identity when artifact_type is custom. Schema and field documentation:
https://github.com/rapidsai/shared-actions/blob/main/release-build-output/config.schema.json

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
https://github.com/rapidsai/shared-actions/blob/main/release-build-output/config.schema.json
JSON string with configuration for this action. Schema and field documentation:
https://github.com/rapidsai/shared-actions/blob/main/release-build-output/config.schema.json

I don't think repeating the literal field names and the implementation detail "... and package identity when artifact_type is custom" is helpful. Let's simplify this and redirect back to the schema.

Comment thread release-build-output/config.schema.json Outdated
]
},
"component_id": {
"description": "Stable release component ID shared by the selected files and their matrix variants.",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do I figure out a value for this?

Do I generate a UUID and provide my own? Is this auto-generated by the code?

That type of detail would be helpful.

@msarahan msarahan changed the title Simplify and validate release build-output action configuration Add schema-validated release catalog action Aug 18, 2026
@msarahan msarahan changed the title Add schema-validated release catalog action Add schema-validated release catalog companion action Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants