I was unaware that users would use multiple versions of Apache Beam on the classpath at the same time. In that case I don't believe shading is something that will be there number one problem since we don't have a stable API surface between internal Apache Beam components.
For users who aren't using multiple Apache Beam packages, I would not expect non Apache Beam packages to ever export anything underneath the org.apache.beam package namespace. Also, I did add tooling to our build process to make sure that we only release classes underneath the org.apache.beam package namespace with the validateShadedJarDoesntLeakNonOrgApacheBeamClasses[1] task. 1: https://github.com/apache/beam/blob/a3f6f7e3b147f5a65e5b419d9baf24b35750974b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy#L751 Romain, I think this is something we could continue outside of the release thread. Feel free to start a new thread or follow up on Slack. On Tue, Sep 11, 2018 at 2:48 PM Romain Manni-Bucau <rmannibu...@gmail.com> wrote: > I understand Lukasz but it makes using shades properly pretty impossible > since this warning is not just something you can ignore but something you > have to fix since it can hide bugs. I get the "it is ok while you have a > single beam version" point but why would you get only beam in your > classpath, from the moment you use an IO it is not true anymore so this > warning is key to ensure your deployment is under control. In general you > accept something which fits the screen (like 20 overlapping classes or so) > but having 6600 classes to check is way more than something which would be > done just by a quick visual check. It requires you to add tooling on top of > it which is not really good overall. Wonder if it wouldn't be better to > revert that if it can't be completed short term and reapplied when possible > (probably using a working branch). > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> | Blog > <https://rmannibucau.metawerx.net/> | Old Blog > <http://rmannibucau.wordpress.com> | Github > <https://github.com/rmannibucau> | LinkedIn > <https://www.linkedin.com/in/rmannibucau> | Book > <https://www.packtpub.com/application-development/java-ee-8-high-performance> > > > Le mar. 11 sept. 2018 à 23:41, Lukasz Cwik <lc...@google.com> a écrit : > >> Romain, the beam-model-fn-execution-2.7.0.jar, >> beam-model-job-management-2.7.0.jar, beam-model-pipeline-2.7.0.jar have >> duplicates of the same classes to satisfy their dependencies (gRPC and >> protobuf and their transitive dependencies). Producing a separate artifact >> is still not done to prevent the message that your describing and other >> then size of jars, that message is benign in this case. >> >> Note that much of our vendoring goal that the community had discussed and >> agreed upon is still not unfinished, for example Guava: >> https://issues.apache.org/jira/browse/BEAM-3608 >> >> >> >> On Tue, Sep 11, 2018 at 2:29 PM Romain Manni-Bucau <rmannibu...@gmail.com> >> wrote: >> >>> BTW, did you notice that doing a shade now logs something like: >>> >>> [WARNING] beam-model-fn-execution-2.7.0.jar, >>> beam-model-job-management-2.7.0.jar, beam-model-pipeline-2.7.0.jar define >>> 6660 overlapping classes: >>> [WARNING] - >>> org.apache.beam.vendor.netty.v4.io.netty.handler.codec.http.HttpClientCodec$1 >>> [WARNING] - >>> org.apache.beam.vendor.guava.v20.com.google.common.util.concurrent.AggregateFutureState$SafeAtomicHelper >>> [WARNING] - >>> org.apache.beam.vendor.netty.v4.io.netty.util.concurrent.DefaultFutureListeners >>> [WARNING] - >>> org.apache.beam.vendor.netty.v4.io.netty.handler.ssl.OpenSslSessionContext$1 >>> [WARNING] - >>> org.apache.beam.vendor.netty.v4.io.netty.handler.ssl.Java9SslUtils$4 >>> [WARNING] - >>> org.apache.beam.vendor.guava.v20.com.google.common.collect.ImmutableMultimap$Builder >>> [WARNING] - >>> org.apache.beam.vendor.netty.v4.io.netty.handler.codec.spdy.SpdyHeaders >>> [WARNING] - >>> org.apache.beam.vendor.protobuf.v3.com.google.protobuf.DescriptorProtos$FieldDescriptorProtoOrBuilder >>> [WARNING] - >>> org.apache.beam.vendor.guava.v20.com.google.common.collect.AbstractMultimap >>> [WARNING] - >>> org.apache.beam.vendor.guava.v20.com.google.common.io.BaseEncoding$3 >>> [WARNING] - 6650 more... >>> >>> Looks like the new shading policy impl was merged a bit too fast ;) >>> >>> Romain Manni-Bucau >>> @rmannibucau <https://twitter.com/rmannibucau> | Blog >>> <https://rmannibucau.metawerx.net/> | Old Blog >>> <http://rmannibucau.wordpress.com> | Github >>> <https://github.com/rmannibucau> | LinkedIn >>> <https://www.linkedin.com/in/rmannibucau> | Book >>> <https://www.packtpub.com/application-development/java-ee-8-high-performance> >>> >>> >>> Le mar. 11 sept. 2018 à 21:42, Jean-Baptiste Onofré <j...@nanthrax.net> a >>> écrit : >>> >>>> I'm taking the Spark runner one. >>>> >>>> Regards >>>> JB >>>> >>>> On 11/09/2018 21:15, Ahmet Altay wrote: >>>> > Could anyone else help with looking at these issues earlier? >>>> > >>>> > On Tue, Sep 11, 2018 at 12:03 PM, Romain Manni-Bucau >>>> > <rmannibu...@gmail.com <mailto:rmannibu...@gmail.com>> wrote: >>>> > >>>> > Im running this main [1] through this IT [2]. Was working fine >>>> since >>>> > ~1 year but 2.7.0 broke it. Didnt investigate more but can have a >>>> > look later this month if it helps. >>>> > >>>> > [1] >>>> > >>>> https://github.com/Talend/component-runtime/blob/master/component-runtime-beam/src/it/serialization-over-cluster/src/main/java/org/talend/sdk/component/beam/it/clusterserialization/Main.java >>>> > < >>>> https://github.com/Talend/component-runtime/blob/master/component-runtime-beam/src/it/serialization-over-cluster/src/main/java/org/talend/sdk/component/beam/it/clusterserialization/Main.java >>>> > >>>> > [2] >>>> > >>>> https://github.com/Talend/component-runtime/blob/master/component-runtime-beam/src/it/serialization-over-cluster/src/test/java/org/talend/sdk/component/beam/it/SerializationOverClusterIT.java >>>> > < >>>> https://github.com/Talend/component-runtime/blob/master/component-runtime-beam/src/it/serialization-over-cluster/src/test/java/org/talend/sdk/component/beam/it/SerializationOverClusterIT.java >>>> > >>>> > >>>> > Le mar. 11 sept. 2018 20:54, Charles Chen <c...@google.com >>>> > <mailto:c...@google.com>> a écrit : >>>> > >>>> > Romain: can you give more details on the failure you're >>>> > encountering, i.e. how you are performing this validation? >>>> > >>>> > On Tue, Sep 11, 2018 at 9:36 AM Jean-Baptiste Onofré >>>> > <j...@nanthrax.net <mailto:j...@nanthrax.net>> wrote: >>>> > >>>> > Hi, >>>> > >>>> > weird, I didn't have it on Beam samples. Let me try to >>>> > reproduce and I >>>> > will create the Jira. >>>> > >>>> > Regards >>>> > JB >>>> > >>>> > On 11/09/2018 11:44, Romain Manni-Bucau wrote: >>>> > > -1, seems spark integration is broken (tested with >>>> spark >>>> > 2.3.1 and 2.2.1): >>>> > > >>>> > > 18/09/11 11:33:29 WARN TaskSetManager: Lost task 0.0 in >>>> > stage 0.0 (TID 0, RMANNIBUCAU, executor 0): >>>> > java.lang.ClassCastException: cannot assign instance of >>>> > scala.collection.immutable.List$SerializationProxy to >>>> > fieldorg.apache.spark.rdd.RDD.org >>>> > <http://fieldorg.apache.spark.rdd.RDD.org> >>>> > <http://org.apache.spark.rdd.RDD.org >>>> > <http://org.apache.spark.rdd.RDD.org >>>> >>$apache$spark$rdd$RDD$$dependencies_ >>>> > of type scala.collection.Seq in instance of >>>> > org.apache.spark.rdd.MapPartitionsRDD >>>> > > at >>>> > >>>> >>>> java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2233) >>>> > > >>>> > > >>>> > > Also the issue Lukasz identified is important even if >>>> > workarounds can be >>>> > > put in place so +1 to fix it as well if possible. >>>> > > >>>> > > Romain Manni-Bucau >>>> > > @rmannibucau <https://twitter.com/rmannibucau >>>> > <https://twitter.com/rmannibucau>> | Blog >>>> > > <https://rmannibucau.metawerx.net/ >>>> > <https://rmannibucau.metawerx.net/>> | Old Blog >>>> > > <http://rmannibucau.wordpress.com >>>> > <http://rmannibucau.wordpress.com>> | Github >>>> > > <https://github.com/rmannibucau >>>> > <https://github.com/rmannibucau>> | LinkedIn >>>> > > <https://www.linkedin.com/in/rmannibucau >>>> > <https://www.linkedin.com/in/rmannibucau>> | Book >>>> > > >>>> > < >>>> https://www.packtpub.com/application-development/java-ee-8-high-performance >>>> > < >>>> https://www.packtpub.com/application-development/java-ee-8-high-performance >>>> >> >>>> > > >>>> > > >>>> > > Le lun. 10 sept. 2018 à 20:48, Lukasz Cwik >>>> > <lc...@google.com <mailto:lc...@google.com> >>>> > > <mailto:lc...@google.com <mailto:lc...@google.com>>> a >>>> > écrit : >>>> > > >>>> > > I found an issue where we are no longer packaging >>>> the >>>> > pom.xml within >>>> > > the artifact jars at >>>> > META-INF/maven/groupId/artifactId. More details >>>> > > in https://issues.apache.org/jira/browse/BEAM-5351 >>>> > <https://issues.apache.org/jira/browse/BEAM-5351>. I >>>> wouldn't >>>> > > consider this a blocker but it was an easy fix >>>> > > (https://github.com/apache/beam/pull/6358 >>>> > <https://github.com/apache/beam/pull/6358>) and users may >>>> > rely on the >>>> > > pom.xml. >>>> > > >>>> > > Should we recut the release candidate to include >>>> this? >>>> > > >>>> > > On Mon, Sep 10, 2018 at 4:58 AM Jean-Baptiste >>>> Onofré >>>> > > <j...@nanthrax.net <mailto:j...@nanthrax.net> >>>> > <mailto:j...@nanthrax.net <mailto:j...@nanthrax.net>>> wrote: >>>> > > >>>> > > +1 (binding) >>>> > > >>>> > > Tested successfully on Beam Samples. >>>> > > >>>> > > Thanks ! >>>> > > >>>> > > Regards >>>> > > JB >>>> > > >>>> > > On 07/09/2018 23:56, Charles Chen wrote: >>>> > > > Hi everyone, >>>> > > > >>>> > > > Please review and vote on the release >>>> > candidate #1 for the >>>> > > version >>>> > > > 2.7.0, as follows: >>>> > > > [ ] +1, Approve the release >>>> > > > [ ] -1, Do not approve the release (please >>>> > provide specific >>>> > > comments) >>>> > > > >>>> > > > The complete staging area is available for >>>> > your review, which >>>> > > includes: >>>> > > > * JIRA release notes [1], >>>> > > > * the official Apache source release to be >>>> > deployed to >>>> > > dist.apache.org <http://dist.apache.org> >>>> > <http://dist.apache.org> >>>> > > > <http://dist.apache.org> [2], which is >>>> signed >>>> > with the key with >>>> > > > fingerprint 45C60AAAD115F560 [3], >>>> > > > * all artifacts to be deployed to the Maven >>>> > Central >>>> > > Repository [4], >>>> > > > * source code tag "v2.7.0-RC1" [5], >>>> > > > * website pull request listing the release >>>> and >>>> > publishing the API >>>> > > > reference manual [6]. >>>> > > > * Java artifacts were built with Gradle 4.8 >>>> > and OpenJDK >>>> > > > 1.8.0_181-8u181-b13-1~deb9u1-b13. >>>> > > > * Python artifacts are deployed along with >>>> the >>>> > source release >>>> > > to the >>>> > > > dist.apache.org <http://dist.apache.org> >>>> > <http://dist.apache.org> >>>> > > <http://dist.apache.org> [2]. >>>> > > > >>>> > > > The vote will be open for at least 72 hours. >>>> > It is adopted by >>>> > > majority >>>> > > > approval, with at least 3 PMC affirmative >>>> votes. >>>> > > > >>>> > > > Thanks, >>>> > > > Charles >>>> > > > >>>> > > > [1] >>>> > > > >>>> > > >>>> > >>>> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12343654 >>>> > < >>>> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12343654 >>>> > >>>> > > > [2] >>>> > https://dist.apache.org/repos/dist/dev/beam/2.7.0 >>>> > <https://dist.apache.org/repos/dist/dev/beam/2.7.0> >>>> > > > [3] >>>> > https://dist.apache.org/repos/dist/dev/beam/KEYS >>>> > <https://dist.apache.org/repos/dist/dev/beam/KEYS> >>>> > > > [4] >>>> > > >>>> > >>>> https://repository.apache.org/content/repositories/orgapachebeam-1046/ >>>> > < >>>> https://repository.apache.org/content/repositories/orgapachebeam-1046/> >>>> > > > [5] >>>> > https://github.com/apache/beam/tree/v2.7.0-RC1 >>>> > <https://github.com/apache/beam/tree/v2.7.0-RC1> >>>> > > > [6] >>>> > https://github.com/apache/beam-site/pull/549 >>>> > <https://github.com/apache/beam-site/pull/549> >>>> > > >>>> > > -- >>>> > > Jean-Baptiste Onofré >>>> > > jbono...@apache.org <mailto:jbono...@apache.org> >>>> > <mailto:jbono...@apache.org <mailto:jbono...@apache.org>> >>>> > > http://blog.nanthrax.net >>>> > > Talend - http://www.talend.com >>>> > > >>>> > >>>> > >>>> >>>