You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by ma...@apache.org on 2014/06/30 21:00:15 UTC

git commit: SAMZA-199: Publish Maven builds as part of release

Repository: incubator-samza
Updated Branches:
  refs/heads/master 4f189128e -> 2aad5c4c8


SAMZA-199: Publish Maven builds as part of release


Project: http://git-wip-us.apache.org/repos/asf/incubator-samza/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-samza/commit/2aad5c4c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-samza/tree/2aad5c4c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-samza/diff/2aad5c4c

Branch: refs/heads/master
Commit: 2aad5c4c84efe74a953f443616b87e9e69ab14e9
Parents: 4f18912
Author: Martin Kleppmann <mk...@linkedin.com>
Authored: Fri Jun 27 16:58:35 2014 +0100
Committer: Martin Kleppmann <mk...@linkedin.com>
Committed: Mon Jun 30 19:58:26 2014 +0100

----------------------------------------------------------------------
 RELEASE.md                | 43 +++++++++++++++++++++++++++++++++++++++++-
 build.gradle              |  7 +++++++
 gradle/buildscript.gradle |  6 ++++++
 gradle/release.gradle     | 36 +++++++++++++++++++++++++++++++++++
 4 files changed, 91 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/2aad5c4c/RELEASE.md
----------------------------------------------------------------------
diff --git a/RELEASE.md b/RELEASE.md
index 3d34f9f..b2a6bb6 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -15,8 +15,49 @@ To build a tarball suitable for an ASF source release (and its accompanying MD5
 
 First, clean any non-checked-in files from git (this removes all such files without prompting):
 
-    git clean -d -f
+    git clean -fdx
+
+Alternatively, you can make a fresh clone of the repository to a separate directory:
+
+    git clone https://git-wip-us.apache.org/repos/asf/incubator-samza.git samza-release
+    cd samza-release
 
 Then build the tarball:
 
     ./gradlew clean sourceRelease
+
+Then sign it:
+
+    gpg --sign --armor --detach-sig build/distribution/source/samza-sources-*.tgz
+
+Make a signed git tag for the release candidate:
+
+    git tag -s release-$VERSION-rc0 -m "Apache Samza $VERSION release candidate 0"
+
+Edit `$HOME/.gradle/gradle.properties` and add your GPG key information:
+
+    signing.keyId=01234567                          # Your GPG key ID, as 8 hex digits
+    signing.secretKeyRingFile=/path/to/secring.gpg  # Normally in $HOME/.gnupg/secring.gpg
+    signing.password=YourSuperSecretPassphrase      # Plaintext passphrase to decrypt key
+    nexusUsername=yourname                          # Your username on Apache's LDAP
+    nexusPassword=password                          # Your password on Apache's LDAP
+
+Putting your passwords there in plaintext is unfortunately unavoidable. The
+[nexus plugin](https://github.com/bmuschko/gradle-nexus-plugin) supports asking
+for them interactively, but unfortunately there's a
+[Gradle issue](http://issues.gradle.org/browse/GRADLE-2357) which prevents us
+from reading keyboard input (because we need `org.gradle.jvmargs` set).
+
+Build binary artifacts and upload them to the staging repository:
+
+    # Set this to the oldest JDK which we are currently supporting for Samza.
+    # If it's built with Java 8, the classes won't be readable by Java 7.
+    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
+    ./gradlew clean uploadArchives
+    ./gradlew -PscalaVersion=2.9.2 clean uploadArchives
+
+Go to [repository web interface](https://repository.apache.org/), log in with
+Apache LDAP credentials, go to "Staging Repositories", select the org.apache.samza
+repository just created, and close it. This may take a minute or so. When it
+finishes, the UI shows a staging repository URL. This can be used in a project
+that depends on Samza, to test the release candidate.

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/2aad5c4c/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index f728330..ebed8f2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -205,6 +205,13 @@ project(":samza-shell") {
     from 'src/main/bash'
   }
 
+  artifacts {
+    archives(shellTarGz) {
+      name 'samza-shell'
+      classifier 'dist'
+    }
+  }
+
   // Usage: ./gradlew samza-shell:runJob \
   //    -PconfigPath=file:///path/to/job/config.properties
   task runJob(type:JavaExec) {

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/2aad5c4c/gradle/buildscript.gradle
----------------------------------------------------------------------
diff --git a/gradle/buildscript.gradle b/gradle/buildscript.gradle
index 1de8e87..739a9c1 100644
--- a/gradle/buildscript.gradle
+++ b/gradle/buildscript.gradle
@@ -22,10 +22,16 @@ repositories {
     maven {
       url 'http://dl.bintray.com/content/netflixoss/external-gradle-plugins/'
     }
+
+    // For gradle-nexus-plugin
+    maven {
+      url 'http://jcenter.bintray.com/'
+    }
   }
 }
 
 dependencies {
   classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.6.1'
   classpath 'de.obqo.gradle:gradle-lesscss-plugin:1.0-1.3.3'
+  classpath 'org.gradle.api.plugins:gradle-nexus-plugin:0.7.1'
 }

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/2aad5c4c/gradle/release.gradle
----------------------------------------------------------------------
diff --git a/gradle/release.gradle b/gradle/release.gradle
index 751255f..48de564 100644
--- a/gradle/release.gradle
+++ b/gradle/release.gradle
@@ -49,3 +49,39 @@ task sourceRelease(type: Tar) {
     ant.checksum file:"$destinationDir/$archiveName"
   }
 }
+
+// Publishing to Apache's Maven repository (Nexus). To test this locally, set
+// repositoryUrl and snapshotRepositoryUrl below to 'file://localhost/tmp/myRepo'
+subprojects {
+  apply plugin: 'nexus'
+
+  nexus {
+    attachSources = true
+    attachTests = false
+    attachJavadoc = true
+    sign = true
+    repositoryUrl = 'https://repository.apache.org/service/local/staging/deploy/maven2'
+    snapshotRepositoryUrl = 'https://repository.apache.org/content/repositories/snapshots'
+  }
+
+  modifyPom {
+    project {
+      name 'Apache Samza (incubating)'
+      description 'A distributed stream processing framework built upon Apache Kafka and Apache Hadoop YARN.'
+      url 'http://samza.incubator.apache.org/'
+
+      scm {
+        url 'https://git-wip-us.apache.org/repos/asf?p=incubator-samza.git;a=tree'
+        connection 'scm:http://git-wip-us.apache.org/repos/asf/incubator-samza.git'
+        developerConnection 'scm:https://git-wip-us.apache.org/repos/asf/incubator-samza.git'
+      }
+
+      licenses {
+        license {
+          name 'The Apache Software License, Version 2.0'
+          url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+        }
+      }
+    }
+  }
+}