Nice!

Do you have a PR open? Let's get this change in immediately.

This is probably the root cause of the flood of failures in
https://issues.apache.org/jira/browse/BEAM-5035 /
https://issues.apache.org/jira/browse/BEAM-5207 /
https://issues.apache.org/jira/browse/BEAM-5116 that led to us disabling
parallel builds.

I've been slowly working towards two other independently useful changes
that I hoped would help ((1) don't depend on test jars and (2) vendor
dependencies so we just don't shade at all). Your solution will get us a
fast build sooner.

Kenn

On Sun, Oct 28, 2018 at 9:57 AM Michael Luckey <adude3...@gmail.com> wrote:

> Hi,
>
> currently we bundle our tests within packageTests task [1] and
> additionally create a shadowed version with shadowTestJar.
>
> Unfortunately both task build the jar with the same classifier, which
> results in each task overwriting the others output,  preventing any
> up-to-date checks from working.
>
> Changing the build slightly to produce different artifacts
>
> ---
> a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
>
> +++
> b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
>
> @@ -588,7 +588,7 @@ class BeamModulePlugin implements Plugin<Project> {
>
>
>
>        // Ensure that tests are packaged and part of the artifact set.
>
>        project.task('packageTests', type: Jar) {
>
> -        classifier = 'tests'
>
> +        classifier = 'tests-unshaded'
>
>          from project.sourceSets.test.output
>
>        }
>
>        project.artifacts.archives project.packageTests
>
> and so enabling up-to-date checking cuts build time [3] to half (on a
> build ignoring python/go/website where up-to-date checks currently do not
> work anyway) [4].
>
> As I currently do not fully understand all consequences, I am wondering,
> whether we could apply that simple fix or wether there is some hidden
> magic, which relies on both artifacts be named the same.
>
> Anyone able to provide further insights here?
>
> Thx,
>
> michel
>
>
> [1]
> https://github.com/apache/beam/blob/master/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy#L609-L614
> [2]
> https://github.com/apache/beam/blob/master/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy#L766-L780
> [3]
> Profiled build: -x :beam-sdks-python:build -x :beam-sdks-go:build -x
> :beam-website:build build
> DescriptionDuration
> Total Build Time 1m28.94s
> Startup 1.657s
> Settings and BuildSrc 1.870s
> Loading Projects 0.035s
> Configuring Projects 4.565s
> Task Execution 1m17.11s
> [4]
> Profiled build: -x :beam-sdks-python:build -x :beam-sdks-go:build -x
> :beam-website:build build
>
> DescriptionDuration
> Total Build Time 46.781s
> Startup 1.633s
> Settings and BuildSrc 2.004s
> Loading Projects 0.061s
> Configuring Projects 4.883s
> Task Execution 34.121s
>
>
>
>

Reply via email to