Hi,

I've started Maven -> Gradle for Avatica:
https://github.com/apache/calcite-avatica/pull/104
Feedback is very welcome.
Note: the same is coming for Calcite, so you'd better try it sooner than
later :)

Gradle project builds, loads into IDEA. It runs checkstyle/forbiddenapis.
The build file automatically configures ASF copyright headers in IDEA.


One of the issues is Avatica bundles third-party code in jar files. That
requires to retain relevant license/notice files.

The approach with Maven was "hand-bake LICENSE file manually"
The approach I suggest is discover licenses from jar and pom files.

Here are the relevant Gradle tasks (getLicenses and license):
https://github.com/vlsi/calcite-avatica/blob/gradle/shaded/core/build.gradle.kts#L53-L68

Below you can find the result of those tasks.

I have a couple of questions:
1) Is everybody OK with that format?
2) I'm not sure where to include *bundled* LICENSE/NOTICE files.
Any thoughts/opinions on how third-party license texts should be included
into Avatica?

For instance, avatica-shaded.jar bundles slf4j-api, thus it must bundle its
LICENSE file.
Current Maven build just FAILS to include slf4j-api copyright header, thus
it basically violates slf4j-api MIT license.

I see two options:
2.1) Put license files under
META-INF/LICENSES/${group}_${artifact}_${version} folders
2.2) Concatenate all the license and NOTICE files into a single
META-INF/LICENSE file.

....
Apache 2.0 license text
....
   END OF TERMS AND CONDITIONS

- Software produced at the ASF which is available under AL 2.0 (as above)

Apache-2.0
* commons-codec:commons-codec:1.10
* commons-logging:commons-logging:1.2
* org.apache.httpcomponents:httpclient:4.5.6
* org.apache.httpcomponents:httpcore:4.4.10

- Software produced outside the ASF which is available under AL 2.0 (as
above)

Apache-2.0
* com.fasterxml.jackson.core:jackson-annotations:2.9.8
* com.fasterxml.jackson.core:jackson-core:2.9.8
* com.fasterxml.jackson.core:jackson-databind:2.9.8

- Software produced outside the ASF which is available under other licenses
(not AL 2.0)

BSD-3-Clause
* com.google.protobuf:protobuf-java:3.6.1

MIT
* org.slf4j:slf4j-api:1.7.25


Vladimir

Reply via email to