PS Use of jmh was addressed explicitly:
https://issues.apache.org/jira/browse/LEGAL-399

On Fri, Dec 29, 2023 at 4:50 PM Julian Hyde <jh...@apache.org> wrote:
>
> According to https://issues.apache.org/jira/browse/LEGAL-450, it's OK
> to use a GPL linter. And a project can use GPL "build tools provided
> they leave no code traces (licensed under a cat X license) in your
> final release artifacts".
>
> In Calcite we use jmh on the understanding that it does not produce
> any artifacts and therefore was acceptable.
>
> Can someone explain how a benchmarking utility is different from a linter?
>
> Julian
>
> On Wed, Dec 27, 2023 at 9:19 AM tison <wander4...@gmail.com> wrote:
> >
> > > For instance, if your maven build is `-Pbenchmark` and it's clear
> > > that the user needs to include this license when compiling from source.
> >
> > Yeah. I'm going to collaborate with Fury to follow this approach and
> > document clearly how a developer can intentionally run benchmark with
> > JMH as a dep.
> >
> > Best,
> > tison.
> >
> > John D. Ament <johndam...@apache.org> 于2023年12月28日周四 01:07写道:
> > >
> > > On Wed, Dec 27, 2023 at 11:38 AM tison <wander4...@gmail.com> wrote:
> > >
> > > > > application, a developer has preinstalled the JDK (or using a manager 
> > > > > of
> > > > > some kind to install it - so not something we're forcing upon them).  
> > > > > In
> > > >
> > > > No. To running a Java Application in a normal way, the JRE is
> > > > required. Saying "not something we're forcing upon them" sounds
> > > > sophistry.
> > > >
> > > > Best,
> > > > tison.
> > > >
> > > > tison <wander4...@gmail.com> 于2023年12月28日周四 00:27写道:
> > > > >
> > > > > Hi John,
> > > > >
> > > > > Glad to hear your feedback. Reply inline:
> > > > >
> > > > > > In the case of JMH, the repository I linked above forces the user to
> > > > download
> > > > > > the additional dependency from maven central (or similar repository)
> > > > rather
> > > > > > than relying on the system preinstalled library.
> > > > >
> > > > > From a technical view, this is not true because you can download the
> > > > > libs manually and place them under MAVEN_HOME. Then it can be regarded
> > > > > as a "system preinstalled library". It's the same as download JDK and
> > > > > place them under JAVA_HOME.
> > > >
> > >
> > > Except that's not how these libraries are listed within your pom file.  If
> > > there was a step where you required a developer to download these files,
> > > what you're describing would be accurate, but they're downloaded in an
> > > automated fashion.  Keep in mind, this isn't the JMH that's distributed
> > > with the JDK that you're using here, it's an add-on library you're using.
> > >
> > >
> > > > >
> > > > > > you can't use org.openjdk.jmh:* as a compile/test compile
> > > > > > dependency in your project
> > > > >
> > > > > fury-benchmark is not released in binary form. But we can of course
> > > > > make it an optional dependency (or the entire module optionally)
> > > > > behind a profile and deactivated by default so that it's the same as
> > > > > how ASF projects can optionally depend on MySQL Connector Java under
> > > > > the same license.
> > > >
> > >
> > > The question here isn't about binary form.  Keep in mind that first and
> > > foremost ASF projects produce source code releases, the convenience
> > > binaries are a separate artifact.  I'm presently approaching your thread
> > > focused on the source code release.  I can see your point though and 
> > > that's
> > > where I'm suggesting asking legal may give you additional guidance that I
> > > could see leading to a similar situation as Java 9 JavaScript embeddings.
> > > Just keep in mind that you're making a module optional to compile, rather
> > > than optional to use, even though it's only being used for testing 
> > > purposes
> > > and our expectation (even though it may differ from reality) is that we're
> > > reviewing the contents of the source bundle that a user downloads to
> > > compile your code, not the binary artifact they depend upon in their
> > > projects.
> > >
> > >
> > > > >
> > > > > A related discussion can be found at [1].
> > > >
> > >
> > > Yes, and Hen's response is very appropriate to that situation.  It's not
> > > really relevant to your situation though since the concern in this thread
> > > is your source release, not binary release.  You can make something like
> > > this optional, and if you keep the benchmark as optional you should be 
> > > fine
> > > as well.  For instance, if your maven build is `-Pbenchmark` and it's 
> > > clear
> > > that the user needs to include this license when compiling from source.
> > >
> > >
> > > > >
> > > > > >> THEY MAY BE RELIED UPON WHEN THEY SUPPORT AN OPTIONAL FEATURE
> > > > > >> "Will the majority of users want to use my product without adding 
> > > > > >> the
> > > > optional components?"
> > > > >
> > > > > No. Benchmark is for testing; most users don't even know it and cannot
> > > > > depend on it as a Maven artifact.
> > >
> > > >
> > > > > P.S.
> > > > > > don't approach things as "TLP [x] does it this way so
> > > > > > it must be the preferred way"
> > > > > Yeah .. Even I don't think Flink did it correctly, this expression
> > > > > increases confusion. Most readers don't have the context to understand
> > > > > the referred case. I'll avoid it.
> > > > >
> > > > > Best,
> > > > > tison.
> > > > >
> > > > > [1] https://issues.apache.org/jira/browse/LEGAL-437
> > > > >
> > > > > John D. Ament <johndam...@apache.org> 于2023年12月27日周三 23:57写道:
> > > > > >
> > > > > > On Tue, Dec 26, 2023 at 8:09 PM tison <wander4...@gmail.com> wrote:
> > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > The new podling Fury depends on jmh[1] which is licensed under 
> > > > > > > GPLv2
> > > > > > > with "CLASSPATH" EXCEPTION.
> > > > > > >
> > > > > >
> > > > > > Just to confirm, are you referring to the code under [benchmark]?
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > IIRC Flink ever factored out its benchmark code into a separate 
> > > > > > > repo
> > > > > > > [2] to comply with ASF's license policy [3].
> > > > > > >
> > > > > >
> > > > > > As a word of caution, don't approach things as "TLP [x] does it this
> > > > way so
> > > > > > it must be the preferred way"
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > But since Fury doesn't modify jmh's code, just refers to some
> > > > > > > "org.openjdk.jmh." classes, I wonder if it's the same that a Java
> > > > > > > source file refers to JDK's classes under GPLv2 with "CLASSPATH"
> > > > > > > EXCEPTION.
> > > > > > >
> > > > > > > Or, we can exclude the benchmark code from the release like [4] 
> > > > > > > but
> > > > > > > still hold it in the VCS.
> > > > > > >
> > > > > >
> > > > > > There's a difference between the GPL+CPE Cat X ruling we list on our
> > > > > > license website and how you're using JMH.  When it comes to a Java
> > > > > > application, a developer has preinstalled the JDK (or using a 
> > > > > > manager
> > > > of
> > > > > > some kind to install it - so not something we're forcing upon them).
> > > > In
> > > > > > the case of JMH, the repository I linked above forces the user to
> > > > download
> > > > > > the additional dependency from maven central (or similar repository)
> > > > rather
> > > > > > than relying on the system preinstalled library.
> > > > > >
> > > > > > It's probably worth a question to legal, but I'm inclined to believe
> > > > the
> > > > > > answer is no, you can't use org.openjdk.jmh:* as a compile/test 
> > > > > > compile
> > > > > > dependency in your project but would be happy to be wrong about 
> > > > > > that.
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > Best,
> > > > > > > tison.
> > > > > > >
> > > > > > > [1] https://github.com/openjdk/jmh?tab=GPL-2.0-1-ov-file
> > > > > > > [2] https://github.com/apache/flink-benchmarks
> > > > > > > [3] https://www.apache.org/legal/resolved.html
> > > > > > > [4]
> > > > https://github.com/apache/incubator-opendal/blob/main/.gitattributes
> > > > > >
> > > > > >
> > > > > > [benchmark]:
> > > > > > https://github.com/apache/incubator-fury/tree/main/java/fury-benchmark
> > > > > >
> > > > > >
> > > > > > >
> > > > > > >
> > > > > > > ---------------------------------------------------------------------
> > > > > > > To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
> > > > > > > For additional commands, e-mail: general-h...@incubator.apache.org
> > > > > > >
> > > > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
> > > > For additional commands, e-mail: general-h...@incubator.apache.org
> > > >
> > > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
> > For additional commands, e-mail: general-h...@incubator.apache.org
> >

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org

Reply via email to