Make Beam released artifacts reproducible
- Dominant language
- Java
- Stars
- 8.7k
- Forks
- 4.7k
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 204
Description
There is a recent movement to create a verifiable path from source code to binary releases in different open source projects. See http://reproducible-builds.org/
For the case of Java binaries (classes and jars) if we want to have a reproducible build we need to have a consistent build environment so we can reproduce those.
For Beam we need to create an environment with a fixed version of the Java compiler, maven and its plugins. This is addressed by BEAM-1534. But also by including the (JDK/Maven versions) used to generate the jar artifacts in the information to validate at the vote. Additionally we need to fix the Jar files because by default the maven-jar-plugin include the timestamp of the build in the files which breaks the reproducibility of the process, fortunately there is a Maven plugin that fixes this and that we can include in the release build.
Imported from Jira [BEAM-2727](https://issues.apache.org/jira/browse/BEAM-2727). Original Jira may contain additional context.
Reported by: iemejia.
Contributor guide
Research direction
Start by examining Beam's Maven release build and the release-vote validation process described in the issue. Identify where JDK and Maven versions are recorded and where jar timestamps are introduced, then verify that released artifacts can be rebuilt and compared consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100