You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by gr...@apache.org on 2018/10/03 21:40:56 UTC

[3/3] kudu git commit: Build cleanup in preperation for release

Build cleanup in preperation for release

This patch is a few small fixes in preparation for release:

- Updates the releasing docs to use Gradle
- Updates the hive and backup modules to skip the
  javadoc task. They don’t have public javadoc to publish.
- Updates the backup module to ensure it’s not published.
- Fixes Gradle pom generation to included unshaded deps.
- Fixes the Gradle signing logic.

This work was validated by walking through the release steps
for both Maven and Gradle. I staged the artifacts from both
builds and compared them.

Change-Id: I50c3b9358896b264fd525de558b6be7ef77145e2
Reviewed-on: http://gerrit.cloudera.org:8080/11576
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Kudu Jenkins
Reviewed-by: Attila Bukor <ab...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/da28d0ae
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/da28d0ae
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/da28d0ae

Branch: refs/heads/master
Commit: da28d0aee42445791183d0ff5bc021c347cf5f9d
Parents: ce2b527
Author: Grant Henke <gr...@apache.org>
Authored: Wed Oct 3 12:17:14 2018 -0500
Committer: Grant Henke <gr...@apache.org>
Committed: Wed Oct 3 21:24:15 2018 +0000

----------------------------------------------------------------------
 RELEASING.adoc                | 32 +++-----------------------------
 java/gradle/publishing.gradle |  4 ++--
 java/gradle/shadow.gradle     | 14 +++++++++++++-
 java/kudu-backup/build.gradle |  8 ++++++++
 java/kudu-backup/pom.xml      | 22 +++++++++++++++++++---
 java/kudu-hive/pom.xml        |  8 ++++++++
 6 files changed, 53 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/da28d0ae/RELEASING.adoc
----------------------------------------------------------------------
diff --git a/RELEASING.adoc b/RELEASING.adoc
index 7eaa641..4f68b75 100644
--- a/RELEASING.adoc
+++ b/RELEASING.adoc
@@ -117,40 +117,14 @@ Apache committer guide for setting up your GPG keys
 
 . Fix any issues it finds, such as RAT.
 
-. Add the following information to your `~/.m2/settings.xml` file in order to
-  be able to deploy artifacts to the ASF Maven repository:
-+
-----
-<settings>
-  <servers>
-    <server>
-      <id>apache.snapshots.https</id>
-      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
-      <password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password>
-    </server>
-    <!-- To stage a release of some part of Maven -->
-    <server>
-      <id>apache.releases.https</id>
-      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
-      <password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password>
-    </server>
-  </servers>
-</settings>
-----
-+
-If you don't want to keep your ASF password in plaintext on your local machine,
-you can link:http://maven.apache.org/guides/mini/guide-encryption.html[encrypt it].
-
 . Test the full Java build. This will sign and build everything without
   deploying any artifacts:
 +
 ----
-  # Run a gpg-agent if you don't normally. You may have to tweak it to get it
-  # to work with Maven, and this StackOverflow article might help:
-  # https://stackoverflow.com/questions/36506275/why-do-i-have-to-kill-gpg-agent-to-sign-my-commits
+  # Run a gpg-agent if you don't normally.
   gpg-agent --daemon
   cd java
-  mvn -DskipTests -Papache-release clean install
+  gradle clean install -PforceSigning
 ----
 +
 
@@ -184,7 +158,7 @@ you can link:http://maven.apache.org/guides/mini/guide-encryption.html[encrypt i
   # Run a gpg-agent if you don't normally
   gpg-agent --daemon
   cd java
-  mvn -DskipTests -Papache-release clean deploy
+  gradle clean uploadArchives -PmavenUsername="<APACHE-LDAP-USERNAME>" -PmavenPassword="<APACHE-LDAP-PASSWORD>"
 ----
 +
 Go to the link:https://repository.apache.org/\#stagingRepositories[staging repository]

http://git-wip-us.apache.org/repos/asf/kudu/blob/da28d0ae/java/gradle/publishing.gradle
----------------------------------------------------------------------
diff --git a/java/gradle/publishing.gradle b/java/gradle/publishing.gradle
index f2ad3eb..9ed2d52 100644
--- a/java/gradle/publishing.gradle
+++ b/java/gradle/publishing.gradle
@@ -30,8 +30,8 @@ ext {
           // Skip signing artifacts by default if -PskipSigning is passed.
           (!skipSigning
               // Sign artifacts if the version is not a snapshot, and we are uploading them to maven.
-              && !version.endsWith("SNAPSHOT") && gradle.taskGraph.hasTask("uploadArchives"))
-
+              && !version.endsWith("SNAPSHOT")
+              && project.gradle.startParameter.taskNames.any { it.contains("upload") })
   // These properties can be set in ~/.gradle/gradle.properties file,
   // though it would be open text. They can also be set on the cli via
   // -PmavenUsername and -PmavenPassword.

http://git-wip-us.apache.org/repos/asf/kudu/blob/da28d0ae/java/gradle/shadow.gradle
----------------------------------------------------------------------
diff --git a/java/gradle/shadow.gradle b/java/gradle/shadow.gradle
index 95a9b04..4a5d8ca 100644
--- a/java/gradle/shadow.gradle
+++ b/java/gradle/shadow.gradle
@@ -75,10 +75,22 @@ configurations.create("compileUnshaded")
 configurations.shadow.extendsFrom(configurations.compileUnshaded)
 configurations.compile.extendsFrom(configurations.compileUnshaded)
 
-// Ensure compileUnshaded dependencies are not compiled into shadowJar.
 // We use afterEvaluate to add additional configuration once all the definitions
 // in the projects build script have been applied
 afterEvaluate {
+  // Ensure compileUnshaded dependencies are included in the pom.
+  [install, uploadArchives].each { task ->
+    task.repositories.each {
+      configure(it.pom.scopeMappings) {
+        // The priority value is arbitrary.
+        addMapping(
+            MavenPlugin.COMPILE_PRIORITY,
+            configurations.compileUnshaded,
+            Conf2ScopeMappingContainer.COMPILE)
+      }
+    }
+  }
+  // Ensure compileUnshaded dependencies are not compiled into shadowJar.
   project.configurations.compileUnshaded.dependencies.each { dep ->
     def depStr = "${dep.group}:${dep.name}:${dep.version}"
     logger.info "Excluding ${depStr} from being bundled into the shaded jar."

http://git-wip-us.apache.org/repos/asf/kudu/blob/da28d0ae/java/kudu-backup/build.gradle
----------------------------------------------------------------------
diff --git a/java/kudu-backup/build.gradle b/java/kudu-backup/build.gradle
index 5c009fe..6a63f75 100644
--- a/java/kudu-backup/build.gradle
+++ b/java/kudu-backup/build.gradle
@@ -59,3 +59,11 @@ sourceSets {
 
 // Adjust the artifact name to match the maven build.
 archivesBaseName = "kudu-backup${versions.sparkBase}_${versions.scalaBase}"
+
+// kudu-backup has no public Javadoc.
+javadoc {
+  enabled = false
+}
+
+// Skip publishing kudu-backup until it's ready to be supported long-term.
+uploadArchives.enabled = false
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/kudu/blob/da28d0ae/java/kudu-backup/pom.xml
----------------------------------------------------------------------
diff --git a/java/kudu-backup/pom.xml b/java/kudu-backup/pom.xml
index 0cac985..891960c 100644
--- a/java/kudu-backup/pom.xml
+++ b/java/kudu-backup/pom.xml
@@ -269,13 +269,29 @@
             </plugin>
         </plugins>
 
-        <!-- This big ol' block of nonsense tells the m2e Eclipse plugin what
-            to do with maven plugins that don't have m2e "extensions" available.
 
-            It doesn't affect the Maven build at all. -->
         <pluginManagement>
             <plugins>
                 <plugin>
+                    <!-- kudu-backup has no public Javadoc. -->
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-javadoc-plugin</artifactId>
+                    <configuration>
+                        <skip>true</skip>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <!-- Skip publishing kudu-backup until it's ready to be supported long-term. -->
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-deploy-plugin</artifactId>
+                    <configuration>
+                        <skip>true</skip>
+                    </configuration>
+                </plugin>
+                <!-- This big ol' block of nonsense tells the m2e Eclipse plugin what
+                     to do with maven plugins that don't have m2e "extensions" available.
+                     It doesn't affect the Maven build at all. -->
+                <plugin>
                     <groupId>org.eclipse.m2e</groupId>
                     <artifactId>lifecycle-mapping</artifactId>
                     <version>1.0.0</version>

http://git-wip-us.apache.org/repos/asf/kudu/blob/da28d0ae/java/kudu-hive/pom.xml
----------------------------------------------------------------------
diff --git a/java/kudu-hive/pom.xml b/java/kudu-hive/pom.xml
index a82f294..33d4de0 100644
--- a/java/kudu-hive/pom.xml
+++ b/java/kudu-hive/pom.xml
@@ -96,6 +96,14 @@
     <build>
         <plugins>
             <plugin>
+                <!-- kudu-hive has no public Javadoc. -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+            <plugin>
                 <!-- Skip publishing kudu-hive until it's ready to be supported long-term. -->
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>