kumarUjjawal opened a new pull request, #25313:
URL: https://github.com/apache/datafusion/pull/25313

   ## Which issue does this PR close?
   
   - Part of #21048. The issue stays open for the other checklist items.
   
   ## Rationale for this change
   
   `.asf.yaml` lists the GitHub Actions jobs that must pass before a PR can 
merge. If a job is renamed and `.asf.yaml` still requires the old name, PRs 
wait for a status that never arrives. CI runs 
`ci/scripts/check_asf_yaml_status_checks.py` in `dev.yml` to catch this, but 
`dev/rust_lint.sh` does not. A contributor can pass the local lint suite and 
then see the failure only in CI. This PR adds the existing validator to the 
local suite.
   
   ## What changes are included in this PR?
   
   - `dev/rust_lint.sh` runs `ci/scripts/check_asf_yaml_status_checks.py` as a 
read-only step, after the workflow install check and before the Markdown link 
check. The `--write` and `--allow-dirty` flags never reach it.
   - The runner needs `python3` on `PATH` with PyYAML installed. It checks both 
after argument parsing and before any tool install or formatter, and it reports 
a distinct error for each missing prerequisite. It does not install Python 
packages. Help output does not run these checks.
   - `ci/scripts/check_asf_yaml_status_checks.py` becomes executable, because 
the runner invokes each registered script directly. The script body, 
`.asf.yaml`, and the GitHub workflow do not change.
   - `docs/source/contributor-guide/testing.md` documents the purpose of the 
check, the Python setup, the standalone command, and the local lint integration.
   
   ## What is the testing strategy for this PR?
   
   - The real validator passes on this branch through `python3 
ci/scripts/check_asf_yaml_status_checks.py` and through direct invocation, with 
Python 3.14.7 and PyYAML 6.0.3.
   - Disposable configurations exercised the real validator. A valid 
configuration passes. A required name with no matching job fails with the 
existing diagnostic. A name served only by a path-filtered workflow fails, and 
an added unfiltered workflow makes it pass.
   - A disposable fixture with stubbed steps and tools exercised the runner. 
The validator runs once with no arguments in check mode and in both write 
modes. A missing `python3` and a missing PyYAML each stop the suite with their 
own error before any tool install or formatter. Help output skips the checks. A 
validator failure stops the later steps.
   - A disposable clone with a bogus required name in `.asf.yaml`: 
`./dev/rust_lint.sh` fails with the validator diagnostic before the link check, 
and passes again after the file is restored.
   - The full `./dev/rust_lint.sh` passes on this branch.
   
   ## Are there any user-facing changes?
   
   No. The local lint suite gains the check and needs Python 3 with PyYAML. CI 
is unchanged.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to