I just mergedĀ https://github.com/apache/spark/pull/10461, a PR that adds new automated tooling to help us reason about dependency changes in Spark. Here's a summary of the changes:
The goal of this change is to make it simpler to reason about build changes: it should now be much easier to verify whether dependency exclusions worked properly or determine whether transitive dependencies changed in a way that affects the final classpath.

Let me know if you have any questions about this change and, as always, feel free to submit pull requests if you would like to make any enhancements to this script.