Github user sijie commented on a diff in the pull request: https://github.com/apache/incubator-distributedlog/pull/51#discussion_r95101707 --- Diff: website/community/release_guide.md --- @@ -0,0 +1,507 @@ +--- +layout: default +title: "DistributedLog Release Guide" +permalink: /community/release-guide/ +--- + +# Apache DistributedLog Release Guide + +* TOC +{:toc} + +This page documents the procedure to make an Apache DistributedLog release. Creit to the [Beam](http://distributedlog.incubator.apache.org/contribute/release-guide/) project. We've borrow liberally from their documentation. + +## Introduction + +The Apache DistributedLog 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 DistributedLog 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 DistributedLog community in a public vote. + +Each release is executed by a *Release Manager*, who is selected among the [DistributedLog committers]({{ site.baseurl }}/community/team). 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]({{ site.baseurl }}/community/#mailing-lists). + +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 + +![Alt text]({{ "/images/release-guide-1.png" | prepend: site.baseurl }} "Release Process"){:width="100%"} + +The release process consists of several steps: + +1. Decide to release +1. Prepare for the release +1. Build a release candidate +1. Vote on the release candidate +1. If necessary, fix any issues and go back to step 3. +1. Finalize the release +1. 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 --- End diff -- done
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---