Validate that all Samza source files have proper license information in their header.
Auto-generate all missing headers in files:
To release to a local Maven repository:
./gradlew clean publishToMavenLocal ./gradlew -PscalaVersion=2.9.2 clean publishToMavenLocal
To build a tarball suitable for an ASF source release (and its accompanying MD5 file):
First, clean any non-checked-in files from git (this removes all such files without prompting):
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"
$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 supports asking for them interactively, but unfortunately there's a Gradle issue which prevents us from reading keyboard input (because we need
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, 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.