mengw15 opened a new pull request, #8625:
URL: https://github.com/apache/texera/pull/8625
### What changes were proposed in this PR?
A duplicate mapping key is invalid YAML, but PyYAML keeps the last one and
says nothing:
```
>>> yaml.safe_load("jobs:\n a: {}\njobs:\n b: {}")
{'jobs': {'b': {}}}
```
A local parse therefore cannot see the mistake, while GitHub's loader
rejects the file. Both halves of that gap are silent: the change looks fine
before it merges, and afterwards the workflow simply stops starting rather than
failing.
`.github/scripts/test_ci_yaml.sh` loads `.asf.yaml` and every `.yml`/`.yaml`
under `.github/` (30 files today) with a duplicate-key-strict loader. Beyond
the workflows, the files worth naming are `.github/release-branches.yml`, where
a duplicated key drops a release branch and with it every backport that branch
would have been nominated for, and `.github/labeler.yml`, where it stops a rule
matching without anyone noticing.
No change to `build.yml`: its infra job runs every
`.github/scripts/test_*.sh` it finds, after installing
`amber/dev-requirements.txt`, which already pins PyYAML.
### Any related issues, documentation, discussions?
#8379 added this check as one of two invariants in
`.github/scripts/test_asf_rulesets.sh`. The other one described a ruleset split
GitHub refuses to create and goes away with #8624's revert; this keeps the half
that still has a subject, widened beyond workflows and `.asf.yaml`.
### How was this PR tested?
Green on the current tree (30 files). The failure path was verified on one
file of each kind — a workflow, `release-branches.yml`, `labeler.yml` and
`.asf.yaml` — by appending a duplicated key to each in turn: every one reports
the file, the key and the line, and exits 1. The tree is unchanged afterwards.
### Was this PR authored or co-authored using generative AI tooling?
Yes. Generated-by: Claude Code (claude-opus-5)
--
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]