fix(chip): classify missing RISC-V evidence as blocked#7873
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
0653ea9 to
4834703
Compare
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
4834703 to
6856e82
Compare
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
|
Update after latest amend (
Remaining red checks are broad repo/shared failures or existing chip-wide ruff drift outside this PR's changed files; PR body has the current breakdown. |
Summary
BLOCKEDevidence work instead of source-contractFAILin the generated Linux contract gate.ld.lldis reported asBLOCKED, not a build regression.RISCV_CLANG_CANDIDATES, without falling through to host RISC-V GCC toolchains.GEN_FIR.is_file()check and print blocked follow-up artifacts/evidence alongside hard failures.Validation
python3 verify/check_stub_audit.pypython3 scripts/check_prototype_status_dashboard.pymake qemu-status-testmake chipyard-generated-linux-contract-check.venv/bin/ruff format --check packages/chip/scripts/test_qemu_smoke_status.py packages/chip/scripts/check_chipyard_generated_linux_contract.py packages/chip/scripts/check_minimum_linux_target.py.venv/bin/ruff check packages/chip/scripts/test_qemu_smoke_status.py packages/chip/scripts/check_chipyard_generated_linux_contract.py packages/chip/scripts/check_minimum_linux_target.pysh -n packages/chip/scripts/run_qemu.shpython3 -m py_compile packages/chip/scripts/test_qemu_smoke_status.py packages/chip/scripts/check_chipyard_generated_linux_contract.pygit diff --checkpython3 scripts/test_minimum_linux_npu_target.pypython3 scripts/test_cpu_ap_boot_readiness.pyCI / Remaining Noise
docker-regressionbroadpackages/chipruff/format failures in existing chip scripts outside this PR's changed files.PASS=41 FAIL=1 BLOCKED=29; the loneFAILisos-rv64-release-checkfailing before gate logic because the active interpreter lacksjsonschema. That is a separate reproducible-deps cleanup candidate, not a RISC-V evidence-classification claim from this PR.Claim Boundary
This PR does not claim RISC-V Linux, AOSP, generated AP, board, or silicon boot. The remaining items are still blocked on real generated artifacts, toolchains, and boot transcripts; this only fixes classification so missing evidence is not reported as checked-in source failure.
Greptile Summary
This PR corrects the classification of missing Chipyard/AP Linux artifacts from
FAIL(source contract violation) toBLOCKED(absent evidence) across three Python gate scripts, and fixes QEMU toolchain detection so aclang-without-lldsituation is also reported asBLOCKEDrather than a build regression.check_chipyard_generated_linux_contract.py: All four artifact-presence checks now funnel into a sharedblockerslist; when failures and blockers coexist the FAIL branch additionally prints the blocked items so engineers see the full picture in one run.check_minimum_linux_target.py:check_evidencegains a companion-JSON fallback so a sibling.jsonstatus report withstatus: "blocked"is consumed instead of reporting the log file as "missing" (an error).run_qemu.sh/test_qemu_smoke_status.py:clang_can_link_riscv_elfis extracted into its own function,RISCV_CLANG_CANDIDATESallows test injection, and a new test isolates the detection path by restrictingPATHto a minimal fakebindir.Confidence Score: 5/5
Safe to merge — all changes narrow the classification of missing evidence from FAIL to BLOCKED, which is strictly less alarming and matches the stated claim boundary.
The logic changes are additive: a new blockers path is threaded through existing check functions without altering the success or real-failure paths. The companion-JSON check in check_minimum_linux_target is guarded by an explicit status comparison and falls through to the previous "missing" result for any other status value. The clang toolchain refactor is exercised by a new test that correctly isolates the detection path. No data is lost and no check is silently weakened.
No files require special attention; the style-only redundancies in check_chipyard_generated_linux_contract.py and run_qemu.sh do not affect runtime behaviour.
Important Files Changed
Reviews (3): Last reviewed commit: "fix(chip): classify missing riscv eviden..." | Re-trigger Greptile