Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 34 additions & 10 deletions website/www/site/content/en/contribute/release-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ The release process consists of several steps:

1. Decide to release
1. Prepare for the release
1. Investigate performance regressions
1. Create a release branch
1. Verify release branch
1. Build a release candidate
1. Vote on the release candidate
1. During vote process, run validation tests
Expand All @@ -45,7 +48,7 @@ The release process consists of several steps:
1. Promote the release


### Decide to release
## 1. 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.

Expand All @@ -60,7 +63,7 @@ In general, the community prefers to have a rotating set of 3-5 Release Managers

**********

## 1. Prepare for the release
## 2. 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.

Expand Down Expand Up @@ -244,7 +247,23 @@ __Attention__: Only PMC has permission to perform this. If you are not a PMC, pl
**********


## 2. Create a release branch in apache/beam repository
## 3. Investigate performance regressions

Check the Beam load tests for possible performance regressions. Measurements are available on [metrics.beam.apache.org](http://metrics.beam.apache.org).

All Runners which publish data should be checked for the following, in both *batch* and *streaming* mode:

- [ParDo](http://metrics.beam.apache.org/d/MOi-kf3Zk/pardo-load-tests) and [GBK](http://metrics.beam.apache.org/d/UYZ-oJ3Zk/gbk-load-test): Runtime, latency, checkpoint duration
- [Nexmark](http://metrics.beam.apache.org/d/ahuaA_zGz/nexmark): Query runtime for all queries
- [IO](http://metrics.beam.apache.org/d/bnlHKP3Wz/java-io-it-tests-dataflow): Runtime

If regressions are found, the release branch can still be created, but the regressions should be investigated and fixed as part of the release process.
The role of the release manager is to file JIRA issues for each regression with the 'Fix Version' set to the to-be-released version. The release manager
oversees these just like any other JIRA issue marked with the 'Fix Version' of the release.

The mailing list should be informed to allow fixing the regressions in the course of the release.

## 4. Create a release branch in apache/beam repository

Attention: Only committer has permission to create release branch in apache/beam.

Expand Down Expand Up @@ -367,7 +386,7 @@ There are 2 ways to trigger a nightly build, either using automation script(reco
**********


## 3. Verify release branch
## 5. Verify release branch

After the release branch is cut you need to make sure it builds and has no significant issues that would block the creation of the release candidate.
There are 2 ways to perform this verification, either running automation script(recommended), or running all commands manually.
Expand Down Expand Up @@ -477,11 +496,16 @@ The verify_release_build.sh script may include failing or flaky tests. For each

* Description: Description of failure

#### Inform the mailing list

The dev@beam.apache.org mailing list should be informed about the release branch being cut. Alongside with this note,
a list of pending issues and to-be-trigated issues should be included. Afterwards, this list can be refined and updated
by the release manager and the Beam community.

**********


## 4. Triage release-blocking issues in JIRA
## 6. Triage release-blocking issues in JIRA

There could be outstanding release-blocking issues, which should be triaged before proceeding to build a release candidate. We track them by assigning a specific `Fix version` field even before the issue resolved.

Expand Down Expand Up @@ -528,7 +552,7 @@ _Tip_: Another tool in your toolbox is the known issues section of the release b
**********


## 5. Build a release candidate
## 7. Build a release candidate

### Checklist before proceeding

Expand Down Expand Up @@ -599,7 +623,7 @@ For this step, we recommend you using automation script to create a RC, but you
**********


## 6. Prepare documents
## 8. Prepare documents

### Update and Verify Javadoc

Expand Down Expand Up @@ -748,7 +772,7 @@ docker pull apache/beam_python3.5_sdk:2.16.0_rc1
**********


## 7. Vote and validate release candidate
## 9. Vote and validate 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.

Expand Down Expand Up @@ -1074,7 +1098,7 @@ Once all issues have been resolved, you should go back and build a new release c
**********


## 8. Finalize the release
## 10. Finalize the release

Once the release candidate has been reviewed and approved by the community, the release should be finalized. This involves the final deployment of the release candidate to the release repositories, merging of the website changes, etc.

Expand Down Expand Up @@ -1163,7 +1187,7 @@ Use reporter.apache.org to seed the information about the release into future pr
**********


## 9. Promote the release
## 11. Promote the release
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Minor question.) Does markdown not support automatic numbering?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does. We use that feature in the table of contents. (You simply always specify 1. as the number).

I don't know why we don't use it for the actual sections. I guess to keep it plain-text readable. Either way, it would make sense to stick to just one of the two approaches.


Once the release has been finalized, the last step of the process is to promote the release within the project and beyond.

Expand Down