python.yml's pull_request paths: filter has Cargo.* and python/**, but no entry for the repository-root .cargo/config.toml. That file reaches the wheel builds, so a change to it can alter what the Python extension compiles with and trigger no Python job.
The reason it reaches them is that python/.cargo/config.toml duplicates rather than replaces the root file. Cargo merges configuration from the directory hierarchy, so a python-rooted build reads both, and any key the sibling does not set comes from the root. The x86 rustflags line is set in both, which is why this has not bitten yet, but the root file also carries [profile.release], release-with-debug and release-no-lto, none of which the sibling defines.
It went unnoticed on #8754 because that pull request changed both files together, so python/** matched and the Python jobs ran. A root-only edit would not.
Same class as #8867, which adds the two missing entries to rust.yml, but a different workflow, so it wants its own one-line change: add .cargo/config.toml to python.yml's filter.
python.yml'spull_requestpaths:filter hasCargo.*andpython/**, but no entry for the repository-root.cargo/config.toml. That file reaches the wheel builds, so a change to it can alter what the Python extension compiles with and trigger no Python job.The reason it reaches them is that
python/.cargo/config.tomlduplicates rather than replaces the root file. Cargo merges configuration from the directory hierarchy, so apython-rooted build reads both, and any key the sibling does not set comes from the root. The x86 rustflags line is set in both, which is why this has not bitten yet, but the root file also carries[profile.release],release-with-debugandrelease-no-lto, none of which the sibling defines.It went unnoticed on #8754 because that pull request changed both files together, so
python/**matched and the Python jobs ran. A root-only edit would not.Same class as #8867, which adds the two missing entries to
rust.yml, but a different workflow, so it wants its own one-line change: add.cargo/config.tomltopython.yml's filter.