Repository: incubator-pirk Updated Branches: refs/heads/gh-pages e3a8d8af3 -> d1d75a3af
first pass at release documentation Project: http://git-wip-us.apache.org/repos/asf/incubator-pirk/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-pirk/commit/fc128d7d Tree: http://git-wip-us.apache.org/repos/asf/incubator-pirk/tree/fc128d7d Diff: http://git-wip-us.apache.org/repos/asf/incubator-pirk/diff/fc128d7d Branch: refs/heads/gh-pages Commit: fc128d7dd8c88c9d81d911582278d26108fb8d9a Parents: e3a8d8a Author: eawilliams <eawilli...@apache.org> Authored: Mon Aug 15 12:27:22 2016 -0400 Committer: eawilliams <eawilli...@apache.org> Committed: Mon Aug 15 12:27:22 2016 -0400 ---------------------------------------------------------------------- releasing.md | 176 ++++++++++++++++++++++++++++++++++++++++++++- verifying_releases.md | 2 +- 2 files changed, 176 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/fc128d7d/releasing.md ---------------------------------------------------------------------- diff --git a/releasing.md b/releasing.md index bc3d153..12f5f7d 100755 --- a/releasing.md +++ b/releasing.md @@ -3,4 +3,178 @@ title: Making a Release nav: nav_releasing --- -Information regarding how to make a release for Apache Pirk coming soon! +This is a guide to making a release of Apache Pirk (incubating). Please follow the steps below. + + +1. [Preliminaries](#preliminaries) +* [Apache Release Documentation](#apache-release-documentation) +* [Code Signing Key](#code-signing-key) +* [Prepare Your Maven Settings](#prepare-your-maven-settings) +* [Ensure JIRA Issues are Appropriately Tagged for the Release](#ensure-jira-issues-are-appropriately-tagged-for-the-release) +2. [Create the Release Candidate](#create-the-release-candidate) +* [Create the Candidate Release Branch](#create-the-candidate-release-branch) +* [Create the Candidate Release Artifacts](#create-the-candidate-release-artifacts) +* [Validate the Release Candidate](#validate-the-release-candidate) +* [Close the Staging Repository](#close-the-staging-repository) +* [How to Roll Back a Release Candidate](#how-to-roll-back-a-release-candidate) +3. [Vote on the Release](#vote-on-the-release) +4. [Publish the Release](#publish-the-release) +5. [Update the Website](#update-the-website) + + +## Preliminaries ## + +### Apache Release Documentation ### + +The ASF release documentation, including the incubator release documentation, can be found here: + +* [Apache Release Guide](http://www.apache.org/dev/release-publishing) +* [Apache Release Policy](http://www.apache.org/dev/release.html) +* [Apache Incubator Release Guidelines](http://incubator.apache.org/guides/releasemanagement.html) +* [Apache Incubator Release Policy](http://incubator.apache.org/incubation/Incubation_Policy.html#Releases) +* [Maven Release Info](http://www.apache.org/dev/publishing-maven-artifacts.html) + +### Code Signing Key ### + +Create a code signing gpg key for release signing; use `<your Apache ID>@apache.org` for your primary ID for the code signing key. See the [Apache Release Signing documentation](https://www.apache.org/dev/release-signing) for futher information. + +* Add your code signing key to your Apache ID [here](https://id.apache.org/) +* Publish it to a [public key server](http://www.apache.org/dev/release-signing.html#keyserver) such as the [MIT key server](http://pgp.mit.edu/). +* Add it to the Pirk [KEYS file](https://github.com/apache/incubator-pirk/blob/master/KEYS). + +### Prepare Your Maven Settings ### + +Make sure that your Maven settings.xml file contains the following: + + <settings> + <profiles> + <profile> + <id>signed_release</id> + <properties> + <mavenExecutorId>forked-path</mavenExecutorId> + <gpg.keyname>yourKeyName</gpg.keyname> + <gpg.passphrase>yourKeyPassword</gpg.passphrase> + </properties> + </profile> + </profiles> + <servers> + <server> + <id>apache.releases.https</id> + <username>yourApacheID</username> + <password>yourApachePassword</password> + </server> + <server> + <id>repository.apache.org</id> + <username>yourApacheID</username> + <password>yourApachePassword</password> + </server> + </servers> + </settings> + + +### Ensure JIRA Issues are Appropriately Tagged for the Release ### + +Ensure that all Pirk JIRA issues that are addressed in this release are marked with the release version in the 'FixVersion' field of the issue. + +## Create the Release Candidate ## + +### Create the Candidate Release Branch ### + +Create a branch off of master with its name equal to the release version. For example, if the candidate release version is 0.0.1, create a branch called 0.0.1. + +### Create the Candidate Release Artifacts ### + +Check out the candidate release branch. + +Ensure that the application builds and all in-memory tests pass via `mvn clean install`. + +Perform the following to generate and stage the artifacts: + +1. `mvn clean release:clean` +2. `mvn release:prepare -Psigned_release -Darguments="-DskipTests"` +* You will be promted to answer the following questions: +* What is the release version for "Apache Pirk (incubating) Project"? *Answer:* `<new release version>-incubating` +* What is SCM release tag or label for "Apache Pirk (incubating) Project"? *Answer:* Accept the default +* What is the new development version for "Apache Pirk (incubating) Project"? *Answer:* Accept the default +3. `mvn -Psigned_release release:perform -Darguments="-DskipTests"` +* This command will generate the artifacts and push them to the [Nexus repo](https://repository.apache.org/#stagingRepositories). If you would like to perform a dry run first (without pushing the artifacts to the repo), add the arg `-DdryRun=true` + +The candidate release artifacts can be found in the [Nexus staging repo](https://repository.apache.org/#stagingRepositories). Log in with your Apache creds; the candidate release artifacts are found in `orgapachepirk-1001`. + +The candidate artifacts can also be found in the `target` folder of your local branch. + +### Validate the Release Candidate ### + +As per the Apache documentation, verify that the release candidate artifacts satisfy the following: + +* Checksums and PGP signatures are valid +* Build is successful including automated tests +* DISCLAIMER is correct, filenames include "incubating" +* Top-level LICENSE and NOTICE are correct. See: + * [LICENSE file requirements](http://www.apache.org/dev/release.html#license) + * [NOTICE file requirements](http://www.apache.org/dev/release.html#notice-content) +* All source files have license headers where appropriate, RAT checks pass +* The provenance of all source files is clear (ASF or software grants) +* Dependencies licenses are ok as per http://apache.org/legal/ +* Release consists of source code only, no binaries + +### Close the Staging Repository ### + +If the release candidate appears to pass the validation checklist, close the staging repository in Nexus by selecting the staging repository `orgapachepirk-1001` and clicking on the 'Close' icon. + +Nexus will now run through a series of checksum and signature validations. + +*If the checks pass*, Nexus will close the repository and give a URL to the closed staging repo (which contains the candidate artifacts). Send this URL to folks in the voting email so that they can find the staged candidate release artifacts. + +*If the checks do not pass*, drop the staging repo by clicking the 'Drop' icon, follow the instructions on how to [roll back the release candidate](#how-to-roll-back-a-release-candidate), fix the issues, and start over with [creating the candidate artifacts](#create-the-candidate-release-artifacts). + + +### How to Roll Back a Release Candidate ### + +A release candidate must be rolled back in Nexus and locally. + +To roll back the release candidate in Nexus, drop the staging repo by clicking the 'Drop' icon. + +To roll back the release locally in your candidate relesae branch: + +1. `mvn -Psigned_release versions:set -DnewVersion=<previous release version>-Snapshot` +2. `mvn -Psigned_release versions:commit` +3. `git commit` to commit the new pom version +4. `git push --delete apache <tagname>` to delete the remote github tag +5. `git tag -d <tagname>` to deletes the local tag + + +## Vote on the Release ## + +To vote on a candidate release, send an email to the [dev list](mailto:d...@pirk.apache.incubator.org) with subject `[VOTE]: Pirk <release version> Release` and a body along the lines of: + + This is the vote for <release version> of Apache Pirk (incubating). + + The vote will run for at least 72 hours and will close on <closing date>. + + The artifacts can be downloaded here: https://repository.apache.org/content/repositories/orgapachepirk-1001 + + All JIRAs completed for this release are tagged with 'FixVersion = <release version>'. You can view them here: <insert link to the JIRA search results for FixVersion = release version> + + The artifacts have been signed with Key : <ID of signing key> + + Please vote accordingly: + + [ ] +1, accept RC as the official <release version> release + [ ] +0, I don't care either way, + [ ] -1, do not accept RC as the official <release version> release because... + + +## Publish the Release ## + + +## Update the Website ## + +Add the current release link to the [Downloads page]({{ site.baseurl }}/downloads). + +Update the javadocs. + + + + + http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/fc128d7d/verifying_releases.md ---------------------------------------------------------------------- diff --git a/verifying_releases.md b/verifying_releases.md index ee9929a..e486da2 100755 --- a/verifying_releases.md +++ b/verifying_releases.md @@ -16,7 +16,7 @@ Pirk contains unit and integration tests which can be automatically run via Mave Additionally, Pirk contains multiple distributed tests which must be run and must pass on a live cluster: - hadoop jar <pirkJar> test.distributed.DistributedTestDriver -j <full path to pirkJar> + hadoop jar <pirkJar> org.apache.pirk.test.distributed.DistributedTestDriver -j <full path to pirkJar> ## Foundation Level Requirements ##