rdblue opened a new pull request, #16163:
URL: https://github.com/apache/iceberg/pull/16163

   This removes the Open API runtime Jar from build and deploy.
   
   This Jar was added by #11279. This is an alternative to recent PRs that are 
attempting to fix the LICENSE and NOTICE documentation, #15872 and #16143.
   
   Looking at that PR, the original runtime was about 50 MB, with a 100+ MB 
version that was rejected for having too much bundled. The Jar is now 4x 
larger: 200+ MB.
   
   I'm not confident that the original LICENSE and NOTICE were handled 
correctly; they were auto-generated from license-report, but had to be merged 
with the root and had a [LGPL 
dependency](https://github.com/apache/iceberg/pull/11279#issuecomment-2442559693)
 at some point. I also don't think that the LICENSE was ever thoroughly 
checked. [One 
comment](https://github.com/apache/iceberg/pull/11279#issuecomment-2446974737) 
says "I did some checking and didn't find any red flags" but it doesn't look 
like there was a thorough review.
   
   Rather than minimizing dependencies and reviewing the LICENSE and NOTICE 
content, I think that this artifact should be removed from the build.
   
   If I understand correctly, it was created in order to build a Docker image 
(#11283), but a Docker image doesn't require a runtime Jar. It just needs a 
`lib/` directory with the necessary dependencies, which is a better way to 
distribute transitive dependencies with their own license documentation.
   
   I also don't think that there is a reasonable use for this runtime Jar. 
Runtime Jars are a substantial amount of work -- to minimize dependencies and 
document them -- and we produce runtime Jars when it is a big help to 
downstream users. For example, adding Iceberg to Spark is much, much easier. We 
do not distribute runtime Jars for downstream projects that use build systems.
   
   Because this is integration test code, we can reasonably assume that the 
downstream consumers are using a build system and are able to use that to 
maintain their own version-managed classpath. This is also test code because we 
decided not to distribute an example REST service implementation in the project.
   
   I think that this runtime Jar should be removed. Projects using it for 
testing can use their builds to integrate it and produce the classpath. We may 
want a Docker image for cross-project testing within the Iceberg community, but 
that should be built differently.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to