...
- They need to be a Rya Commiter
As a Rya Commiter, the Release Manager will have access to several really important tools used throughout the release process. This includes write access to the official Apache Rya Git Repo, the Apache Jenkins Server, and the Apache Nexus Server. - Checkout and Build Rya
The Release Manager should verify that they can checkout, build, and test Apache Rya on their machine.Checkout code from Git
Code Block git clone https://git-wip-us.apache.org/repos/asf/incubator-rya.git incubator-rya-apache
Build and Test Apache Rya
Code Block mvn clean install
- Setting up a PGP Key
The Release manager needs a PGP Key and this key needs to be public. The first two items listed here need to be done (i.e. get some software to create a key, and create a key). I'm not sure about the last three.- Getting software
Use gpg-agent, and be sure to increase the gpg-agent cache timeout (via .gnupg/gpg-agent.conf) to ensure that the agent doesn’t require re-authentication mid-build, as it will cause things to fail. For example, you can add default-cache-ttl 6000 to increase the timeout from the default of 10 minutes to over an hour. If you do not have a GPG key, reference the very thorough ASF release signing documentation. make sure you reset gpg-agent:
echo RELOADAGENT | gpg-connect-agent
- Creating a key
- Publishing a key to a public server
- Adding your key to id.apache.org
- Adding your key to project key list (we currently don't have this)
- Getting software
- Setting up Maven to push to apache repo
- Username/pass in maven settings
- Testing settings
- Testing locally:
- mvn clean install -Papache-release
Testing by pushing to apache snapshot repo
mvn clean deploy -Papache-release
- Testing locally:
Staging a release
note: I followed these instructions: http://www.apache.org/dev/publishing-maven-artifacts.html#prepare-poms
...
git clone https://git-wip-us.apache.org/repos/asf/incubator-rya.git incubator-rya-apache
...
git checkout -b 3.2.10-RC1 master
...
mvn clean deploy -Papache-release
Do some manual checks (note I think that the mvn release plugin does all of this)
- Add Key to KEYS file
https://dist.apache.org/repos/dist/release/incubator/rya/KEYS
- Testing settings
- Testing locally:
- mvn clean install -Papache-release
Testing by pushing to apache snapshot repo
mvn clean deploy -Papache-release
- Testing locally:
...
Make sure there are no dependencies on snapshots in the POMs to be released
Check that your POMs will not lose content when they are rewritten during the release process
...
mvn release:prepare -Papache-release -DdryRun=true -Darguments="-DskipTests"
...
Diff the original file pom.xml with the one called pom.xml.tag to see if the license or any other info has been removed
What is the release version for "Apache Rya Project"? (org.apache.rya:rya-project) 3.2.10: :
What is SCM release tag or label for "Apache Rya Project"? (org.apache.rya:rya-project) rya-project-3.2.10: : 3.2.10
What is the new development version for "Apache Rya Project"? (org.apache.rya:rya-project) 3.2.11-SNAPSHOT: :
...
Prepare release
mvn release:clean
mvn release:prepare
...
mvn release:perform
Also, it's helpful to create a JIRA task to tract the release process. Eg:
Summary: Perform 3.2.10-RC2 Release
Affects Version/s: 3.2.10
Assignee: Release Manager
...
Staging a release (super short edition):
Code Block |
---|
git checkout -b 3.2.10-RC2 master |
...
Code Block |
---|
What is the release version for "Apache Rya Project"? (org.apache.rya:rya-project) 3.2.10-incubating: : What is SCM release tag or label for "Apache Rya Project"? (org.apache.rya:rya-project) v3.2.10-incubating: : rya-incubating-3.2.10-rc2 What is the new development version for "Apache Rya Project"? (org.apache.rya:rya-project) 3.2.11-incubating-SNAPSHOT: : |
Code Block |
---|
mvn release:perform -Darguments="-DskipTests" |
add the artifacts to dist
Code Block |
---|
svn checkout https://dist.apache.org/repos/dist/dev/incubator/rya (double check that last command) mkdir rya-incubating-3.2.10-rc3 cd rya-incubating-3.2.10-rc3 cp ../../incubator-rya-apache/target/checkout/target/rya-project-3.2.10-incubating-source-release.zip.* . md5 -r rya-project-3.2.10-incubating-source-release.zip > rya-project-3.2.10-incubating-source-release.zip.md5 shasum -a 1 rya-project-3.2.10-incubating-source-release.zip > rya-project-3.2.10-incubating-source-release.zip.sha1 cd .. svn add rya-incubating-3.2.10-rc3 svn commit -m "Adding rya-incubating-3.2.10-rc3" |
add your keys to KEYS (this is a pre-req)
- Download the sources and verify they compile cleanly.
- Validate the hashes match.
- Validate that the sources contain no unexpected binaries.
- Validate the signature for the build and hashes.
- Validate the LICENSE/NOTICE/Headers.
Other release checklists:
http://wiki.apache.org/incubator/ReleaseChecklist
http://incubator.apache.org/guides/releasemanagement.html#check-list
how to verify hashes:
https://www.openoffice.org/download/checksums.html
Code Block | ||
---|---|---|
| ||
rm DEPENDENCIES mkdir /tmp/new_m2 cp $M2_HOME/conf/settings.xml /tmp/new_m2/settings.xml mvn --settings /tmp/new_m2settings.xml -Dmaven.repo.local=/tmp/new_m2 clean package |
Code Block | ||
---|---|---|
| ||
find . -type f | grep -v '\/test\/\|\/site\/\|\.java\|\.xml\|\.xsl\|\.groovy\|\.properties\|\.sh\|\.bat\|\.md\|\.txt' |
Code Block | ||
---|---|---|
| ||
find . -type f | xargs du -sh | grep [GM]\\s |
Send out a Vote email (make sure to include some sort of "RC-X" identifier in the vote subject so that we can differentiate them in the archives) TODO: Add Time Stamp for the Vote to end
Code Block |
---|
To: dev@rya.incubator.apache.org Subject: [VOTE] Release Rya (Incubating) version 3.2.10 RC1 I am pleased to be calling this vote for the source release of Apache Rya (Incubating), version 3.2.10. The source zip, including signatures, digests, etc. can be found at: https://dist.apache.org/repos/dist/dev/incubator/rya/rya-incubating-3.2.10-rc2/ Ancillary artifacts such as poms, jars, wars, ect. can be found here: https://repository.apache.org/content/repositories/orgapacherya-1002/org/apache/rya/rya-project/3.2.10-incubating/ The Git tag is rya-incubating-3.2.10-rc2 The Git commit ID is 9f0d63e6089df172eb3f41957d2956ec0035953a https://git-wip-us.apache.org/repos/asf?p=incubator-rya.git;a=commit;h=9f0d63e6089df172eb3f41957d2956ec0035953a Checksums of rya-project-3.2.10-source-release.zip: SHA1: 5f91b695e5bebfa89eee27debfca7a264f81f888 MD5: 5199aee4ca11e3c735f6e8b40f563f09 Release artifacts are signed with the following key: https://people.apache.org/keys/committer/mihalik.asc KEYS file available here: https://dist.apache.org/repos/dist/release/incubator/rya/KEYS Issues that were closed/resolved for this release are here: https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12334209&styleName=Html&projectId=12319020 Issues resolved between RC1 and RC2 are here: https://issues.apache.org/jira/browse/RYA-184 The vote will be open for 72 hours and close at <Date Time and Timezone>. Please download the release candidate and evaluate the necessary items including checking hashes, signatures, build from source, and test. The please vote: [ ] +1 Release this package as rya-project-3.2.10 [ ] +0 no opinion [ ] -1 Do not release this package because because... |
Code Block |
---|
To: dev@rya.incubator.apache.org Subject: [RESULT] [VOTE] Release Rya (Incubating) version 3.2.10 RC1 Hello, The vote to release Rya (Incubating) version 3.2.10 RC1 has passed/failed. +1 (binding): (Members of PPMC) +1 (non binding): (Everyone else) ...if vote was successful.. I will promote the artifacts to the central repo. ...if vote was unsuccessful.. (List of series of tasks that have been created or already exist that block the release) The following Jira tasks have been created to capture the issues blocking a successful release: RYA-XXX <Issue Title> [1] RYA-XXX <Issue Title> [2] RYA-200XXX Remove<Issue findbugs:jsr305Title> Dependency [13] (Create an issue that links to all of these issues) The following Jira taskstask havehas been created to capture all of the issues that will be resolved in the next RC: RYA-XXX Perform 3.2.10-RC3RC<N+1> Release [24] These tasks should address the concerns raised during the voting process. |
...