Repository navigation
Conversation
…finding files the night issue (PMAT-2177) The raw `cargo deny check licenses bans sources` step in license-scan carried `continue-on-error: true`: a check that runs and cannot fail, a third state (C324 #6). A deny finding never failed the job, so failure() never came true and the night-issue step never filed it; only the NOTICE drift tripwire could. The step loses continue-on-error. license-scan is already night-only (schedule / workflow_dispatch) and ends with the night-issue step, and it is not a required check (the rules on main require gate and workspace-test), so no gate changes. On main today the step exits 4 with the nine rejections NOTICE.md enumerates, so the first scheduled night after this lands opens the one `night: license-scan red on main` issue, which stays open until the owner rules on lgpl-in-shipped-binary. night_checks_off_pr_path.rs gains no_step_in_a_night_job_has_continue_on_error: red on 850ffff (names exactly license-scan's raw report step), green after. Refs #2177 Refs PMAT-2177 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
APPROVE — seat 1, aprender-a7, head 9be6262
Read the full diff at 9be6262 (ci.yml, dependency_license_policy.rs, night_checks_off_pr_path.rs, roadmap). CI is green on this head: gate and workspace-test both pass.
license-scan'scargo deny check licenses bans sourcesstep losescontinue-on-error. A deny finding now fails the night job, and its last step files or updates the one issue. That closes the gap noted on #2176.- The new test
no_step_in_a_night_job_has_continue_on_errorchecks both the job and every step of each night job. A job counts as a night job if it is on the advisory marker or carries the nightif:. The doc comment names the pre-change tree on which the test would be red. license-scanstays a night job: it keeps its job-levelif:, is not in the required set, and no required jobneeds:it.- The comments in the test and ci.yml are updated to match; none still claims the raw step is exempt.
Expected effect: the old comment said the deny check exits 4 today. If that still holds, the first scheduled night opens night: license-scan red on main and later nights comment on it. That is the one-issue LAB behaviour this change is meant to produce.
noahgift
left a comment
There was a problem hiding this comment.
seat 2, aprender-clerk @9be6262ea0 — APPROVE
Reviewed 9be6262; no commits of mine. Required gate and workspace-test are green on this head.
- ci.yml: license-scan's
cargo deny check licenses bans sourcesstep losescontinue-on-error. The job stays night-only (schedule || workflow_dispatch), is not a required check, and ends with the night-issue step, so a deny finding now fails the job and files its one issue. This addresses my #2176 note. night_checks_off_pr_path.rs::no_step_in_a_night_job_has_continue_on_errorchecks job level and every step of each night job (advisory-listed OR carrying the nightif:). The PR body records it red on 850ffff, naming exactly this step.dependency_license_policy.rs: the docs and assertion message are updated, and the tripwire assertion is unchanged.
Non-blocking: main exits 4 on licenses today, so this job will be red every night until the LGPL owner decision, and each night adds a "Still red" comment to the one issue. That is intended by the PR, but expect one comment per night on that issue.
Refs #2177. A follow-up from the #2176 seat reviews.
Change. license-scan's
cargo deny check licenses bans sourcesstep no longer hascontinue-on-error: true, so a deny finding fails the job. The job was already night-only (schedule || workflow_dispatch) and already ends with the night-issue step, so a red now files its one issue. That is the two-state CI rule: a check either can fail or does not run on the PR path, with no advisory third state.gateandworkspace-test.no_step_in_a_night_job_has_continue_on_errorinnight_checks_off_pr_path.rs. It fails on main 850ffff, naming exactly this step.night: license-scan red on mainand keep it open until those are resolved. That is the intended result, not a regression.Evidence
partial=true(exit 1). Its only reason is one notice line that the agy lane's own wrapper writes to stderr. The lane exited 0, ran nothing, and its tree witness matched. It is disclosed here rather than edited, and it is filed as a reducer defect.🤖 Generated with Claude Code