The vote is always first in the podling (dev mailing list).

To pass, the vote should have three mentor +1 votes. Then, the vote is forwarded
to incubator (general mailing list) where it needs 3 IPMC +1 votes.

Regards
JB

On 02/17/2018 02:31 AM, Yaniv Rodenski wrote:
> Hi All,
> 
> Based on Davor's and JB's feedback I would like to start the discussion on
> our release procedure.
> 
> I suggest starting with a minimal process and add controls if and when
> needed, based on that I suggest the following minimal procedure, based on
> @Davor's Beam example below.
> 
> Please note the following major differences:
> 
>    1. The prepare to release section was minimized to managing versions in
>    JIRA, we aim to automate the entire release process to have the release
>    manager creating a *version branch* which will launch an automated *release
>    build *that will sign the version etc.
>    2. As far as I can figure out, after voting on the incubator dev@ list
>    we need to initiate a vote on the incubator general@ list, I have left
>    an empty section for that, *can any of the mentors help fill that out*?
>    3. Additional question for our mentors, I have stated that the release
>    requires the approval of 3 IPMC members, is that correct?
>    4. In JIRA, I have minimized the process and currently, no workflow
>    to Triage release-blocking issues is proposed. I propose to differ this
>    discussion to the first occasion when we will encounter such an issue.
>    5.  I also propose to differ the discussion on the process for release
>    of documentation and releases to online repos such as Maven/PyPi etc to the
>    first occasion when we do release those.
> 
> 
> == Introduction ==
> 
> The Apache Amaterasu (Incubating) 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 Amaterasu 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 Amaterasu
> community in a public vote.
> 
> Each release is executed by a *Release Manager*, who is selected among
> the Amaterasu
> Committers <http://incubator.apache.org/projects/amaterasu.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.
> 
> 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 ==
> 
> 
>    1. Decide to release
>    2. Managing the new version in JIRA
>    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.
> 
> Checklist to proceed to the next step:
> 
> 
>    1. Community agrees to release
>    2. Community selects a Release Manager
> 
> 
> === Managing the new version in JIRA ===
> 
> When contributors resolve an issue in JIRA, they are tagging it with a
> release that will contain their changes.
> 
> With a planned release currently underway, new issues should be resolved
> against a subsequent future release. Therefore, Release manager should
> create a release item for this subsequent release, as follows:
> 
> 
> 
>    1. In JIRA, navigate to
> *Amaterasu -> Administration -> versions *
>    2. Add a new release: choose the next minor version number compared to
>    the one currently underway, select today’s date as the *Start Date* and
>    click *Add*.
> 
> 
> With unplanned releases such as hot-fixes, a new version should be created
> representing that release. Issues that will be included in that release,
> should be updated to reflect that.
> 
> === Review Release Notes in JIRA ===
> 
> JIRA automatically generates Release Notes based on the *Fix Version* field
> applied to issues. Release Notes are intended for Amaterasu Users (not
> Amaterasu committers/contributors). You should ensure that Release Notes
> are informative and useful.
> 
> Open the release notes from the version status page
> <https://issues.apache.org/jira/projects/AMATERASU?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased>
> by choosing the release underway and clicking Release Notes.
> 
> You should verify that the issues listed automatically by JIRA are
> appropriate to appear in the Release Notes. Specifically, issues should:
> 
>    - Be appropriately classified as *Bug*, *New Feature*, *Improvement*,
>    etc.
>    - Represent noteworthy user-facing changes, such as new functionality,
>    backward-incompatible API changes, or performance improvements.
>    - Have occurred since the previous release; an issue that was introduced
>    and fixed between releases should not appear in the Release Notes.
>    - Have an issue title that makes sense when read on its own.
> 
> Adjust any of the above properties to improve clarity and presentation of
> the Release Notes.
> 
> === Create an RC branch ===
> 
> Creating an RC release branch will initiate the release build process
> which, if successful will create the released version.
> 
> Check out the version of the codebase from which you start the release. For
> a new minor or major release, this may be *HEAD* of the *master* branch. To
> build a hotfix/incremental release, instead of the *master* branch, use the
> release tag of the release being patched. (Please make sure your cloned
> repository is up-to-date before starting.)
> 
> $ *git checkout **<master branch OR release tag>*
> 
> Next, create a release branch with the version_ prefix followed by the
> version number and followed by the _rc suffix:
> 
> $ *git checkout -b version_[version number]_rc*
> For example, the release branch for version 0.2.0-incubating should be
> created as follows"
> 
> $ *git checkout -b version_0.2.0-incubating*
> 
> Next, you will need to push the new branch to the remote as follows:
> $ *git push origin version_**[version number]*
> 
> === Vote on the release candidate ===
> 
> Once you have built and individually reviewed the release candidate, please
> share it for the community-wide review. Please review foundation-wide voting
> guidelines <http://www.apache.org/foundation/voting.html> for more
> information.
> 
> Start the review-and-vote thread on the dev@ mailing list. Here’s an email
> template; please adjust as you see fit.
> --------------------------------------------------------------------------------------
> 
> From: Release Manager
> 
> To: d...@amaterasu.incubator.apache.org
> 
> Subject: [VOTE] Release 1.2.3, release candidate #3
> 
> 
> Hi everyone,
> 
> Please review and vote on the release candidate #3 for the version 1.2.3,
> as follows:
> 
> [ ] +1, Approve the release
> 
> [ ] -1, Do not approve the release (please provide specific comments)
> 
> 
> 
> The complete staging area is available for your review, which includes:
> 
> * JIRA release notes [1],
> 
> * the official Apache source release to be deployed to dist.apache.org [2],
> which is signed with the key with fingerprint FFFFFFFF [3],
> 
> * all artifacts to be deployed to the Maven Central Repository [4],
> 
> * source code tag "v1.2.3-RC3" [5],
> 
> * website pull request listing the release and publishing the API reference
> manual [6].
> 
> * Java artifacts were built with Maven MAVEN_VERSION and OpenJDK/Oracle JDK
> JDK_VERSION.
> 
> * Python artifacts are deployed along with the source release to the
> dist.apache.org [2].
> 
> 
> The vote will be open for at least 72 hours. It is adopted by majority
> approval, with at least 3 PMC affirmative votes.
> 
> 
> Thanks,
> 
> Release Manager
> 
> 
> [1] link
> 
> [2] link
> 
> [3] https://dist.apache.org/repos/dist/release/incubator-amaterasu/KEYS
> 
> [4] link
> 
> [5] link
> 
> [6] link
> --------------------------------------------------------------------------------------
> 
> === Mentors help needed
> 
> Mentors, please elaborate on how the voting process should work for an
> incubating project.
> 
> ======================================
> 
> 
> If there are any issues found in the release candidate, reply on the vote
> thread to cancel the vote. There’s no need to wait 72 hours. Proceed
> to the *Fix
> Issues* step below and address the problem. However, some issues don’t
> require cancellation. For example, if an issue is found in the website pull
> request, just correct it on the spot and the vote can continue as-is.
> 
> If there are no issues, replay on the vote thread to close the voting.
> Then, tally the votes in a separate email. Here’s an email template; please
> adjust as you see fit.
> --------------------------------------------------------------------------------------
> 
> From: Release Manager
> 
> To: d...@amaterasu.incubator.apache.org
> 
> Subject: [RESULT] [VOTE] Release 1.2.3, release candidate #3
> 
> 
> I'm happy to announce that we have unanimously approved this release.
> 
> 
> There are XXX approving votes, XXX of which are binding:
> 
> * approver 1
> 
> * approver 2
> 
> * approver 3
> 
> * approver 4
> 
> 
> There are no disapproving votes.
> 
> 
> Thanks everyone
> 
> --------------------------------------------------------------------------------------
> 
> Checklist to proceed to the finalization step:
> 
>    1. Community votes to release the proposed candidate, with at least
>    three approving IPMC votes
> 
> === Fix any issues ===
> 
> Any issues identified during the community review and vote should be fixed
> in this step.
> 
> Code changes should be proposed as standard pull requests to the
> *master* branch
> and reviewed using the normal contributing process.
> 
> For standard releases, this should be enough because during the release
> process, committers should avoid merging non-related PRs to master. and a
> new version branch should be created from the *master* branch.
> 
> However, if non-related PRs ware merged or the release is from a release
> branch, relevant changes should be cherry-picked into the release branch.
> The cherry-pick commits should then be proposed as the pull requests
> against the release branch, again reviewed and merged using the normal
> contributing process.
> 
> Once all issues have been resolved, you should go back and build a new
> release candidate containing these changes.
> 
> Checklist to proceed to the finalization step:
> 
> 
>    1. Issues identified during vote have been resolved, with fixes
>    committed to the release branch.
> 
> === Finalize the release ===
> 
> Once the release candidate has been reviewed and approved by the community,
> the release should be finalized. This involves creating a release branch
> which is the same procedure as building an RC branch with the sole
> difference of not having the _rc suffix.
> 
> === Promote the release ===
> 
> 
> Once the release has been finalized, the last step of the process is to
> promote the release within the project and beyond.
> 
> ==== Apache Mailing Lists ===
> 
> Announce on the dev@ mailing list that the release has been finished.
> 
> Announce on the release on the gene...@incubator.apache.org mailing list,
> listing major improvements and contributions.
> 
> Announce the release on the annou...@apache.org mailing list.
> ==== Amaterasu Blog ====
> 
> Major or otherwise important releases should have a blog post. Write one if
> needed for this particular release. Minor releases that don’t introduce new
> major functionality don’t necessarily need to be blogged.
> ==== Social Media ====
> 
> Tweet, post on Facebook, LinkedIn, and other platforms. Ask other
> contributors to do the same.
> 
> Checklist to proceed to the finalization step:
> 
>    1. Release announced on the dev@ mailing list.
>    2. A blog post published, if applicable.
>    3. Release recorded in reporter.apache.org.
>    4. Release announced on social media.
>    5. Completion declared on the gene...@incubator.apache.org mailing list.
> 

-- 
Jean-Baptiste Onofré
jbono...@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to