It has been several weeks without objection (or reply) to this from multiple raisings, I'll be looking to do it next week if discussion doesnt lead otherwise.
On Thu, 8 Sept 2022 at 15:35, Robbie Gemmell <robbie.gemm...@gmail.com> wrote: > > I'd like to raise again the middle-ground of removing these > partially-shaded uber jars from the assembly. > > I think it would be better for all the folks who dont use them, > removing the triple duplication of half the deps in the assembly, and > yet also simple for the folks that do use them as they can still > easily grab the artifact directly without having to download the > broker and 2 other clients they dont want. E.g when Clebert added the > updated generateddocs around client classpath [1] I tweaked the docs > to include a note of being able to grab these -all artifacts from > Maven Central. > > [1] > https://activemq.apache.org/components/artemis/documentation/latest/client-classpath.html > > On Mon, 8 Aug 2022 at 12:00, Robbie Gemmell <robbie.gemm...@gmail.com> wrote: > > > > Not shading them makes the likelihood of clashing-dependencies worse, > > i.e that another component being used with it might use (or itself > > similarly include) a different version of something being ubered > > without shading, leading to potential for a broken classpath that > > manifests either very explicitly or in strange unseen ways. Thats what > > made netty drop their uber jar, as mixed use of the -all and > > individual netty deps of different versions by different components > > would routinely cause clashes due to not being alignable by tooling. > > As it happens, the -all client jars are apparently not shading netty, > > so nothing else using netty can currently be used along with them > > without risking a broken classpath. Which is harder to see and resolve > > since netty is hidden away inside the jar. > > > > In short, if not shading anything, to me that makes it seem there > > would be even less point in having them at all (it being even simpler > > for folks to build their own non-shaded uber jar than a shaded one), > > and even more likelihood it causes people using them problems. > > > > I mentioned it already in my other replym but adding a quick note now > > too as it relates...regardless whats done here I think we should > > remove them from the assembly, it would be better for those not using > > them and simple for those doing so. > > > > On Mon, 1 Aug 2022 at 15:59, Clebert Suconic <clebert.suco...@gmail.com> > > wrote: > > > > > > I would be fine to keep the *all clients (given I don't see a > > > consensus here), however the issue I see is with the shading and class > > > renaming. > > > > > > > > > if users don't want to use maven and just use our *all clients, they > > > should not mix with other classes and assure all risks. Right now we > > > shade these jars and we don't really test if there's anything wrong > > > with the transformations. > > > > > > We now have improved the documentation a little bit, and we should > > > perhaps just stop shading jars.. just keep everything as they are on > > > the uber jar. > > > > > > On Mon, Aug 1, 2022 at 10:58 AM Clebert Suconic > > > <clebert.suco...@gmail.com> wrote: > > > > > > > > I just sent a PR that will update the client classPath and generate the > > > > client dependencies with a maven plugin that I just wrote: > > > > > > > > https://github.com/apache/activemq-artemis/pull/4162 > > > > > > > > On Fri, Jul 29, 2022 at 12:54 PM Arthur Naseef <a...@amlinv.com> wrote: > > > > > > > > > > Making use simple for users is a good thing. On the other hand, > > > > > there are > > > > > a lot of target environments that could use different tweaks. Our > > > > > dependency-management tool is maven. > > > > > > > > > > If folks want to work outside of maven, that's their choice, but then > > > > > dependency management becomes a problem for that case. > > > > > > > > > > Is it worth the effort, and added complexity, to maintain the uber > > > > > jar? > > > > > > > > > > Art > > > > > > > > > > On Wed, Jul 27, 2022 at 7:57 AM Michael André Pearce > > > > > <michael.andre.pea...@me.com.invalid> wrote: > > > > > > > > > > > So as the person who added the shaded jars, this was a requirement > > > > > > to make > > > > > > it far easier for those who DO NOT use tools like maven to be able > > > > > > to build > > > > > > an application without having to copy a large dependency tree of > > > > > > libs, > > > > > > which yes for maven or gradle is fine as they handle the dependency > > > > > > tree, > > > > > > as those tools do this. But unfortunately we don't live in a > > > > > > perfect world, > > > > > > and providing the shaded allows those users to use the client. > > > > > > > > > > > > Im happy to look at why moving logging to slf4j brings an issue, im > > > > > > unsure > > > > > > why it does tbh, its just another lib, and as long as you shade > > > > > > correctly > > > > > > it should be fine, ive seen it shaded in many other projects. > > > > > > > > > > > > With this i am going on leave for a bit, so unlikely i will get to > > > > > > have a > > > > > > look at it for a week or two. > > > > > > > > > > > > Best > > > > > > Mike > > > > > > > > > > > > On 26 Jul 2022, at 21:44, Justin Bertram <jbert...@apache.org> > > > > > > wrote: > > > > > > > > > > > > > > > > > > To be clear, the documentation already exists [1]. It just needs to > > > > > > be > > > > > > updated with the aforementioned details when the uber jars are > > > > > > removed. > > > > > > > > > > > > > > > > > > Justin > > > > > > > > > > > > [1] > > > > > > > > > > > > https://activemq.apache.org/components/artemis/documentation/latest/client-classpath.html > > > > > > > > > > > > On Tue, Jul 26, 2022 at 3:39 PM Clebert Suconic > > > > > > <clebert.suco...@gmail.com > > > > > > > > > > > > > wrote: > > > > > > > > > > > > sure, of course we need to update the docs in relation to anything > > > > > > these removed jars. What I meant was we need to document the jars > > > > > > that > > > > > > are required independently of removing the jars.. if someone wants > > > > > > to > > > > > > use the client jars the client dependency should be documented > > > > > > anyway. > > > > > > that's what I meant > > > > > > > > > > > > On Tue, Jul 26, 2022 at 3:25 PM Justin Bertram <jbert...@apache.org> > > > > > > wrote: > > > > > > > > > > > > > > I'm not sure what you mean by "independent issue." If we remove > > > > > > > the uber > > > > > > > jars then the docs have to be updated. The two things are directly > > > > > > related, > > > > > > > right? > > > > > > > > > > > > > > > > > > > > > Justin > > > > > > > > > > > > > > On Tue, Jul 26, 2022 at 2:13 PM Clebert Suconic < > > > > > > clebert.suco...@gmail.com> > > > > > > > wrote: > > > > > > > > > > > > > > > I think that’s an independent issue. The doc would need to be > > > > > > > > updated > > > > > > > > anyways. > > > > > > > > > > > > > > > > On Tue, Jul 26, 2022 at 2:40 PM Justin Bertram > > > > > > > > <jbert...@apache.org> > > > > > > > > wrote: > > > > > > > > > > > > > > > > > Yes, the documentation needs to be clear. This is a usability > > > > > > > > > issue. > > > > > > > > > > > > > > > > > > Even if you did a "mvn dependency:list" you'd get a list > > > > > > > > > including > > > > > > > > optional > > > > > > > > > and test dependencies. Also, there would be potentially > > > > > > > > > unnecessary > > > > > > > > > dependencies (e.g. netty-transport-native-kqueue even if you > > > > > > > > > aren't > > > > > > on a > > > > > > > > > Mac). > > > > > > > > > > > > > > > > > > > > > > > > > > > Justin > > > > > > > > > > > > > > > > > > On Tue, Jul 26, 2022 at 1:30 PM Clebert Suconic < > > > > > > > > clebert.suco...@gmail.com > > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > the pom on artemis-core-client, artemis-jms-client, and > > > > > > > > > > artemis-jakarta-client... They will include all the needed > > > > > > > > > > dependencies, right? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > what is the issue? to have a clear text on the docs? > > > > > > > > > > > > > > > > > > > > On Tue, Jul 26, 2022 at 2:01 PM Justin Bertram < > > > > > > jbert...@apache.org> > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > The original impetus for the uber jar was ARTEMIS-1129. > > > > > > > > > > > The issue > > > > > > > > there > > > > > > > > > > was > > > > > > > > > > > that it wasn't clear what jars were needed on the client. > > > > > > > > > > > If we > > > > > > > > remove > > > > > > > > > > the > > > > > > > > > > > uber jars then we need to update the documentation to make > > > > > > crystal > > > > > > > > > clear > > > > > > > > > > > what jars are needed on the client, including details > > > > > > > > > > > about what > > > > > > jars > > > > > > > > > may > > > > > > > > > > > be optional depending on which functionality the client > > > > > > > > > > > uses. > > > > > > > > > > > > > > > > > > > > > > I'm not necessarily against it, but removing the uber jar > > > > > > > > > > > is > > > > > > probably > > > > > > > > > > going > > > > > > > > > > > to sting for a handful of users. Anything we can do to > > > > > > > > > > > alleviate > > > > > > that > > > > > > > > > > will > > > > > > > > > > > help. Maybe we could generate a text file in lib/client > > > > > > > > > > > instead > > > > > > of > > > > > > > > the > > > > > > > > > > uber > > > > > > > > > > > jars to help users who expect them to be there. The text > > > > > > > > > > > could > > > > > > list > > > > > > > > the > > > > > > > > > > > jars required for the client's classpath. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Justin > > > > > > > > > > > > > > > > > > > > > > [1] https://issues.apache.org/jira/browse/ARTEMIS-1129 > > > > > > > > > > > > > > > > > > > > > > On Tue, Jul 26, 2022 at 8:40 AM Clebert Suconic < > > > > > > > > > > clebert.suco...@gmail.com> > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > We currently deploy these following shaded uber jars > > > > > > > > > > > > with > > > > > > ActiveMQ > > > > > > > > > > Artemis. > > > > > > > > > > > > > > > > > > > > > > > > artemis-jms-client-all > > > > > > > > > > > > artemis-core-client-all > > > > > > > > > > > > artemis-jakarta-client-all > > > > > > > > > > > > > > > > > > > > > > > > We are in the process of removing jboss-logging, and > > > > > > > > > > > > replacing > > > > > > it > > > > > > > > by > > > > > > > > > > > > SLF4j /LOG4J on a separate branch, and we will probably > > > > > > > > > > > > make a > > > > > > > > switch > > > > > > > > > > > > on the branch as 3.0. > > > > > > > > > > > > > > > > > > > > > > > > I never really liked these shaded jars as part of the > > > > > > > > distribution. I > > > > > > > > > > > > would be inclined to remove them on a switch for 3.0 > > > > > > > > > > > > anyways, > > > > > > and > > > > > > > > now > > > > > > > > > > > > we are having a build issue, > > > > > > > > > > > > as they will fail (on a second build) shading > > > > > > > > apache-commons-logging: > > > > > > > > > > > > > > > > > > > > > > > > ERROR] Failed to execute goal > > > > > > > > > > > > org.apache.maven.plugins:maven-shade-plugin:3.3.0:shade > > > > > > (default) > > > > > > > > on > > > > > > > > > > > > project artemis-core-client-all: Error creating shaded > > > > > > > > > > > > jar: > > > > > > > > duplicate > > > > > > > > > > > > entry: META-INF/services/ > > > > > > org.apache.activemq.artemis.shaded.org > > > > > > > > > > > > .apache.commons.logging.LogFactory > > > > > > > > > > > > -> [Help 1] [ERROR] [ERROR] To see the full stack trace > > > > > > > > > > > > of the > > > > > > > > > > > > errors, re-run Maven with the -e switch. [ERROR] Re-run > > > > > > > > > > > > Maven > > > > > > using > > > > > > > > > > > > the -X switch to enable full debug logging. [ERROR] > > > > > > > > > > > > [ERROR] > > > > > > For > > > > > > > > more > > > > > > > > > > > > information about the errors and possible solutions, > > > > > > > > > > > > please > > > > > > read > > > > > > > > the > > > > > > > > > > > > following articles: [ERROR] [Help 1] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException > > > > > > > > > > > > [ERROR] [ERROR] After correcting the problems, you can > > > > > > > > > > > > resume > > > > > > the > > > > > > > > > > > > build with the command [ERROR] mvn <args> -rf > > > > > > > > > > > > :artemis-core-client-all > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Also, they add about 20MB to our distribution, and more > > > > > > > > > > > > 10MB > > > > > > for > > > > > > > > the > > > > > > > > > > > > core-client-all that's not on the distro but it is on > > > > > > > > > > > > maven > > > > > > repo. > > > > > > > > > > > > > > > > > > > > > > > > This is a common trend with other projects. Netty > > > > > > > > > > > > stopped > > > > > > > > producing a > > > > > > > > > > > > netty-all and is offering a pom. Jetty did the same > > > > > > > > > > > > thing.. and > > > > > > > > There > > > > > > > > > > > > are a lot of issues introduced by an "all client". > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > So, even though we could fix the build, these JARs are > > > > > > > > > > > > never > > > > > > tested > > > > > > > > > as > > > > > > > > > > > > part of the testsuite or anything.... It's like playing > > > > > > > > > > > > with > > > > > > the > > > > > > > > > > > > odds... and they are huge on the distribution as they > > > > > > > > > > > > will all > > > > > > > > > > > > include copies of Netty. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > I would really like to remove these JARs and I think it > > > > > > > > > > > > would > > > > > > be a > > > > > > > > > > > > great improvement to do so. > > > > > > > > > > > > > > > > > > > > > > > > These POMS are already defining all the dependencies > > > > > > > > > > > > anyway. > > > > > > Any > > > > > > > > user > > > > > > > > > > > > who wants to have a shaded jar would just be able to > > > > > > > > > > > > shade it > > > > > > > > > > > > themselves as part of their project. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > If anyone have a strong feeling about keeping them we > > > > > > > > > > > > would > > > > > > need: > > > > > > > > > > > > > > > > > > > > > > > > - your opinion (why we keep them on 3.0) > > > > > > > > > > > > - Help fixing the build on new-logging > > > > > > > > > > > > - Help with adding smoke tests for these jars. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > anyone? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > Clebert Suconic > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > Clebert Suconic > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > Clebert Suconic > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > Clebert Suconic > > > > > > > > > > > > -- > > > Clebert Suconic