There are two distinct sets of artifacts in two repositories that are typically released together: apache-streams and apache-streams-examples.
apache-streams artifacts include streams source code and convenience jars by module.
apache-streams-examples source code builds ready-to-run stand-alone examples as uber-jars.
Releases must 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 a streams release manager, you probably want to use the release.sh and publish-rc.sh scripts in the root of apache-streams.
To perform a release manually, or to better understand what’s going on, read the instructions below.
In either case, you’ll need to first refer to Release Setup Information.
Environment setup for releasing artifacts (same for SNAPSHOTs and releases)
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 git checkout ${project.name}-${project.version}-rcX
Verify the source has the required license headers before trying to release:
mvn -Papache-release clean apache-rat:check -e -DskipTests
Do a dry run of the release:prepare step:
mvn -Papache-release release:prepare -DautoVersionSubmodules=true -DdryRun=true
* Release version - take the default (should be ${project.version}) * SCM release tag - *DO NOT TAKE THE DEFAULT* - ${project.artifactId}-${project.version}-rcX * New development version - take the default (should be ${project.version}-SNAPSHOT) * GPG Passphrase
Verify that the release process completed as expected
Cleanup the release prepare files again:
mvn -Papache-release release:clean
Prepare the release
mvn -Papache-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
Put the release candidate up for a vote
Complete the release
svn co https://dist.apache.org/repos/dist/release/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 wget https://repository.apache.org/content/repositories/releases/org/apache/streams/${project.name}/${project.version}/${project.name}-${project.version}-source-release.zip.sha1 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}
Update the JIRA versions page to close all issues, mark the version as “released”, and set the date to the date that the release was approved. You may also need to make a new release entry for the next release.
Announcing the release
Reply to the initial vote email and prepend to the original subject -
[CANCELED]
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
Remove the staged site
Make the required updates that caused the vote to be canceled during the next release cycle
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:
Perform Steps 1-9 of the release for apache-streams and apache-streams-examples
Execute the remaining steps using the following e-mail template
to: dev@streams.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: apache-streams source tag (r${release.version}): https://gitbox.apache.org/repos/asf?p=streams.git;a=commit;h=... apache-streams-examples source tag (r${release.version}): https://gitbox.apache.org/repos/asf?p=streams-examples.git;a=commit;h=... Maven staging repo: 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.project.repository}/org/apache/rave/rave-project/${release.version}/streams-project-${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}-source-release.zip Checksums of streams-project-${release.version}-source-release.zip: MD5: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX SHA1: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Checksums of streams-examples-${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)