Background
Since griffin's parent pom is apache, our release process is inherited from apache parent pom(https://svn.apache.org/viewvc/maven/pom/tags/apache-18/pom.xml?view=markup).
Apache release process is different from local release as it needs to do gpg check.
So you need to have created a PGP (or GPG) key pair, which will be used in signing the release artifacts. For more information on using the Maven GPG plugin, see this introduction from Sonatype and the Maven GPG Plugin usage page. You may also want to run gpg-agent in order to avoid being prompted multiple times for the GPG key passphrase when performing a release.
Update maven Settings.xml File to authenticate scm servers
<?xml version="1.0" encoding="UTF-8"?> <settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <servers> <server> <id>apache.snapshots.https</id> <username>USERNAME</username> <password>PASSWORD</password> </server> <server> <id>apache.releases.https</id> <username>USERNAME</username> <password>PASSWORD</password> </server> </servers> </settings>
Update Change Log
- Cleanup JIRA so the Fix Version in issues resolved since the last release includes this release version correctly.
- Update the CHANGELOG based on the Text release reports from JIRA.
- Review and update README.md if needed.
- Commit any changes back to git
- Stage any Roadmap or Release landing pages on the site.
Create release branch
git checkout master git pull git checkout -b griffin-x.x.x-incubating-rcX
Check license
mvn -Papache-release clean apache-rat:check -e -DskipTests
Dry run release
version=0.1.4 tag=apache-griffin-$version-incubating-rc1 mvn -Papache-release release:prepare -DautoVersionSubmodules=true -DdryRun=true -Dtag=$tag -DreleaseVersion=$version
Verify
compare pom.xml with pom.xml.tag files, the only differences should be version number.
check release.properties to make sure scm has right versions.
verify signatures.
Cleanup for release
mvn -Papache-release release:clean
Prepare for 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 -Dusername=[your_apache_id]
Verify nexus release artifacts
- Verify the staged artifacts in the nexus repo
- https://repository.apache.org/index.html
- Staging repositories (under Build Promotion) --> Name column --> org.apache.griffin
- Navigate through the artifact tree and make sure that all javadoc, sources, tests, jars, ... have .asc (GPG signature) and .md5 files. See http://people.apache.org/~henkp/repo/faq.html and http://www.apache.org/dev/release-signing.html#openpgp-ascii-detach-sig
- Close the nexus staging repo
- https://repository.apache.org/index.html
- Staging repositories (under Build Promotion) --> Name column --> org.apache.griffin
- Click checkbox for the open staging repo (org.apache.streams-XXX) and press Close in the menu bar.
Vote in dev@griffin.incubator.apache.org
Hi all, This is a call for a vote on releasing Apache Griffin 0.1.4-incubating, release candidate 2. This is the first release of Griffin. Apache Griffin is data quality service for modern data system, it defines a standard process to define, measure data quality for well-known dimensions. With Apache Griffin, users will be able to quickly define their data quality requirements and then get the result in near real time in systematical approach. The source tarball, including signatures, digests, etc. can be found at: https://dist.apache.org/repos/dist/dev/incubator/griffin/0.1.4-incubating The tag to be voted upon is 0.1.4-incubating: https://git-wip-us.apache.org/repos/asf?p=incubator-griffin.git;a=shortlog;h=refs/tags/0.1.4-incubating The release hash is f1ad4b7b6390b988f3625df3eba652a7fb59ad68: https://git-wip-us.apache.org/repos/asf?p=incubator-griffin.git;a=commit;h=f1ad4b7b6390b988f3625df3eba652a7fb59ad68 The Nexus Staging URL: https://repository.apache.org/content/repositories/orgapachegriffin-1002 Release artifacts are signed with the following key: https://dist.apache.org/repos/dist/dev/incubator/griffin/KEYS KEYS file available: https://dist.apache.org/repos/dist/dev/incubator/griffin/KEYS For information about the contents of this release, see: https://dist.apache.org/repos/dist/dev/incubator/griffin/0.1.4-incubating/CHANGES.txt Please vote on releasing this package as Apache Griffin 0.1.4-incubating The vote will be open for 72 hours. [ ] +1 Release this package as Apache Griffin 0.1.4-incubating [ ] +0 no opinion [ ] -1 Do not release this package because ... Thanks, William
What if vote failed
git tag -d apache-griffin-<VERSION> # delete locally git push --delete apache-git tagname # delete remote tag git push apache-git :apache-griffin-<VERSION> # delete in the Apache git repo
What if vote succeed, then vote in general@incubator.apache.org
Hi all, This is a call for a vote on releasing Apache Griffin 0.1.5-incubating, release candidate 2. This is the first release of Griffin. Apache Griffin is data quality service for modern data system, it defines a standard process to define, measure data quality for well-known dimensions. With Apache Griffin, users will be able to quickly define their data quality requirements and then get the result in near real time in systematical approach. Griffin vote thread https://lists.apache.org/thread.html/bb6d39a0cffc1265df5dc1db00d22101ba85357242ce1efd5fedb854@%3Cdev.griffin.apache.org%3E Griffin vote result thread https://lists.apache.org/thread.html/f7179ae14dd49bbbe23daf4e10b68b7a8662153d40ee03871febb1c4@%3Cdev.griffin.apache.org%3E The source tarball, including signatures, digests, etc. can be found at: https://dist.apache.org/repos/dist/dev/incubator/griffin/0.1.5-incubating The tag to be voted upon is 0.1.5-incubating: https://git-wip-us.apache.org/repos/asf?p=incubator-griffin.git;a=shortlog;h=refs/tags/0.1.5-incubating The release hash is 87f71017dc4bd925e309a540ca5783cf4c59dfff: https://git-wip-us.apache.org/repos/asf?p=incubator-griffin.git;a=commit;h=87f71017dc4bd925e309a540ca5783cf4c59dfff The Nexus Staging URL: https://repository.apache.org/content/repositories/orgapachegriffin-1005 Release artifacts are signed with the following key: https://dist.apache.org/repos/dist/dev/incubator/griffin/KEYS KEYS file available: https://dist.apache.org/repos/dist/dev/incubator/griffin/KEYS For information about the contents of this release, see: https://dist.apache.org/repos/dist/dev/incubator/griffin/0.1.5-incubating/CHANGES.txt Please vote on releasing this package as Apache Griffin 0.1.5-incubating The vote will be open for 72 hours. [ ] +1 Release this package as Apache Griffin ${RELEASE_VERSION}-incubating [ ] +0 no opinion [ ] -1 Do not release this package because ... Thanks, William
If vote succeed, then merge into the origin branch, otherwise, rollback as above.
git merge $verson-rcN-branch