Repository navigation
Description
CI: add conservative change-based validation with a reliable required gate
Problem
Every PR update runs expensive validation even when a narrowly classified change cannot affect product behavior. Eliminate demonstrably unnecessary work while keeping required checks trustworthy.
Turborepo supports affected-package selection, but Zoo imports shared source outside package-local directories. A rule such as “run webview tests only for webview-ui changes” would miss real dependencies. Classification correctness needs validation independent of any runner-contention hypothesis.
Implementation
- Start with an explicit allowlist of documentation-only changes whose files are not build/runtime/test inputs. Treat embedded fixtures, executable examples and generated inputs conservatively.
- Classify the full relevant change range, including renamed/deleted files and mixed changes.
- Run comprehensive checks for shared code, dependencies, toolchain/workflow configuration, unknown paths, missing history or incomplete change data.
- Keep comprehensive merge-queue and release validation initially.
- Keep an always-running required gate that validates classification and expected job outcomes. Missing/failed classification must block or select full validation.
- Preserve current required check contracts or update rulesets deliberately with no validation gap.
- Validate representative historical changes and record proposed selections before enabling skips. Start narrow; expand only with dependency evidence.
Acceptance criteria
- Documentation-only allowlist, mixed changes, shared source, dependency/config changes, renames/deletions, missing base/history and classifier failures are covered.
- Full changed-file enumeration cannot silently truncate; uncertain input runs everything or blocks.
- Required gate reports for every relevant PR and merge-group event and rejects missing/failed required validation.
- Required workflows are not left permanently pending by workflow-level path filters.
- Full merge-queue/release coverage remains intact; skipped PR work is explicitly explained.
- Record classified PR categories, skipped work, runner minutes and required-check completion time; document a full-validation override and rollback.
Broader package selection should follow the shared-input audit; existing coverage slicing in #47 remains separate. A comprehensive merge-queue run is additional protection, not a substitute for correct PR classification.
Sources: Turbo CI guidance, affected selection/history requirements, GitHub required checks and skipping hazards.
Activity
ci: add conservative change-based validation with a reliable required…
edelauna commentedon Nov 9, 2026
Closing as not planned. Docs-only changes are about 0.2% of recent commits, so the saving does not justify the added CI logic. Reopen if a newer measurement shows a higher share.