Skip to content

fix(coverage): defer interpreter-specific wheel gaps - #1015

Open
seonghobae wants to merge 4 commits into
mainfrom
fix/coverage-interpreter-distribution-gap
Open

fix(coverage): defer interpreter-specific wheel gaps#1015
seonghobae wants to merge 4 commits into
mainfrom
fix/coverage-interpreter-distribution-gap

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Problem

The trusted central OpenCode coverage image failed before executing the target PR because a base-commit auxiliary fuzz lock pinned atheris==3.0.0, while the pinned Python 3.14 coverage interpreter could see only the compatible 3.1.0 distribution. Pip had successfully reached the package index and reported alternative available versions, but the lock installer treated the interpreter/platform distribution gap as a fatal registry failure.

This blocked current-head coverage evidence across repositories even when the target PR source and repository-specific language matrix were healthy.

Change

  • Classify a pip failure as safely deferable only when both resolver diagnostics name the same exact pin and the index reports at least one alternative version.
  • Keep network/DNS/TLS/time-out failures fatal.
  • Keep empty/none version sets, mismatched requirement diagnostics, and unexplained No matching distribution failures fatal.
  • Skip the incompatible optional base lock rather than installing it into the trusted coverage image; exact-head repository tests and language-specific peer checks remain authoritative.
  • Add isolated unit and integration-style regression tests for the classification and install plan.
  • Record the central CI correction in CHANGELOG.md.

TDD evidence

The one-shot branch workflow first ran the new regression tests against the prior implementation and required a failing RED result. It then applied the bounded classifier, reran the suite, compiled the changed Python files, and removed itself before publishing the final branch.

Workflow run 31884057428 completed successfully on the branch.

Security boundary

This does not turn arbitrary dependency-resolution failures into optional warnings. The exemption is deliberately narrow and requires positive package-index evidence for the exact same pin. Registry outages, ambiguous diagnostics, malformed locks, hash failures, resolver crashes, and install failures still fail closed.

Verification

  • python3 -m unittest tests.test_install_base_python_locks -v
  • python3 -m compileall -q scripts/ci/install_base_python_locks.py tests/test_install_base_python_locks.py
  • one-shot TDD workflow success and self-removal

Merge policy

Normal exact-head checks, semantic review, independent approval, and protected-branch rules remain required. No queued or historical evidence is treated as success.

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 19 minutes

Limit details: You’ve used all 1 included review currently available under your plan.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: dbbc2b40-3ff6-44b9-ba4d-58a1f6a31198

📥 Commits

Reviewing files that changed from the base of the PR and between c47afc2 and bf74604.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • scripts/ci/install_base_python_locks.py
  • tests/test_install_base_python_locks.py

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae enabled auto-merge (squash) August 15, 2026 13:32
@opencode-agent
opencode-agent Bot disabled auto-merge August 16, 2026 10:21
@seonghobae
seonghobae enabled auto-merge (squash) August 16, 2026 10:55
Keep the interpreter-distribution deferral note with main's bounded
requirement-include and parent-symlink fail-closed changelog lines.
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.

1 participant