Since we have been migrating to using vendoring instead of shading[1] and
due to previous efforts in vendoring[2, 3] I have opened up PR 8762[4]
which migrates all projects that weren't doing anything shading wise to not
perform any shading. This required me to fix up all intra project
dependencies and release publishing.

The following is a list of all project paths which are still using shading
for some reason:
model/*
sdks/java/core
sdks/java/extensions/kryo
sdks/java/extensions/sql
sdks/java/extensions/sql/jdbc
sdks/java/harness
runners/spark/job-server
runners/direct-java
runners/samza/job-server
runners/google-cloud-dataflow-java/worker
runners/google-cloud-dataflow-java/worker/legacy-worker
runners/google-cloud-dataflow-java/worker/windmill
vendor/*

Out of the list above, migrating sdks/java/core and runners/direct-java (in
that order) would provide the most benefit to moving away from shading
within our project. Many of the others are either shaded proto classes or
applications (e.g. job-servers, harness, sql jdbc) and either require
shading to be compatible with vendoring or aren't meant to be used as
dependencies.

Since this is a larger change that cuts across so many projects there is
risk for breakage. I'm looking for people to help test the change and
validate any scenarios that they are specifically interested in. I'm
planning to run several of the postcommits on my PR and check that we can
build a release in addition to any efforts others provide before looking to
have the change merged.

The following guidance should help those who edit Gradle build files (after
this change is merged):
* For projects that don't perform any shading, those projects have been
migrated to use the default configurations that the Gradle Java plugin
uses[5]. Note that the default configurations we use have been deprecated.
* For projects that depend on another project that isn't shaded, the intra
project configuration has been swapped to use compile / testRuntime instead
of shadow and shadowTest
* Existing projects that are still shaded should use the shadow and
shadowTest configurations as before.

1:
https://lists.apache.org/thread.html/4c12db35b40a6d56e170cd6fc8bb0ac4c43a99aa3cb7dbae54176815@%3Cdev.beam.apache.org%3E
2:
https://lists.apache.org/thread.html/4c12db35b40a6d56e170cd6fc8bb0ac4c43a99aa3cb7dbae54176815@%3Cdev.beam.apache.org%3E
3:
https://lists.apache.org/thread.html/972b5175641f4eaf7ec92870cc0ff72fa52e6f0bbaccc384a3814e45@%3Cdev.beam.apache.org%3E
4: https://github.com/apache/beam/pull/8762
5:
https://docs.gradle.org/current/userguide/java_plugin.html#sec:java_plugin_and_dependency_management

Reply via email to