There are two distinct sets of artifacts that are released on independent schedules: streams-master & streams-project. The streams-master is the project metadata and only needs to be released when there is a change in the structure of the project itself. The streams-project artifacts are comprised of all streams source code, binaries and a standalone demo. For release setup information, refer to Release Setup Information.
All of the steps below apply to all streams repository releases, unless otherwise specified. As an alternative to releasing separately, the projects MAY be released together as one combined release. The steps for this can be found below. (Combined Release Steps)
NOTE:
Releases should always be built and published in the following order:
In the instructions below, ${project.name} should be one of these top-level repository aggregator pom project names.
As an alternative to releasing separately, the projects MAY be released together as one combined release. The steps for this can be found below. (Combined Release Steps)
Environment setup for releasing artifacts (same for SNAPSHOTs and releases)
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m"
Prepare the source for release:
Create a release candidate branch from master. X should start at 1 and increment if early release candidates fail to complete the release cycle.
git checkout master git branch ${project.name}-${project.version}-rcX
Verify the source has the required license headers before trying to release:
mvn -P apache-release clean rat:check -e -DskipTests
Do a dry run of the release:prepare step:
mvn -P apache-release release:prepare -DautoVersionSubmodules=true -DdryRun=true
* Release version - take the default (should be ${project.version}-incubating) * SCM release tag - *DO NOT TAKE THE DEFAULT* - ${project.artifactId}-${project.version}-rcX * New development version - take the default (should be ${project.version}-incubating-SNAPSHOT) * GPG Passphrase
Verify that the release process completed as expected
Cleanup the release prepare files again:
mvn -P apache-release release:clean
Prepare the release
mvn -P apache-release -U clean release:prepare -DautoVersionSubmodules=true
Perform the release
mvn -Papache-release -Darguments='-Dmaven.test.skip.exec=true' release:perform -Dgoals=deploy -DlocalRepoDirectory=. -DlocalCheckout=true
-Duser.name=[your_apache_uid]
Verify the Nexus release artifacts
Finalizing a release
svn co https://dist.apache.org/repos/dist/release/incubator/streams/releases ./streams-releases (KEEP this directory until after the release process has been completed) cd ./streams-releases mkdir ${project.version} cd ./${project.version} wget https://repository.apache.org/content/repositories/releases/org/apache/streams/${project.name}/${project.version}/${project.name}-${project.version}-source-release.zip wget https://repository.apache.org/content/repositories/releases/org/apache/streams/${project.name}/${project.version}/${project.name}-${project.version}-source-release.zip.asc wget https://repository.apache.org/content/repositories/releases/org/apache/streams/${project.name}/${project.version}/${project.name}-${project.version}-source-release.zip.md5 svn add ${project.name}-* svn commit -m "Committing Source Release for ${project.name}-${project.version}
git checkout ${project.name}-${project.version}-rcX git tag -a ${project.name}-${project.version} -m 'release tag ${project.name}-${project.version}' git push origin :refs/tags/streams-project-${project.version}
Clean the release prepare files and hard reset the release candidate branch.
mvn -P apache-release release:clean
Delete the git tag created by the release:perform step -
git tag -d streams-project-${project.version}-rcX git push origin :refs/tags/streams-project-${project.version}-rcX
Delete the build artifacts on people & www
rm -rfv /www/people.apache.org/builds/streams/${project.version} rm -rfv /www/www.apache.org/dist/streams/${project.version}
Drop the nexus staging repo
On unix platforms the following command can be executed -
for file in `find . -type f -iname '*.asc'` do gpg --verify ${file} done
You’ll need to look at the output to ensure it contains only good signatures -
gpg: Good signature from … gpg: Signature made …
In order to perform a combined release of the streams-master and streams-project trunks, do the following:
Execute the remaining steps using the following e-mail template
to: streams-dev@incubator.apache.org subject: [VOTE] Apache Streams ${release.version} Release Candidate I've created a combined ${release.version} release candidate, with the following artifacts up for a vote: incubator-streams-master source tag (r${release.version}): https://git-wip-us.apache.org/repos/asf?p=incubator-streams-master.git;a=commit;h=... incubator-streams source tag (r${release.version}): https://git-wip-us.apache.org/repos/asf?p=incubator-streams.git;a=commit;h=... incubator-streams-examples source tag (r${release.version}): https://git-wip-us.apache.org/repos/asf?p=incubator-streams-examples.git;a=commit;h=... Maven staging repo: https://repository.apache.org/content/repositories/${release.master.repository} https://repository.apache.org/content/repositories/${release.project.repository} https://repository.apache.org/content/repositories/${release.examples.repository} Source releases: https://repository.apache.org/content/repositories/${release.master.repository}/org/apache/streams/streams-master/${release.version}/streams-master-${release.version}-source-release.zip https://repository.apache.org/content/repositories/${release.project.repository}/org/apache/rave/rave-project/${release.version}/streams-project-${release.version}-incubating-source-release.zip https://repository.apache.org/content/repositories/${release.project.repository}/org/apache/rave/rave-project/${release.version}/streams-project-${release.version}-incubating-source-release.zip Checksums of streams-master-${release.version}-source-release.zip: MD5: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX SHA1: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Release artifacts are signed with the following key: https://people.apache.org/keys/committer/... Please take the time to verify the artifacts before casting your vote. Vote will be open for 72 hours. [ ] +1 approve [ ] +0 no opinion [ ] -1 disapprove (and reason why)