This is an automated email from the ASF dual-hosted git repository.
dzamo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git
The following commit(s) were added to refs/heads/master by this push:
new bd1cb806e9 DRILL-8158: Remove non-reproducible build outputs (#2590)
bd1cb806e9 is described below
commit bd1cb806e9b34d2ce64ba988f5a2b3f82dbc3584
Author: James Turton <[email protected]>
AuthorDate: Wed Jul 13 07:00:01 2022 +0200
DRILL-8158: Remove non-reproducible build outputs (#2590)
* Update Release.md with new instructions for multiple builds.
Co-authored-by: Hervé Boutemy <[email protected]>
---
docs/dev/Release.md | 17 +++++------------
.../apache/drill/exec/store/sys/VersionIterator.java | 2 ++
pom.xml | 12 +++++++++++-
3 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/docs/dev/Release.md b/docs/dev/Release.md
index 4c6da335ab..f9783fd561 100644
--- a/docs/dev/Release.md
+++ b/docs/dev/Release.md
@@ -27,9 +27,7 @@
Example:
```
- Note for the committers:
- until the release is not over and Drill version is not changed to
1.17.0-SNAPSHOT, please do not push any
- changes into Drill master.
+ Note for committers: until the release is over and Drill version is
changed to 1.17.0-SNAPSHOT, please do not push any changes into Drill master.
```
2. ## Setup environment:
1. ### SVN
@@ -90,7 +88,7 @@
1. run `mvn --encrypt-master-password` and add an encrypted master
password to `security-settings.xml` file;
2. run `mvn --encrypt-password` and add an encrypted Apache LDAP
password to `settings.xml` file.
5. Check that `NOTICE` file in sources has the current copyright year.
- 6. Make sure you are using JDK 8.
+ 6. ~~Make sure you are using JDK 8~~. Since the completion of DRILL-8113
it is now possible to build Drill using newer JDKs while continuing to target
JDK 8. Nevertheless, always test Drill under JDK 8 after building it.
3. ## Manual Release process (this section is more for information how release
process is performed, release manager should use `automated release process`
described later).
1. Setup GPG Password env variable:
```
@@ -202,14 +200,9 @@
The release script will push the maven artifacts to the Maven staging repo.
5. ## Multiple builds
- Currently, releasing multiple builds is done by performing consecutive
releases. E.g. to add
- an Hadoop 2 build of Drill, loop back to the top of the instructions now
and start again with
- a build profile of 'hadoop-2' and a release version of '1.17.0-hadoop2'.
Note that it is not
- necessary to close the jar release in the Maven repo first since the
artifacts from your next
- release will cause no identifier collisions due to their different version
suffix. This means
- that a single Maven repo can hold the artifacts for both 1.17.0 and
1.17.0-hadoop2.
-
-5. ## Publish release candidate and vote
+ For each additional build of Drill beyond the default, e.g. an Hadoop 2
build, create only the signed archives of the source and binaries and upload
these to the Apache distribution network using svn. Do not run the full release
process again using the Maven release plugin since that will result in the
unwanted creation of a new Drill version number. This has the consequence that
for additional builds we do not publish code artifacts to the Apache Maven
repo. Users of these builds wh [...]
+
+6. ## Publish release candidate and vote
1. Go to the [Apache Maven staging repo](https://repository.apache.org/)
and close the new jar release.
This step is done in the Maven GUI. For detailed instructions on
sonatype GUI please refer to
https://central.sonatype.org/pages/releasing-the-deployment.html#locate-and-examine-your-staging-repository.
diff --git
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/VersionIterator.java
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/VersionIterator.java
index 50ec4aa56b..816185f33e 100644
---
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/VersionIterator.java
+++
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/VersionIterator.java
@@ -35,7 +35,9 @@ public class VersionIterator implements Iterator<Object>{
public String commit_id = "Unknown";
public String commit_message = "";
public String commit_time = "";
+ /** @deprecated No longer populated in order to achieve reproducible
builds */
public String build_email = "Unknown";
+ /** @deprecated No longer populated in order to achieve reproducible
builds */
public String build_time = "";
public VersionInfo(){
diff --git a/pom.xml b/pom.xml
index f8856d58d3..3702491f64 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,7 +42,7 @@
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<sourceReleaseAssemblyDescriptor>source-release-zip-tar</sourceReleaseAssemblyDescriptor>
- <project.build.outputTimestamp>1</project.build.outputTimestamp>
+ <project.build.outputTimestamp>10</project.build.outputTimestamp>
<target.gen.source.path>${project.basedir}/target/generated-sources</target.gen.source.path>
<proto.cas.path>${project.basedir}/src/main/protobuf/</proto.cas.path>
<junit.version>5.7.2</junit.version>
@@ -580,6 +580,16 @@
<dirty>-dirty</dirty>
<forceLongFormat>true</forceLongFormat>
</gitDescribe>
+ <includeOnlyProperties>
+ <!-- Only include properties that are compatible with reproducible
builds -->
+ <includeOnlyProperty>^git\.branch$</includeOnlyProperty>
+ <includeOnlyProperty>^git\.build\.version$</includeOnlyProperty>
+ <includeOnlyProperty>^git\.closest\.tag\..*$</includeOnlyProperty>
+ <includeOnlyProperty>^git\.commit\..*$</includeOnlyProperty>
+ <includeOnlyProperty>^git\.dirty$</includeOnlyProperty>
+ <includeOnlyProperty>^git\.tags$</includeOnlyProperty>
+
<includeOnlyProperty>^git\.total\.commit\.count$</includeOnlyProperty>
+ </includeOnlyProperties>
</configuration>
</plugin>
<plugin>