apache / arrow

Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics
https://arrow.apache.org/
Apache License 2.0
14.62k stars 3.55k forks source link

[Java] Provide reproducible builds #39214

Open jbonofre opened 11 months ago

jbonofre commented 11 months ago

Describe the enhancement requested

Currently, our provided artifacts are not reproducible, meaning that two builds provide different artifacts.

Reproducible builds, also known as deterministic compilation, is a process of compiling software which ensures the resulting binary code can be reproduced. Source code compiled using deterministic compilation will always output the same binary.

In order to have reproducible builds, we need to add a property (with fixed compile output timestamp) and be sure we use the maven plugins version compliant with reproducible builds.

Component(s)

Java

kou commented 11 months ago

Maven document for reproducible builds: https://maven.apache.org/guides/mini/guide-reproducible-builds.html

jbonofre commented 11 months ago

@kou I shared it in the corresponding PR. Thanks 😄