Skip to content

ci(smoke): read the audit JSON and refuse stale wheels - #596

Open
Marc-cn wants to merge 1 commit into
darnitdevorg:mainfrom
Marc-cn:ci/smoke-followup
Open

Marc-cn wants to merge 1 commit into
darnitdevorg:mainfrom
Marc-cn:ci/smoke-followup

Conversation

@Marc-cn

@Marc-cn Marc-cn commented Oct 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to the review on #575, points 1 and 2:

  1. JSON instead of grep. The audit runs with --output json. The check fails on any control with error class evaluation, and requires OSPS-QA-05.01 to pass. The old grep matched "not installed", which fix: report the real cause when cel-python or tree-sitter fails to import #582 reworded.
  2. Stale wheels. A dist/ holding more than one wheel of a package is refused, naming the files, instead of silently picking the first.

Point 3 (importing every darnit* module in the full install) is not done here.

Checked by hand: with Requires-Dist: packaging removed from the darnit-core wheel's metadata, the minimal run fails with "controls that could not be evaluated: OSPS-QA-05.01, OSPS-QA-05.02". A duplicate darnit_core-0.0.9 wheel is refused. shellcheck is clean.

Type of Change

  • Bug fix (non-breaking change fixing an issue)
  • New feature (non-breaking change adding functionality)
  • Breaking change (fix or feature causing existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)

Framework Changes Checklist

  • Updated framework spec (docs/architecture/framework-design.md) if behavior changed (CI only)
  • Ran uv run python scripts/validate_sync.py --verbose and it passes (not run: CI script only)

Testing

  • Tests pass locally (not run: no Python code changed; the CI job runs the script)
  • Added tests for new functionality (if applicable)
  • Linting passes (shellcheck)

AI assistance

  • No AI assistance was used
  • AI assistance was used

Claude Fable 5.1 wrote the changes and drafted this description. I ran every command and checked the results myself. The commit carries an Assisted-by: Claude:claude-fable-5-1 trailer.

Follow-up to the review on darnitdevorg#575.

- The check reads --output json: it fails on any control with error class
  "evaluation" and requires OSPS-QA-05.01 to pass. darnitdevorg#582 reworded the
  message the old grep matched.
- A dist/ with more than one wheel of a package is refused instead of
  silently picking the first one.

Checked: with "packaging" removed from darnit-core's metadata the run
fails naming OSPS-QA-05.01 and OSPS-QA-05.02.

Assisted-by: Claude:claude-fable-5-1
Signed-off-by: Marc-cn <130138935+Marc-cn@users.noreply.github.com>
@Marc-cn
Marc-cn requested a review from mlieberman85 as a code owner October 13, 2026 20:52

@mlieberman85 mlieberman85 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks, this does what #575's review asked. I checked it: blocking packaging fails with QA-05.01/05.02 as described, and the normal run passes. Point 3 (importing every darnit* module) would still be useful for the proposed F4 rule, since gittuf/reproducibility are only imported through registration; a follow-up is fine. Optional: print each broken control's error.cause next to its id so a CI failure explains itself.

Drafted with Claude Code; reviewed and posted by me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants