sijie commented on a change in pull request #305: Issue 305: New Release Guide URL: https://github.com/apache/bookkeeper/pull/305#discussion_r129986641
########## File path: docs/community/committer/release_guide.md ########## @@ -0,0 +1,475 @@ +# Apache BookKeeper Release Guide + +* TOC +{:toc} + +This page documents the procedure to make an Apache BookKeeper release. + +## Introduction + +The Apache BookKeeper project periodically declares and publishes releases. A release is one or more packages of the project artifact(s) that are approved for general public distribution and use. They may come with various degrees of caveat regarding their perceived quality and potential for change, such as ?alpha?, ?beta?, ?incubating?, ?stable?, etc. + +The BookKeeper community treats releases with great importance. They are a public face of the project and most users interact with the project only through the releases. Releases are signed off by the entire BookKeeper community in a public vote. + +Each release is executed by a *Release Manager*, who is selected among the [BookKeeper committers](http://bookkeeper.apache.org/credits.html). This document describes the process that the Release Manager follows to perform a release. Any changes to this process should be discussed and adopted on the [dev@ mailing list](http://bookkeeper.apache.org/lists.html). + +Please remember that publishing software has legal consequences. This guide complements the foundation-wide [Product Release Policy](http://www.apache.org/dev/release.html) and [Release Distribution Policy](http://www.apache.org/dev/release-distribution). + +## Overview + +The release process consists of several steps: + +1. Decide to release +2. Prepare for the release +3. Build a release candidate +4. Vote on the release candidate +5. If necessary, fix any issues and go back to step 3. +6. Finalize the release +7. Promote the release + +********** + +## Decide to release + +Deciding to release and selecting a Release Manager is the first step of the release process. This is a consensus-based decision of the entire community. + +Anybody can propose a release on the dev@ mailing list, giving a solid argument and nominating a committer as the Release Manager (including themselves). There?s no formal process, no vote requirements, and no timing requirements. Any objections should be resolved by consensus before starting the release. + +In general, the community prefers to have a rotating set of 3-5 Release Managers. Keeping a small core set of managers allows enough people to build expertise in this area and improve processes over time, without Release Managers needing to re-learn the processes for each release. That said, if you are a committer interested in serving the community in this way, please reach out to the community on the dev@ mailing list. + +### Checklist to proceed to the next step + +1. Community agrees to release +2. Community selects a Release Manager + +********** + +## Prepare for the release + +Before your first release, you should perform one-time configuration steps. This will set up your security keys for signing the release and access to various release repositories. + +To prepare for each release, you should audit the project status both in the JIRA issue tracker and the Github issue tracker, and do necessary bookkeeping. Finally, you should create a release branch from which individual release candidates will be built. + +### One-time setup instructions + +#### GPG Key Review comment: add "https://www.apache.org/dev/openpgp.html#key-gen-generate-key" if people doesn't have any pgp keys. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services