gengliangwang opened a new pull request, #56152: URL: https://github.com/apache/spark/pull/56152
### What changes were proposed in this pull request? Splits the `core, unsafe, kvstore, avro, utils, utils-java, network-common, network-shuffle, repl, launcher, examples, sketch, variant` build matrix entry in `build_and_test.yml` into two: - `core, unsafe, kvstore, utils, utils-java, network-common, network-shuffle, sketch, variant, launcher` — foundational modules under `common/` (plus `launcher/`) whose only dependency is `tags`. - `avro, repl, examples` — modules that are transitive dependents of `sql`/`hive` and naturally need to run when those change. Adds a new `build-core-utils` precondition (computed via `is-changed.py` against just the foundational module list) and a matrix `exclude` rule that drops the first entry when `build-core-utils == 'false'`. The check is opt-out: missing/unset means run, so periodic full-build workflows that only set `"build": "true"` continue to run this entry unchanged. ### Why are the changes needed? Today, any PR that triggers the `build` job runs every matrix entry, including the foundational core/utils group, even when the PR only touches SQL or PySpark code. Because `is-changed.py` propagates changes forward (to dependents), SQL/PySpark changes never make core/utils tests stale, so the runner spend is wasted. After this change: - SQL-only / PySpark-only PR → `build-core-utils=false` → the core/utils runner is skipped. The `avro, repl, examples` runner still fires because those modules are transitive dependents of `sql`/`hive`. - Core/utils PR → `build-core-utils=true` → entry runs as before. - Periodic full-build workflows (e.g. `build_java21.yml`) → no `build-core-utils` key, opt-out semantics keeps the entry running. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Validated the workflow YAML parses and that the literal string used in the `exclude` expression matches the matrix entry string exactly (so the exclude rule actually fires). ### Was this patch authored or co-authored using generative AI tooling? Generated-by: 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]
