Skip to content

CI: add conservative change-based validation with a reliable required gate #2291

Closed as not planned

Description

@edelauna

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

  1. edelauna commented on Nov 9, 2026

    @edelauna
    ContributorAuthor

    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.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions