Apache release policy does not allow binary files in source releases, and in particular not JAR files. Calcite and Avatica source code includes the Gradle wrapper, which requires gradle/wrapper/gradle-wrapper.jar. The policy exempts a few build tools, but the Gradle wrapper is not among them. A request to expand the list (see
LEGAL-288) was denied.
In my opinion, the list should be expanded to include gradle-wrapper.jar, but that is not current policy.
I propose to solve this by removing the Gradle wrapper from the source distribution and amending site/_docs/howto.md to explain that people building from a source distribution (not from Git) need to install a particular version of Gradle first. The list of files to be removed from the source distribution is as follows:
These files would not be removed from Git.
In future, anyone upgrading Gradle would also need to edit the version in site/_docs/howto.md.
OFBIZ-10145 is another solution to this problem. In my opinion, it is an inferior solution for our case. It is more complicated for people building from Git, and would require us to maintain the shell scripts that replace the functionality of gradle-wrapper.jar.)
This change needs to be applied to both Calcite and Avatica.