Skip to content

TEMPORARY NEGATIVE CONTROL / DO NOT MERGE: lint failure validation - #33614

Closed
eserscor wants to merge 2 commits into
mainfrom
eserscor-dev/erscor/2026/10/26-lint-failure-valid
Closed

eserscor wants to merge 2 commits into
mainfrom
eserscor-dev/erscor/2026/10/26-lint-failure-valid

Conversation

@eserscor

Copy link
Copy Markdown
Contributor

Description

TEMPORARY NEGATIVE CONTROL / DO NOT MERGE. This draft PR intentionally fails RUFF-FORMAT to validate the Python format GitHub Actions failure path and subsequent SARIF production/upload. It is stacked on #33613, not intended for main or production.

The only change is tools/ci_build/lint_failure_validation.py: valid Python with a deliberately single-quoted dictionary on line 3. The fixture is explicitly temporary and must remain unformatted during this experiment. No lint rules or workflow execution are changed. Parent #33613 remains untouched.

Local validation on Windows with repository-pinned lintrunner 0.13.1, lintrunner-adapters 0.14.1, and ruff 0.12.12:

  • python -m pip install --quiet -r requirements-lintrunner.txt in an isolated virtual environment: passed.
  • lintrunner init: passed.
  • With $artifacts set to this session's external artifact directory, lintrunner --force-color --tee-json="$artifacts\lint-negative-control.json" -v tools\ci_build\lint_failure_validation.py: expected failure, exit 1, exactly one RUFF-FORMAT/format diagnostic on the fixture; no RUFF check findings.
  • python -m lintrunner_adapters to-sarif "$artifacts\lint-negative-control.json" "$artifacts\lint-negative-control.sarif": passed, exit 0.
  • Python AST parsing of the fixture, published SARIF 2.1.0 JSON schema validation, and assertions that the single SARIF diagnostic references this fixture: passed. The formatter reports a file-level location (SARIF line 1); the intentional quote violation is line 3.
  • git diff --cached --check: passed before commit.

Generated lint JSON, SARIF, and schema files are outside the repository and are not committed. A full-repository local lint run was not performed; this PR exercises the existing automatic --all-files CI run. Expected CI outcomes: Run lintrunner on all files fails on this fixture, while Produce SARIF and Upload SARIF file succeed. No manual dispatch or redundant rerun is requested.

Motivation and Context

User-approved negative-control experiment for #33613, which removes unused Rust setup from the Python format workflow. Verify that removing Rust setup preserves both real lint failures and SARIF reporting, rather than producing a provisioning failure. This draft PR is only a validation vehicle; do not merge it or fix the intentional formatting violation as part of this experiment.

eserscor and others added 2 commits October 26, 2026 08:57
The lint job runs Ruff and clang-format from Python wheels and does not use rustfmt. Remove the unnecessary Rust bootstrap and moving stable download dependency.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Intentionally retain single quotes so RUFF-FORMAT fails for automation validation. Remove this fixture after the experiment.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@@ -0,0 +1,3 @@
"""Temporary lint CI negative control; remove after automation validation."""
Base automatically changed from eserscor-dev/erscor/2026/10/26-remove-unused-rust to main October 26, 2026 18:53
@eserscor eserscor closed this Oct 26, 2026
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.

2 participants