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

Reply via email to