You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ja...@apache.org on 2019/07/21 11:19:45 UTC

[flink-web] branch asf-site updated (12f6e6d -> 55a8b37)

This is an automated email from the ASF dual-hosted git repository.

jark pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/flink-web.git.


    from 12f6e6d  Fix wrong subscribe URL in community page
     new 6a5afb2  Update Chinese contribute pages
     new 55a8b37  Rebuild website

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 _data/i18n.yml                                     |  14 +-
 community.zh.md                                    |  31 +-
 content/community.html                             |   2 +-
 content/zh/community.html                          |  60 ++-
 .../zh/contributing/code-style-and-quality.html    |  12 +-
 content/zh/contributing/contribute-code.html       | 532 ++++++++-------------
 .../zh/contributing/contribute-documentation.html  |  12 +-
 content/zh/contributing/how-to-contribute.html     | 267 +++++------
 content/zh/contributing/improve-website.html       |  12 +-
 content/zh/contributing/reviewing-prs.html         |  53 +-
 content/zh/downloads.html                          |   2 +-
 content/zh/ecosystem.html                          |   2 +-
 content/zh/faq.html                                |   2 +-
 content/zh/flink-applications.html                 |   8 +-
 content/zh/flink-architecture.html                 |   8 +-
 content/zh/flink-operations.html                   |   8 +-
 content/zh/gettinghelp.html                        |   2 +-
 content/zh/index.html                              |   2 +-
 content/zh/material.html                           |   2 +-
 content/zh/poweredby.html                          |   2 +-
 content/zh/roadmap.html                            |   2 +-
 content/zh/usecases.html                           |   2 +-
 contributing/contribute-code.zh.md                 | 437 +++++++----------
 contributing/how-to-contribute.zh.md               | 225 +++++----
 contributing/reviewing-prs.zh.md                   |  38 +-
 25 files changed, 727 insertions(+), 1010 deletions(-)


[flink-web] 01/02: Update Chinese contribute pages

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jark pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/flink-web.git

commit 6a5afb2b2d530c32ff2bb3ed79ff35cfc6f5fc3d
Author: Jark Wu <wu...@alibaba-inc.com>
AuthorDate: Sun Jul 21 18:18:33 2019 +0800

    Update Chinese contribute pages
---
 _data/i18n.yml                       |  14 +-
 community.zh.md                      |  31 +--
 contributing/contribute-code.zh.md   | 437 ++++++++++++++---------------------
 contributing/how-to-contribute.zh.md | 225 +++++++++---------
 contributing/reviewing-prs.zh.md     |  38 ++-
 5 files changed, 323 insertions(+), 422 deletions(-)

diff --git a/_data/i18n.yml b/_data/i18n.yml
index 785437f..c6365c6 100644
--- a/_data/i18n.yml
+++ b/_data/i18n.yml
@@ -22,6 +22,9 @@ en:
 
 zh:
     what_is_flink: Apache Flink 是什么?
+    flink_architecture: 架构
+    flink_applications: 应用
+    flink_operations: 运维
     use_case: 应用场景
     powered_by: Flink 用户
     faq: 常见问题
@@ -32,10 +35,9 @@ zh:
     flink_blog: Flink 博客
     community_project: 社区 &amp; 项目信息
     how_to_contribute: 如何参与贡献
-    how_to_contribute: How to Contribute
-    contribute_code: Contribute Code
-    review_code: Review Pull Requests
-    code_style_guide: Code Style and Quality Guide
-    contribute_docs: Contribute Documentation
-    contribute_website: Contribute to the Website
+    contribute_code: 贡献代码
+    review_code: 审核 Pull Request
+    code_style_guide: 代码样式与质量指南
+    contribute_docs: 贡献文档
+    contribute_website: 贡献网站
     roadmap: 开发计划
diff --git a/community.zh.md b/community.zh.md
index faf85de..9b9c6a3 100644
--- a/community.zh.md
+++ b/community.zh.md
@@ -6,17 +6,10 @@ title: "社区 & 项目信息"
 
 {% toc %}
 
+## 如何从 Apache Flink 获得帮助?
 
 我们可以通过多种方式从 Apache Flink 社区获得帮助。Flink commiter 主要活跃在 [邮件列表](#mailing-lists)。对于用户支持和问题咨询,则可以通过 *用户邮件列表* 获得帮助。有些 Committer 同时会关注 [Stack Overflow](http://stackoverflow.com/questions/tagged/apache-flink)。请在提问的时候记得添加 apache-flink 的标签。问题反馈以及新特性的讨论则可以在 *开发邮件列表* 或者 [Jira]({{ site.jira }}) 上进行讨论。有兴趣对 Flink 进行贡献的人请查阅 [贡献指南](how-to-contribute.html)。
 
-如果你的邮件中包含代码,请根据如下要求进行检查:
-
-1. 请确认你所使用的外链不会被修改、删除等,这些操作会使得归档后的邮件变得无效
-2. 粘贴文字而不是文字的截图
-3. 对代码进行格式化操作,以提高可读性
-4. 添加足够的上下文,确保代码没有模棱两可的地方
-
-
 ## 邮件列表
 
 <table class="table table-striped">
@@ -123,6 +116,22 @@ title: "社区 & 项目信息"
 
 <b style="color:red">在给邮件列表发邮件之前,请确认已经订阅了该邮件列表!</b> 如果你没有订阅对应的邮件列表的话,对于 dev 邮件列表,你的消息会被拒收,对于 user 邮件列表,你则收不到相应的回复。
 
+### 如何订阅邮件列表
+
+在往邮件列表中发送消息前,需要先订阅邮件列表。
+
+1. 发送一封不包含任何内容或主题的邮件到 subscribe-*listname*@flink.apache.org(替换 *listname* 为 dev, user, user-zh 等等)
+2. 等待直到收到一封主题为 "confirm subscribe to *listname*@flink.apache.org" 的邮件。回复该邮件,不用修改主题和添加邮件内容。
+3. 等待直到收到一封主题为 "WELCOME to *listname*@flink.apache.org" 的邮件。
+
+如果你的邮件中包含代码,请根据如下要求进行检查:
+
+1. 请确认你所使用的外链不会被修改、删除等,这些操作会使得归档后的邮件变得无效
+2. 粘贴文字而不是文字的截图
+3. 对代码进行格式化操作,以提高可读性
+4. 添加足够的上下文,确保代码没有模棱两可的地方
+
+
 ## Stack Overflow
 
 Committer 们会关注 [Stack Overflow](http://stackoverflow.com/questions/tagged/apache-flink) 上 [apache-flink](http://stackoverflow.com/questions/tagged/apache-flink) 相关标签的问题。
@@ -171,11 +180,7 @@ Apache Flink 的 <a href="https://cwiki.apache.org/confluence/display/FLINK/Apac
 
 ## Flink Forward
 
-Flink Forward 2015 (2015 年 10 月 12-13 日) 是第一届把 Apache Flink 开发者和用户聚集起来的大会。可以在 [演示文档以及视频](http://2015.flink-forward.org/?post_type=session) 页面中找到 2015 年 Flink Forward 的所有资料
-
-第二届 Flink Forward 大会举办于 2016 年 9 月 12-14 日。 可以在 Flink Forward 2016 页面中找到所有的 [演讲文稿和视频](http://2016.flink-forward.org/program/sessions/).
-
-2017 年,Flink Forward 来到旧金山,举办了一天的会议以及一天的培训。可以在 [YouTube 频道](https://www.youtube.com/playlist?list=PLDX4T_cnKjD2UC6wJr_wRbIvtlMtkc-n2) 上找到所有的视频,以及在 [SlideShare](https://www.slideshare.net/FlinkForward) 上找到所有的演示文档。
+Flink Forward 大会每年都会在世界的不同地方举办。关于大会最新的信息可以到 <a href="https://www.flink-forward.org/">Flink-Forward.org</a> 网站获取到。
 
 # PMC 和 Commiter 列表
 
diff --git a/contributing/contribute-code.zh.md b/contributing/contribute-code.zh.md
index f8335a4..a15f2b3 100644
--- a/contributing/contribute-code.zh.md
+++ b/contributing/contribute-code.zh.md
@@ -2,324 +2,235 @@
 title:  "贡献代码"
 ---
 
-Apache Flink 的维护、改进和扩展都来自于志愿者的代码贡献。Apache Flink 社区鼓励任何人贡献源代码。为了确保贡献者和审阅者愉快地贡献高质量的代码,请遵循本文档中介绍的贡献流程。
+Apache Flink is maintained, improved, and extended by code contributions of volunteers. We welcome contributions to Flink, but due to the size of the project and to preserve the high quality of the code base, we follow a contribution process that is explained in this document.
 
-本文档包含了所有关于 Apache Flink 贡献代码的要点。它描述了准备,测试和提交贡献的流程,阐释了 Flink 代码库的编码指南和代码风格,并提供了设置开发环境的说明。
+**Please feel free to ask questions at any time.** Either send a mail to the [dev mailing list]( {{ site.base }}/community.html#mailing-lists ) or comment on the Jira issue you are working on.
 
-**重要**:在开始编写代码之前,请仔细阅读本文档。遵循下面描述的流程和指南非常重要。否则,你的 pull request 可能不被接受或可能需要大量返工。特别的,在提交实现**新功能**的 pull request 之前,你需要创建一个 Jira issue 并与社区就是否需要此功能达成共识。
+**IMPORTANT**: Please read this document carefully before starting to work on a code contribution. Follow the process and guidelines explained below. Contributing to Apache Flink does not start with opening a pull request. We expect contributors to reach out to us first to discuss the overall approach together. Without consensus with the Flink committers, contributions might require substantial rework or will not be reviewed.
 
 
 
 {% toc %}
 
-## 代码贡献流程
-
-### 在你编码之前...
-
-...请确保有与你的贡献相对应的 Jira 问题。这是 Flink 社区遵循所有代码贡献的一般规则,包括错误修复、改进或新功能,但 *琐碎* 的热修复除外。如果你想修复发现的错误,或者想要为 Flink 添加新功能或改进,在开始实现之前请按照 [如何提交错误报告]({{ site.baseurl }}/zh/how-to-contribute.html#file-a-bug-report) 和 [如何提出改进或新功能]({{ site.baseurl }}/zh/how-to-contribute.html#propose-an-improvement-or-a-new-feature) 指南在 [Flink Jira](http://issues.apache.org/jira/browse/FLINK) 中提交一个 issue。
-
-如果 Jira issue 的描述表明其解决方案将触及代码库的敏感部分,或者问题足够复杂,或者需要添加大量新代码,Flink 社区可能会要求提供设计文档(大多数贡献不需要设计文档)。设计文档的目的是为了确保解决问题的总体方案是正确的,并得到社区一致同意的。需要设计文档的 Jira issue 使用 **`requires-design-doc`** 标签进行标记,任何社区成员都可以在认为有必要设计文档的 Jira issue 上贴上此标签。良好的描述有助于确定 Jira issue 是否需要设计文档,设计文档必须添加或附加到 Jira issue 或添加一个链接到 Jira issue 页面。设计文档应涵盖以下方面:
-
-- 解决方案的概述。
-- API 更改列表(更改后的接口、新的和弃用的配置参数、更改后的行为 ...)。
-- 要改动的主要模块和类。
-- 方案的已知局限性。
-
-任何人都可以添加设计文档,包括问题的汇报者和修复者。
-
-在设计文档被社区以[延迟决策](http://www.apache.org/foundation/glossary.html#LazyConsensus)接受之前,需要设计文档的 Jira issue 的代码贡献将不会被合并到 Flink 的代码库中。请在开始编写代码之前检查是否需要设计文档。
-
-
-### 编码时...
-
-...请遵守以下规则:
-
-- Jira 问题中记录的任何讨论或要求都需要考虑。
-- 尽可能遵循设计文档(如果有设计文档)。如果你的实现偏离设计文档提出的解决方案太多,请更新设计文档并达成共识。微小的变化是可以的,但是在提交代码贡献时应该指出。
-- 严格遵循[编码指南]({{site.base}}/zh/contribute-code.html#coding-guidelines)和[代码样式]({{ site.base }}/zh/contribute-code.html#code-style)。
-- 不要将不相关的代码混合到一个代码贡献中。
-
-**请随时提出问题**,可以发送邮件到[dev邮件列表]({{site.base}}/community.html #fmail-list)或在 Jira issue 下留言。
-
-以下说明将帮助你[配置开发环境]({{site.base}}/zh/contrib-code.html#setup-a-development-environment)。
-
-
-### 验证代码的合规性
-
-在提交你的贡献之前验证更改的合规性非常重要。这包括:
-
-- 确保代码构建。
-- 验证所有现有测试和新测试都通过。
-- 检查是否违反了代码样式。
-- 确保不包含无关的或不必要的格式更改。
-
-你可以通过调用以下代码来构建代码,运行测试并检查(部分)代码样式:
-
-```
-mvn clean verify
-```
-
-请注意,Flink 代码库中的一些测试是不稳定的,可能会失败。Flink 社区正在努力改进这些测试,但有时这是不可能的,例如,当测试包括外部依赖时。我们在 Jira 中追踪了所有已知的不稳定测试并贴上了**“test-stability”**标签。如果你遇到似乎与你的更改无关的测试失败,请检查(并扩展)[已知的不稳定测试](https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20test-stability%20ORDER%20BY%20priority%20DESC) 列表。
-
-请注意,我们还会为 Java、Scala 和 Hadoop 的不同版本组合来运行编译构建(build profiles),以验证你的代码贡献。我们鼓励每个贡献者都使用*持续集成*服务,无论何时推送更改,它都会自动测试仓库中的代码。[最佳实践]({{site.base}}/zh/contribution-code.html#best-practices)指南介绍了如何将 [Travis](https://travis-ci.org/) 与你的 GitHub 仓库集成。
-
-除了自动化测试之外,请检查更改的差异并删除所有不相关的更改,例如不必要的重新格式化。
-
-
-
-
-### 准备并提交你的代码贡献
-
-要使代码更易于合并,请将其 rebase 到主仓库的 master 分支的最新版本之上。另外还请遵守 [commit message指南]( {{ site.base }}/zh/contribute-code.html#coding-guidelines ),清理你的提交历史记录,并将你的提交压缩到一个适当的集合中。请在 rebase 和压缩之后再次验证你的代码贡献。
-
-Flink 项目通过 [GitHub Mirror](https://github.com/apache/flink) 以 [Pull Requests](https://help.github.com/articles/using-pull-requests) 的形式接受代码贡献。Pull request 是一种提供补丁的简单方法,它提供了一个指向包含更改的代码分支的链接。
-
-要提交 pull request,请将你的贡献推回到 Flink 仓库的分支中。
-
-```
-git push origin myBranch
-```
-
-打开你的 fork 仓库网页(`https://github.com/<your-user-name>/flink`)并使用*“Create Pull Request”*按钮开始创建 pull request。 确保 base fork 是`apache/flink master`,并且 head fork 是包含更改的分支。再为 pull request 添加一个有意义的描述并创建它。
-
-也可以将补丁附加到 [Jira]({{site.FLINK_ISSUES_URL}}) issue 页面。
-
------
-
-## 编码指南
-
-### Pull request 和 commit message
-{:.no_toc}
-
-- **单 PR 单修改**:请不要将各种不相关的更改组合在单个 PR 中。相反,创建多个单独的 PR 请求,每个 PR 关联一个 Jira issue。这确保了 PR 是与*主题相关的*,可以更容易地合并,并且通常只会与特定主题相关的 merge 冲突。
-
-- **没有WIP PR**: 我们将 PR 视为引用的代码 *就是* 将合并到当前 *稳定* master 分支中的请求。因此,pull request 不应该是“正在进行中”(Working In Process, WIP)。当你确信代码可以合并到当前 master 分支中,再创建 pull request。如果你想对代码先进行一些讨论,可以贴一个你的工作分支的链接。
-
-- **commit message**:PR 必须有相关联的 Jira issue;如果不存在,请先创建一个 Jira issue。最新的提交消息应该引用该 issue。一个提交消息示例是 **[FLINK-633] Fix NullPointerException for empty UDF parameters**。这样,pull request 就已经描述了了它想做什么,例如,用什么方法修复了什么 bug。
-
-- **追加 review commits**:当你的 pull request 收到有关更改和改进的评论后,请为这些更改追加 commits。*请不要 rebase 和压缩 commits。*这能让人们更清楚的审查你的新的更新,否则,审查者 它允许人们独立地审查清理工作。否则,审阅者必须再次从头到尾审查一遍 diff。
-
-- **不要有 merge commits**:请不要创建任何包含 merge commits 的 PR。如果想要将你的更改更新到最新的 master 分支上,请使用`git pull --rebase origin master` 命令。
-
-### 异常和错误信息
-{:.no_toc}
-
-- **吞下异常**:不要吞下异常并打印堆栈跟踪,而是检查类似的类是如何处理异常的。
-
-- **有意义的错误信息**:提供有意义的错误信息消息,试着想象为什么要抛出异常(用户做错了什么),给出的信息要能帮助用户解决问题。
-
-### 测试
-{:.no_toc}
-
-- **测试需要通过**。测试未通过或编译未成功的 pull request 将不会有任何进一步的审查。我们建议你将个人 GitHub 帐户与 [Travis CI](http://travis-ci.org/)(像 Flink GitHub 仓库一样)连接。无论何时将更新推入 *你的* GitHub 仓库,Travis 都会针对所有测试环境运行测试。请注意之前的[关于不稳定测试的说明]({{site.base}}/zh/contribute-code.html#verifying-the-compliance-of-your-code)。
-
-- **需要测试新功能**。所有新加的功能都需要测试覆盖,*严格要求*。非常容易在之后的合并中不小心移除或破坏了这个特性。如果特性没有受到测试的保护,则不会捕获到这一点。任何未被测试覆盖的东西都被认为是不完善的(cosmetic)。
-
-- **使用适当的测试机制**. 请使用单元测试来测试独立的功能,例如方法。单元测试应该在几秒内执行完成,而且应该是首选测试方法。单元测试类的名称必须以 `*Test `结尾。使用集成测试来实现长时间运行的测试。Flink 提供了测试工具来启动 Flink 实例并运行作业的端到端测试。这些测试比较重,并且会显著延长构建时间。因此,应谨慎添加它们。端到端测试类的名称必须以 `*ITCa   se` 结尾。
-
-### 文档
-{:.no_toc}
-
-- **文档更新**。许多更改也会影响文档(Javadoc 和 `docs/` 目录中的用户文档)。这些 pull request 和补丁中需要相应地更新文档,否则这些更改无法被合并。有关如何更新文档的信息,请参阅[文档贡献]({{site.base}}/zh/contribute-documentation.html)指南。
-- **公共方法的 Javadocs**。所有的公共方法和类都需要有 Javadoc。请编写有意义的文档。好的文档是简洁和信息丰富的。如果你更改了方法的签名或行为,请务必更新 Javadoc。
-
-### 代码格式化
-{:.no_toc}
-
-- **不要格式化**。请将源文件的代码格式化保持在最低限度。如果你(或你的 IDE 自动)删除或替换空白、重新格式化代码或注释,那么 diff 就不可读了。另外,更改相同文件的其他补丁将会无法合并。请将 IDE 配置为不会自动重新格式化代码。带有过多或不必要的代码格式化的 pull request 可能会被拒绝。
-
-
-
------
-
-## 代码风格
-
-### 许可证
-- **Apache license headers。** 确保你的文件头部有 Apache 许可证。当你构建代码时,RAT 插件会检查这一点。
-
-### 导入
-- **在包声明之前和之后添加空行。**
-- **不要有未使用的导入。**
-- **不要有多余的导入。**
-- **不要使用通配符导入。** 在添加代码时,甚至在重构过程中,它们都可能导致有问题。
-- **导入顺序。** 导入必须按字母顺序排列,分成以下几块,每个块之间用空行分隔:
-	- &lt;imports from org.apache.flink.*&gt;
-	- &lt;imports from org.apache.flink.shaded.*&gt;
-	- &lt;imports from other libraries&gt;
-	- &lt;imports from javax.*&gt;
-	- &lt;imports from java.*&gt;
-	- &lt;imports from scala.*&gt;
-	- &lt;static imports&gt;
-
-### 命名
-- **包名必须以字母开头,并且不能包含大写字母或特殊字符。**
-- **非私有静态final字段必须是大写的,单词之间用下划线分隔。** (`MY_STATIC_VARIABLE`)
-- **非静态字段/方法必须使用小写开头的驼峰法。** (`myNonStaticField`)
-
-### 空格
-- **制表符 vs 空格。** 我们使用制表符缩进,而不是空格。我们在这个问题上并没有信仰偏好,只是碰巧在项目初始时使用了制表符,而不要混用空格和制表符是很重要的 (合并/差异冲突)。
-- **末尾不要有空格。**
-- **运算符和关键字两边添加空格** 运算符(`+`, `=`, `>`, ...)和关键字 (`if`, `for`, `catch`, ...) 在它们之前和之后必须有一个空格,前提是它们不在行首或行尾。
-
-### 大括号
-- **左花括号('{')不能放在新行上。**
-- **右花括号('}')必须始终放在行首。**
-- **块。** 在 `if`, `for`, `while`, `do`, ... 之后的所有语句都必须用花括号封装在一个块中(即使这个块包含一条语句)。
-
-  ```java
-  for (…) {
-   …
+## Code Contribution Process
+
+<style>
+.contribute-grid {
+  margin-bottom: 10px;
+  display: flex;
+  flex-direction: column;
+  margin-left: -2px;
+  margin-right: -2px;
+}
+
+.contribute-grid .column {
+  margin-top: 4px;
+  padding: 0 2px;
+}
+
+@media only screen and (min-width: 480px) {
+  .contribute-grid {
+    flex-direction: row;
+    flex-wrap: wrap;
   }
-  ```
 
-    如果你想知道原因,请回忆一下苹果SSL库中著名的[*goto bug*](https://www.imperialviolet.org/2014/02/22/applebug.html)。
-
-
-### Javadocs
-
-- **所有公共/受保护的方法和类必须有一个Javadoc。**
-
-- **Javadoc 的第一句话必须以句号结束。**
-
-- **段落必须用新行隔开,并以&lt;p&gt;开头。**
-
-
-### 修饰符
-
-- **没有多余修饰符。** 例如,接口方法中的 public 修饰符。
-
-- **遵循 JLS3 修饰符顺序。** 修饰符必须按照以下顺序排列:public、protected、private、abstract、static、final、transient、volatile、synchronized、native、strictfp。
-
-
-### 文件
-
-- **所有文件必须以`\n`结尾。**
-
-- **文件长度不能超过3000行。**
-
-
-### 杂项
-
-- **数组必须定义为 Java-style。** 例如,`public String[] array`。
-- **使用 Flink Preconditions。** 为了增加一致性,请始终使用`org.apache.flink.Preconditions`的`checkNotNull`和`checkArgument`方法,Apache Commons Validate或 Google Guava。
-- **不要使用原生的泛型类型。** 不要使用原生的泛型类型,除非是必须需要(某些时候签名匹配、数组是必需的)。
-- **Suppress warnings。** 如果无法避免的警告(如“unchecked”或“serial”),则添加注解以抑制警告。
-- **注释。** 在代码中添加注释。这段代码是在做什么?添加 Javadoc 或者继承它们,而不是在方法里加注释。不要自动生成注释,并避免不必要的注释,如:
+  .contribute-grid .column {
+    flex: 0 0 50%;
+  }
 
-  ​```java
-i++; // 增加1
-```
+  .contribute-grid .column {
+    margin-top: 4px;
+  }
+}
 
------
+@media only screen and (min-width: 960px) {
+  .contribute-grid {
+    flex-wrap: nowrap;
+  }
 
-## 最佳实践
+  .contribute-grid .column {
+    flex: 0 0 25%;
+  }
 
-- Travis: Flink 已经预先配置了 [Travis CI](http://docs.travis-ci.com/) 。它可以很容易地为你 fork 的仓库启用(它使用 GitHub 进行身份验证,因此你不需要额外的帐户)。只需将 *Travis CI* hook 添加到你的仓库(*Settings --> Integrations & services --> Add service*),并在 [Travis](https://travis-ci.org/profile) 上启用 `flink` 仓库的测试。
+}
+
+.contribute-grid .panel {
+  height: 100%;
+  margin: 0;
+}
+
+.contribute-grid .panel-body {
+  padding: 10px;
+}
+
+.contribute-grid h2 {
+  margin: 0 0 10px 0;
+  padding: 0;
+  display: flex;
+  align-items: flex-start;
+}
+
+.contribute-grid .number {
+  margin-right: 0.25em;
+  font-size: 1.5em;
+  line-height: 0.9;
+}
+</style>
+
+
+<div class="alert alert-warning" role="alert">
+    <b>Note:</b> The code contribution process has changed recently (June 2019). The community <a href="https://lists.apache.org/thread.html/1e2b85d0095331606ad0411ca028f061382af08138776146589914f8@%3Cdev.flink.apache.org%3E">decided</a> to shift the "backpressure" from pull requests to Jira, by requiring contributors to get consensus (indicated by being assigned to the ticket) before opening a pull request.
+</div>
+
+
+<div class="contribute-grid">
+  <div class="column">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        <h2><span class="number">1</span><a href="#consensus">Discuss</a></h2>
+        <p>Create a Jira ticket or mailing list discussion and reach consensus</p>
+        <p>Agree on importance, relevance, scope of the ticket, discuss the implementation approach and find a committer willing to review and merge the change.</p>
+        <p><b>Only committers can assign a Jira ticket.</b></p>
+      </div>
+    </div>
+  </div>
+  <div class="column">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        <h2><span class="number">2</span><a href="#implement">Implement</a></h2>
+        <p>Implement the change according to the <a href="{{ site.base }}/contributing/code-style-and-quality.html">Code Style and Quality Guide</a> and the approach agreed upon in the Jira ticket.</p> <br />
+        <p><b>Only start working on the implementation if there is consensus on the approach (e.g. you are assigned to the ticket)</b></p>
+      </div>
+    </div>
+  </div>
+  <div class="column">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        <h2><span class="number">3</span><a href="#review">Review</a></h2>
+        <p>Open a pull request and work with the reviewer.</p>
+        <p><b>Pull requests belonging to unassigned Jira tickets will not be reviewed or merged by the community.</b></p>
+      </div>
+    </div>
+  </div>
+  <div class="column">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        <h2><span class="number">4</span><a href="#merge">Merge</a></h2>
+        <p>A committer of Flink checks if the contribution fulfills the requirements and merges the code to the codebase.</p>
+      </div>
+    </div>
+  </div>
+</div>
 
------
+<div class="row">
+  <div class="col-sm-12">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        Note: <i>trivial</i> hot fixes such as typos or syntax errors can be opened as a <code>[hotfix]</code> pull request, without a Jira ticket.
+      </div>
+    </div>
+  </div>
+</div>
 
-## 设置开发环境
 
-### 开发和构建 Flink 的先决条件
 
-* 类 unix 环境(我们使用 Linux、Mac OS X、以及 Cygwin)
-* git
-* Maven(至少 3.0.4 版本)
-* Java 8
+<a name="consensus"></a>
 
-### 克隆仓库
-{:.no_toc}
+### 1. Create Jira Ticket and Reach Consensus
 
-Apache Flink 的源代码存储在 [git](http://git-scm.com/) 仓库中,[GitHub](https://github.com/apache/flink) 上有该仓库的镜像。在 GitHub 上交流(exchange)代码的常见方法是将仓库 fork 到个人的 GitHub 帐户中。为此,你需要有一个 [GitHub](https://github.com) 帐户,如果没有,可以免费创建一个帐户。Fork 一个仓库意味着 GitHub 为你创建了一个该仓库的副本。可以通过点击 [仓库页面](https://github.com/apache/flink) 右上角的 *Fork* 按钮来完成的。一旦你在个人帐户中拥有了 Flink 仓库的 fork,你就可以将该仓库克隆到你的本地计算机上。
 
-```
-git clone https://github.com/<your-user-name>/flink.git
-```
+The first step for making a contribution to Apache Flink is to reach consensus with the Flink community. This means agreeing on the scope and implementation approach of a change.
 
-代码将被下载到一个名为 `flink` 的目录中。
+In most cases, the discussion should happen in [Flink's bug tracker: Jira](https://issues.apache.org/jira/projects/FLINK/summary).
 
+The following types of changes require a `[DISCUSS]` thread on the dev@flink.a.o Flink mailing list:
 
-### 代理设置
+ - big changes (major new feature; big refactorings, involving multiple components)
+ - potentially controversial changes or issues
+ - changes with very unclear approaches or multiple equal approaches
 
-如果你在一个防火墙背后,可能需要为 Maven 和 IDE 配置代理。
+ Do not open a Jira ticket for these types of changes before the discussion has come to a conclusion.
+ Jira tickets based on a dev@ discussion need to link to that discussion and should summarize the outcome.
 
-例如,WikipediaEditsSourceTest 通过 IRC 进行通信,需要通过 [SOCKS 代理服务器](http://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html)。
 
-### 安装一个 IDE 并导入源代码
-{:.no_toc}
 
-Flink 提交者使用 IntelliJ IDEA 和 Eclipse IDE 开发 Flink 源码。
+**Requirements for a Jira ticket to get consensus:**
 
+  - Formal requirements
+     - The *Title* describes the problem concisely.
+     - The *Description* gives all the details needed to understand the problem or feature request.
+     - The *Component* field is set: Many committers and contributors only focus on certain subsystems of Flink. Setting the appropriate component is important for getting their attention.
+  - There is **agreement** that the ticket solves a valid problem, and that it is a **good fit** for Flink.
+    The Flink community considers the following aspects:
+     - Does the contribution alter the behavior of features or components in a way that it may break previous users’ programs and setups? If yes, there needs to be a discussion and agreement that this change is desirable.
+     - Does the contribution conceptually fit well into Flink? Is it too much of a special case such that it makes things more complicated for the common case, or bloats the abstractions / APIs?
+     - Does the feature fit well into Flink’s architecture? Will it scale and keep Flink flexible for the future, or will the feature restrict Flink in the future?
+     - Is the feature a significant new addition (rather than an improvement to an existing part)? If yes, will the Flink community commit to maintaining this feature?
+     - Does this feature align well with Flink's roadmap and currently ongoing efforts?
+     - Does the feature produce added value for Flink users or developers? Or does it introduce the risk of regression without adding relevant user or developer benefit?
+     - Could the contribution live in another repository, e.g., Apache Bahir or another external repository?
+     - Is this a contribution just for the sake of getting a commit in an open source project (fixing typos, style changes merely for taste reasons)
+  - There is **consensus** on how to solve the problem. This includes considerations such as
+    - API and data backwards compatibility and migration strategies
+    - Testing strategies
+    - Impact on Flink's build time
+    - Dependencies and their licenses
 
-IDE 的最低要求是:
+If a change is identified as a large or controversial change in the discussion on Jira, it might require a [Flink Improvement Proposal (FLIP)](https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals) or a discussion on the [dev mailing list]( {{ site.base }}/community.html#mailing-lists) to reach agreement and consensus.
 
-- 支持 Java 和 Scala(也要支持混合项目)
-- 支持 Maven (能用于 Java 和 Scala)
+Contributors can expect to get a first reaction from a committer within a few days after opening the ticket. If a ticket doesn't get any attention, we recommend reaching out to the [developer mailing list]( {{ site.base }}/community.html#mailing-lists). Note that the Flink community sometimes does not have the capacity to accept all incoming contributions.
 
-#### IntelliJ IDEA
 
-IntelliJ IDE 支持了开箱即用的 Maven,并且提供了 Scala 开发的插件。
+Once all requirements for the ticket are met, a committer will assign somebody to the *`Assignee`* field of the ticket to work on it.
+Only committers have the permission to assign somebody.
 
-- IntelliJ 下载: [https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)
-- IntelliJ Scala 插件: [http://plugins.jetbrains.com/plugin/?id=1347](http://plugins.jetbrains.com/plugin/?id=1347)
+**Pull requests belonging to unassigned Jira tickets will not be reviewed or merged by the community**.
 
-查看我们的 [安装配置 IntelliJ]({{site.docs-stable}}/flinkDev/ide_setup.html#intellij-idea) 指南以获得详细信息。
 
-#### Eclipse Scala IDE
+<a name="implement"></a>
 
-对于 Eclipse 用户,我们建议使用基于 Eclipse Kepler 的 Scala IDE 3.0.3。这是一个稍微老一点的版本,
-我们发现它是对 Flink 这样的复杂项目最有效的版本。
+### 2. Implement your change
 
-有关最新 Scala IDE 版本的详细信息和指南,请参阅 [如何安装配置Eclipse]({{site.docs-stable}}/flinkDev/ide_setup.html#eclipse) 文档。
+Once you've been assigned to a Jira issue, you may start to implement the required changes.
 
-**注意:**在执行如下设置之前,请确保在命令行运行构建一次 (`mvn clean install -DskipTests`;见下文).
+Here are some further points to keep in mind while implementing:
 
-1. 下载 Scala IDE (首选)或将插件安装到 Eclipse Kepler。请查阅
-   [如何安装配置Eclipse]({{site.docs-stable}}/flinkDev/ide_setup.html#eclipse) 下载链接和说明。
-2. 添加 “macroparadise” 编译器插件到Scala编译器中。
-   打开 "Window" -> "Preferences" -> "Scala" -> "Compiler" -> "Advanced" 并将 *macroparadise* jar 包路径填到 “Xplugin” 字段中(通常是 "/home/*-your-user-*/.m2/repository/org/scalamacros/paradise_2.10.4/2.0.1/paradise_2.10.4-2.0.1.jar")。
-   注意:如果你没有jar文件,那么你可能没有运行命令行构建。
-3. 导入 Flink Maven 项目 ("File" -> "Import" -> "Maven" -> "Existing Maven Projects")
-4. 在导入期间,Eclipse 将要求自动安装额外的 Maven 构建助手插件。
-5. 关闭“flink-java8”项目。因为 Eclipse Kepler 不支持 Java 8,所以你不能开发这个项目。
+- [Set up a Flink development environment](https://cwiki.apache.org/confluence/display/FLINK/Setting+up+a+Flink+development+environment)
+- Follow the [Code Style and Quality Guide]({{ site.base }}/contributing/code-style-and-quality.html) of Flink
+- Take any discussions and requirements from the Jira issue or design document into account.
+- Do not mix unrelated issues into one contribution.
 
-#### 导入源代码
 
-Apache Flink 使用 Apache Maven 作为构建工具。大多数 IDE 都能够导入 Maven 项目。
+<a name="review"></a>
 
-### 构建代码
-{:.no_toc}
+### 3. Open a Pull Request
 
-要从源代码构建 Flink ,打开终端,导航到 Flink 源代码的根目录,调用:
+Considerations before opening a pull request:
 
-```
-mvn clean package
-```
+ - Make sure that **`mvn clean verify`** is passing on your changes to ensure that all checks pass, the code builds and that all tests pass.
+ - Execute the [End to End tests of Flink](https://github.com/apache/flink/tree/master/flink-end-to-end-tests#running-tests).
+ - Make sure no unrelated or unnecessary reformatting changes are included.
+ - Make sure your commit history adheres to the requirements.
+ - Make sure your change has been rebased to the latest commits in your base branch.
+ - Make sure the pull request refers to the respective Jira, and that each Jira issue is assigned to exactly one pull request (in case of multiple pull requests for one Jira; resolve that situation first)
 
-这将构建 Flink 并运行所有测试。Flink 将安装到 `build-target` 中。
+ Considerations before or right after opening a pull request:
 
-要构建 Flink 而不执行测试,你可以调用:
+ - Make sure that the branch is building successfully on [Travis](https://travis-ci.org/).
 
-```
-mvn -DskipTests clean package
-```
+Code changes in Flink are reviewed and accepted through [GitHub pull requests](https://help.github.com/en/articles/creating-a-pull-request).
 
+There is a separate guide on [how to review a pull request]({{ site.base }}/contributing/reviewing-prs.html), including our pull request review process. As a code author, you should prepare your pull request to meet all requirements.
 
------
 
 
-## Committer 如何使用 Git
 
-只有 ASF 的基础架构团队可以管理访问 GitHub 镜像。因此,comitters 必须将更改推送到 ASF 的 git 仓库。
 
-### 主仓库
-{:.no_toc}
 
-**ASF writable**: https://gitbox.apache.org/repos/asf/flink.git
 
-**ASF read-only**: https://github.com/apache/flink.git
+<a name="merge"></a>
 
-注意:Flink使用JDK 8构建和运行。
+### 4. Merge change
 
+The code will be merged by a committer of Flink once the review is finished. The Jira ticket will be closed afterwards.
 
-如果你想为 Hadoop 1 构建,可以通过`mvn clean package -DskipTests -Dhadoop.profile=1`来生效 build profile。
diff --git a/contributing/how-to-contribute.zh.md b/contributing/how-to-contribute.zh.md
index a91195a..c211411 100644
--- a/contributing/how-to-contribute.zh.md
+++ b/contributing/how-to-contribute.zh.md
@@ -4,143 +4,136 @@ title: "如何参与贡献"
 
 <hr />
 
-Apache Flink 社区是一个开放友好的社区。我们诚挚地欢迎每个人加入社区并为 Apache Flink 做出贡献。有许多方式可以参与社区并为 Flink 做出贡献,包括提问、提交错误报告、提出新功能、加入邮件列表上的讨论、贡献代码或文档、改进网站、以及测试候选版本。
-
-{% toc %}
-
-## 问问题!
-
-Apache Flink 社区非常乐意帮助并回答你的问题。我们提供了[用户邮件列表]({{ site.baseurl }}/zh/community.html#mailing-lists)并在 Stack Overflow 网站上创建了 [[apache-flink]](http://stackoverflow.com/questions/tagged/apache-flink) 标签。
-
------
-
-## 提交错误报告
-
-如果你在使用 Flink 时遇到了问题,请告知我们并提交错误报告。打开 [Flink Jira](http://issues.apache.org/jira/browse/FLINK),登录并点击顶部红色的 **Create** 按钮。请提供你遇到的问题的详细信息,如果可能,请添加有助于重现问题的描述。非常感谢。
-
------
-
-## 提出改进或新功能
-
-我们的社区一直在寻找反馈来改进 Apache Flink。如果你对如何改进 Flink 有一个想法或者想到了一个新功能,这绝对能帮到 Flink 用户,请在 [Flink Jira](http://issues.apache.org/jira/browse/FLINK) 中提交一个问题。改进或新功能最好能详细描述下,并尽可能地加上支持的范围和需求。详细信息很重要,原因如下:
-
-- 它可确保在实现改进或功能时满足你的需求。
-- 它有助于估算工作量并设计满足你需求的解决方案。
-- 它允许围绕这个问题展开建设性的讨论。
-
-如果你计划自己贡献改进或功能,也需要提供详细信息。在这种情况下,请阅读[贡献代码]({{ site.base }}/zh/contribute-code.html)指南。
-
-在开始实现之前,我们建议首先与社区就是否需要新功能以及如何实现新功能达成共识。某些功能可能超出了项目的范围,最好尽早发现。
-
-对于从根本上改变 Flink 的非常大的功能,我们有另一个流程:[Flink 改进提案(Flink Improvement Proposals, FLIP)](https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals)。如果你有兴趣,可以在那里提出新功能,或者加入现有提案的讨论。
-
------
-
-## 帮助他人并加入讨论
-
-Apache Flink 社区中的大多数通信都发生在两个邮件列表中:
-
-- 用户邮件列表  `user@flink.apache.org ` 是 Apache Flink 用户提问和寻求帮助或建议的地方。加入用户列表并帮助其他用户是为Flink社区做出贡献的一种非常好的方式。此外,Stack Overflow 网站上还有 [[apache-flink]](http://stackoverflow.com/questions/tagged/apache-flink) 标签,你可以在那里帮助 Flink 用户(并获得一些积分)。
-- 开发邮件列表 `dev@flink.apache.org` 是 Flink 开发人员交流想法、讨论新功能、发布新版本以及开发过程的地方。如果你有兴趣为 Flink 贡献代码,你应该加入此邮件列表。
-
-非常欢迎你[订阅这两个邮件列表]({{ site.baseurl }}/zh/community.html#mailing-lists)。
-
------
-
-## 通过审查代码来贡献
-
-Apache Flink 项目以 [Github pull request](https://github.com/apache/flink/pulls) 的形式接收许多代码贡献。为 Flink 社区做出贡献的一个很好的方法是帮助审查 pull request。
-
-**如果你想帮助审查 pull request,请阅读[审查指南]({{ site.baseurl }}/zh/reviewing-prs.html)。**
-
------
-
-## 测试一个候选版本
-
-Apache Flink 通过其活跃的社区不断改进。每隔几周,我们都会发布 Apache Flink 的新版本,其中包含了 bug 修复、改进和新特性。发布新版本的过程包括以下步骤:
-
-1. 构建一个新的发布候选版本并开始投票(通常持续72小时)。
-2. 测试候选版本并投票(如果没有发现问题,则使用`+1`;如果候选版本有问题,则使用`-1`)。
-3. 如果候选发布版有问题,请返回第1步。否则我们发布该版本。
-
-我们的 wiki 包含一个页面,其中总结了[发布的测试过程](https://cwiki.apache.org/confluence/display/FLINK/Releasing)。如果由一小群人完成发布测试工作会很困难,更多人参与则很轻松。Flink 社区鼓励每个人参与测试候选发布版。通过测试候选版本,可以确保下一个 Flink 版本适用于你的环境,并帮助提高版本的质量。
-
------
-
-## 贡献代码
-
-Apache Flink 通过志愿者的代码贡献得到维护、改进和扩展。Apache Flink 社区鼓励任何人贡献源代码。为了确保贡献者和评审者有一个愉快的贡献体验并保持高质量的代码库,请遵循我们的[贡献代码]({{ site.base }}/zh/contribute-code.html)指南。该指南还包括有关如何设置开发环境、编码指南和代码样式的说明,并说明如何提交代码贡献。
-
-**在开始贡献代码之前,请阅读[贡献代码]({{ site.base }}/zh/contribute-code.html)指南。**
-
-另请阅读[提交贡献者许可协议]({{ site.baseurl }}/zh/how-to-contribute.html#submit-a-contributor-license-agreement)部分。
-
-### 正在寻找一个可以参与贡献的 issue ?
-{:.no_toc}
-
-我们在 [Flink Jira](https://issues.apache.org/jira/browse/FLINK/?selectedTab=com.atlassian.jira.jira-projects-plugin:issues-panel) 中维护了所有已知 bug,改进建议和功能需求的列表。对于新贡献者友好的问题,我们将其打上了特殊的 "starter" 标记。这些任务应该很容易解决,并将帮助你熟悉项目和贡献过程。
-
-如果你正在寻找可以参与贡献的 issue,请查看 [starter issues](https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20starter%20ORDER%20BY%20priority%20DESC) 列表。你当然也可以选择[任何其他问题](https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20priority%20DESC)继续工作。如果你对感兴趣的 issue 有问题的话,也可以随时提问。
+Apache Flink is developed by an open and friendly community. Everybody is cordially welcome to join the community and contribute to Apache Flink. There are several ways to interact with the community and to contribute to Flink including asking questions, filing bug reports, proposing new features, joining discussions on the mailing lists, contributing code or documentation, improving the website, or testing release candidates.
+
+
+<h1>What do you want to do?</h1>
+<p>Contributing to Apache Flink goes beyond writing code for the project. Below, we list different opportunities to help the project:</p>
+
+
+<table class="table table-bordered">
+  <thead>
+    <tr>
+      <th>Area</th>
+      <th>Further information</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> Report a Bug</td>
+      <td>To report a problem with Flink, open <a href="http://issues.apache.org/jira/browse/FLINK">Flink’s Jira</a>, log in if necessary, and click on the red Create button at the top. <br/>
+      Please give detailed information about the problem you encountered and, if possible, add a description that helps to reproduce the problem.</td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-console" aria-hidden="true"></span> Contribute Code</td>
+      <td>Read the <a href="{{ site.baseurl }}/contributing/contribute-code.html">Code Contribution Guide</a></td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-ok" aria-hidden="true"></span> Help With Code Reviews</td>
+      <td>Read the <a href="{{ site.baseurl }}/contributing/reviewing-prs.html">Code Review Guide</a></td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span> Help Preparing a Release</td>
+      <td>
+        Releasing a new version consists of the following steps:
+        <ol>
+          <li>Building a new release candidate and starting a vote (usually for 72 hours) on the dev@flink.apache.org list</li>
+          <li>Testing the release candidate and voting (+1 if no issues were found, -1 if the release candidate has issues).</li>
+          <li>Going back to step 1 if the release candidate had issues. Otherwise we publish the release.</li>
+        </ol>
+        Read the <a href="https://cwiki.apache.org/confluence/display/FLINK/Releasing">test procedure for a release</a>.
+      </td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> Contribute Documentation</td>
+      <td>Read the <a href="{{ site.baseurl }}/contributing/contribute-documentation.html">Documentation Contribution Guide</a></td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-user" aria-hidden="true"></span> Support Flink Users</td>
+      <td>
+        <ul class="contribute-card-list">
+          <li>Reply to questions on the <a href="https://flink.apache.org/community.html#mailing-lists">user mailing list</a></li>
+          <li>Reply to Flink related questions on <a href="https://stackoverflow.com/questions/tagged/apache-flink">Stack Overflow</a> with the <a href="https://stackoverflow.com/questions/tagged/apache-flink"><code style="background-color: #cee0ed; border-color: #cee0ed;">apache-flink</code></a>, <a href="https://stackoverflow.com/questions/tagged/flink-streaming"><code style="background-color: #cee0ed; border-color: #cee0ed;">flink-streaming</code></a> or <a href="https://stackoverflow [...]
+          <li>Check the latest issues in <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20created%20DESC%2C%20priority%20DESC%2C%20updated%20DESC">Jira</a> for tickets which are actually user questions</li>
+        </ul>
+      </td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-blackboard" aria-hidden="true"></span> Improve The Website</td>
+      <td>Read the <a href="{{ site.baseurl }}/contributing/improve-website.html">Website Contribution Guide</a></td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-volume-up" aria-hidden="true"></span> Spread the Word About Flink</td>
+      <td>
+        <ul class="contribute-card-list">
+        <li>Organize or attend a <a href="https://www.meetup.com/topics/apache-flink/">Flink Meetup</a></li>
+        <li>Contribute to the <a href="https://flink.apache.org/blog/">Flink blog</a></li>
+        <li>Share your conference, meetup or blog post on the <a href="https://flink.apache.org/community.html#mailing-lists">community@flink.apache.org mailing list</a>, or tweet about it, tagging the <a href="https://twitter.com/ApacheFlink">@ApacheFlink</a> handle.</li>
+      </ul>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2">
+        <span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span> Any other question? Reach out to the <a href="https://flink.apache.org/community.html#mailing-lists">dev@flink.apache.org mailing list</a> to get help!
+      </td>
+    </tr>
+  </tbody>
+</table>
+
+
+
+## Further reading
+
+### Submit a Contributor License Agreement
+
+Please submit a contributor license agreement to the Apache Software Foundation (ASF) if you are contributing a lot of code to Apache Flink. The following quote from [http://www.apache.org/licenses](http://www.apache.org/licenses/#clas) gives more information about the ICLA and CCLA and why they are necessary.
+
+> The ASF desires that all contributors of ideas, code, or documentation to the Apache projects complete, sign, and submit (via postal mail, fax or email) an [Individual Contributor License Agreement](http://www.apache.org/licenses/icla.txt) (CLA) [ [PDF form](http://www.apache.org/licenses/icla.pdf) ]. The purpose of this agreement is to clearly define the terms under which intellectual property has been contributed to the ASF and thereby allow us to defend the project should there be a [...]
+>
+> For a corporation that has assigned employees to work on an Apache project, a [Corporate CLA](http://www.apache.org/licenses/cla-corporate.txt) (CCLA) is available for contributing intellectual property via the corporation, that may have been assigned as part of an employment agreement. Note that a Corporate CLA does not remove the need for every developer to sign their own CLA as an individual, to cover any of their contributions which are not owned by the corporation signing the CCLA.
+>
+>  ...
 
 -----
 
-## 贡献文档
+### Becoming a Flink Committer and PMC member
 
-良好的文档对任何类型的软件都至关重要。对于复杂的软件系统尤其如此,例如 Apache Flink 等分布式数据处理引擎。Apache Flink社区旨在提供简明,精确和完整的文档,并欢迎任何改进 Apache Flink 文档的贡献。
+#### How to become a committer
 
-- 如果发现文档缺失、不正确或过时的问题,可以提交一个 [Jira issue](http://issues.apache.org/jira/browse/FLINK) 。
-- Flink 文档是用 Markdown 编写的,位于[Flink 源码库]({{ site.baseurl }}/zh/community.html#main-source-repositories)的`docs`文件夹中。有关如何更新和改进文档以及提供贡献的详细说明,请参阅[贡献文档]({{ site.base }}/zh/contribute-documentation.html) 指南。
+Committers are community members that have write access to the project's repositories, i.e., they can modify the code, documentation, and website by themselves and also accept other contributions.
 
------
+There is no strict protocol for becoming a committer or PMC member. Candidates for new committers are typically people that are active contributors and community members.
 
-## 改进网站
+Candidates for new committers are suggested by current committers or PMC members, and voted upon by the PMC.
 
-[Apache Flink 网站](http://flink.apache.org)展示了 Apache Flink 及其社区。它有几个用途,包括:
+If you would like to become a committer, you should engage with the community and start contributing to Apache Flink in any of the above ways. You might also want to talk to other committers and ask for their advice and guidance.
 
-- 向访问者介绍 Apache Flink 及其功能。
-- 鼓励访问者下载和使用 Flink 。
-- 鼓励访客与社区互动。
+#### What are we looking for in Committers
 
-我们欢迎任何改进我们网站的贡献。
+Being a committer means being recognized as a significant contributor to the project (community or technology), and having the tools to help with the development. Committer candidates are community members who have made good contributions over an extended period of time and want to continue their contributions.
 
-- 如果你认为我们的网站可以改进,请提交一个 [Jira issue](http://issues.apache.org/jira/browse/FLINK) 。
-- 如果你想更新和改进网站,请按照[改进网站]({{ site.baseurl }}/zh/improve-website.html)指南进行操作。
+Community contributions include helping to answer user questions on the mailing list, verifying release candidates, giving talks, organizing community events, and other forms of evangelism and community building. The "Apache Way" has a strong focus on the project community, and committers can be recognized for outstanding community contributions even without any code contributions.
 
------
+Code/technology contributions include contributed pull requests (patches), design discussions, reviews, testing, and other help in identifying and fixing bugs. Especially constructive and high quality design discussions, as well as helping other contributors, are strong indicators.
 
-## 更多的贡献方式...
+While the prior points give ways to identify promising candidates, the following are "must haves" for any committer candidate:
 
-还有很多方法可以为 Flink 社区做出贡献。例如,你可以:
+  - Being community minded: The candidate understands the meritocratic principles of community management. They do not always optimize for as much as possible personal contribution, but will help and empower others where it makes sense.
 
-- 做一个关于 Flink 的演讲,告诉别人你是如何使用它的。
-- 组织本地 Meetup 或用户组。
-- 与人们谈论 Flink 。
-- ...
+  - We trust that a committer candidate will use their write access to the repositories responsibly, an if in doubt, conservatively. Flink is a big system, and it is important that committers are aware of what they know and what they don't know. In doubt, committers should ask for a second pair of eyes rather than commit to parts that they are not well familiar with. (Even the most seasoned committers follow this practice.)
 
------
+  - They have shown to be respectful towards other community members and constructive in discussions.
 
-## 提交贡献者许可协议
-
-如果你想为 Apache Flink 做出贡献,请向 Apache Software Foundation (ASF)提交贡献者许可协议。以下引用[http://www.apache.org/licenses](http://www.apache.org/licenses/#clas)提供了关于 ICLA 和 CCLA 的更多信息,以及为什么需要它们。
-
-> ASF希望Apache项目的所有思想、代码或文档的贡献者完成、签署并提交(通过邮政邮件、传真或电子邮件)[Individual Contributor License Agreement](http://www.apache.org/licenses/icla.txt) (CLA) [[PDF 表单](http://www.apache.org/licenses/icla.pdf)]。本协议的目的是明确界定向 ASF 提供知识产权的条款,从而使我们能够在未来某个时间就软件发生法律纠纷时为该项目辩护。在个人被授予对 ASF 项目的提交权限之前,需要将签名类存档。
->
-> 对于指派员工参与 Apache 项目的企业,可以通过公司提供[企业 CLA](http://www.apache.org/licenses/cla-corporate.txt) (Corporate CLA,CCLA)来贡献知识产权,该知识产权可能是作为雇佣协议的一部分分配的。请注意,企业 CLA 并不免除每个开发人员作为个人签署他们自己的 CLA 的需要,以覆盖那些不属于签署 CCLA 企业的贡献。
->
-> ...
-
------
 
-## 如何成为一个提交者(Committer)
+#### What are we looking for in PMC members
 
-提交者是具有对项目仓库写权限的社区成员,即他们可以修改代码、文档和网站、也接受其他贡献。
+The PMC is the official controlling body of the project. PMC members "must" be able to perform the official responsibilities of the PMC (verify releases and growth of committers/PMC). We "want" them to be people that have a vision for Flink, technology and community wise.
 
-成为提交者没有严格的协议。新提交者的候选人通常是活跃的贡献者和社区成员。
+For the avoidance of doubt, not every PMC member needs to know all details of how exactly Flink's release process works (it is okay to understand the gist and how to find the details). Likewise, not every PMC member needs to be a visionary. We strive to build a PMC that covers all parts well, understanding that each member brings different strengths.
 
-成为活跃的社区成员意味着参与邮件列表讨论、帮助回答问题、验证候选发布版本、尊重他人、以及遵循社区管理的精英原则。由于 “Apache Way” 非常关注项目社区,因此这部分非常重要。
+Ideally, we find candidates among active community members that have shown initiative to shape the direction of Flink (technology and community) and have shown willingness to learn the official processes, such as how to create or verify for releases.
 
-当然,为项目提供代码和文档也很重要。一个好的开端是提供改进、新功能或错误修复。你需要证明你对所贡献的代码负责,添加测试和文档,并帮助维护它。
+A PMC member is also a committer. Candidates are already committers or will automatically become also a committer when joining the PMC. Hence, the "What are we looking for in committers?" also applies to PMC candidates.
 
-新提交者的候选人由当前的提交者或 PMC 成员提出,并由 PMC 投票。
+A PMC member has a lot of power in a project. A single PMC member can block many decisions and generally stall and harm the project in many ways. We hence must trust the PMC candidates to be level-headed, constructive, supportive, and willing to "disagree and commit" at times.
 
-如果你想成为提交者,你应该与社区互动并开始以上述任何方式为 Apache Flink 做出贡献。你可能还想与其他提交者交谈并询问他们的建议和指导。
\ No newline at end of file
diff --git a/contributing/reviewing-prs.zh.md b/contributing/reviewing-prs.zh.md
index 07a412d..1de458a 100644
--- a/contributing/reviewing-prs.zh.md
+++ b/contributing/reviewing-prs.zh.md
@@ -17,11 +17,15 @@ title:  "如何审核 Pull Request"
 
 ## 审核清单
 
-每次审核都需要检查以下五个方面。我们建议按照以下顺序进行检查,以避免在还没有就是否添加某项功能或需要改动达成共识之前,就花费时间进行详细的代码质量审核。
+每次审核都需要检查以下六个方面。我们建议按照以下顺序进行检查,以避免在还没有就是否添加某项功能或需要改动达成共识之前或没有满足一些正式条件前,就花费时间进行详细的代码质量审核。
 
 ### 1.贡献的描述是否清晰?
 
-检查贡献是否有充分的描述以方便审核,不重要的更改和修复不需要很长的描述,任何改变功能或行为的 pull request 都需要描述这些改变的重点, 以便知道审核什么内容(并且不必钻研代码来了解更改的作用)。
+检查贡献是否有充分的描述以方便审核,不重要的更改和修复不需要很长的描述。如果实现方案完全是[按照之前在 Jira 或 dev 邮件列表上讨论结论]({{ site.base }}/zh/contributing/contribute-code.html#consensus)进行的话,只需要一个对讨论的简短的引用即可。
+如果实现方案与之前达成一致的方案不同的话,关于实现的详细描述是需要的,以便 review 贡献时更深入地讨论。
+
+
+任何改变功能或行为的 pull request 都需要描述这些改变的重点, 以便知道审核什么内容(并且不必钻研代码来了解更改的作用)。
 
 需要更长描述的更改,理想情况下基于邮件列表或 JIRA 中的事先设计讨论,可以简单地链接到那里或从那里复制描述。
 
@@ -31,24 +35,9 @@ title:  "如何审核 Pull Request"
 
 ### 2.是否一致认为这一变更或者功能应该进入 Flink?
 
-对于错误修复,只有在需要相对大量改动或可能破坏现有程序和设置时才需要检查。
-
-理想情况下, 除了错误修复和少量的添加或扩展的情况外,该问题可以从 Jira issue 或开发者邮件列表的讨论中找到答案。在这种情况下,此问题可以立即标记为已解决。对于未事先达成共识而创建的 pull requests,此问题需要作为审核的一部分予以回答。
-
-需从以下几个方面判断是否应将改动引入Flink:
-
-* 贡献中改变特征或组件行为的做法,是否会对先前用户的代码或设置造成影响?如果是,则需要进行讨论并同意这种变更是值得的。
-* 这个贡献在概念上是否适合 Flink ?它是否是某种极端特例,反而会将普通场景复杂化或使抽象及 API 变得臃肿?
-* 该功能是否适合 Flink 的架构?未来它是否会扩展并保持 Flink 的灵活性,或者该功能将来会限制 Flink 的发展吗?
-* 该功能是一项重要的新增功能(而不是对现有部件的改进)吗?如果是,Flink 社区是否会承诺维护此功能?
-* 该功能是否为 Flink 用户或开发人员带来了额外的利益?或者它是否会在相关用户或开发人员无法受益的情况下引入回归风险?
-* 可以将贡献提交至其他仓库(例如 [Apache Bahir](https://bahir.apache.org))或外部仓库中吗?
-
-所有这些问题都应在不看代码的前提下从 Jira 和 pull request 中的描述或讨论中得到回答。
-
-**一旦有一个 committer 接受了某个功能、改进或者错误修复,并且没有其他 committer 不同意(lazy consensus 机制),那么就会批准它。** 
+这个问题要直接在关联的 Jira issue 中回答。对于在达成一致前创建的 pull request 来说,需要[先在 Jira 中寻求一致的意见]({{ site.base }}/zh/contributing/contribute-code.html#consensus)。
 
-如果意见出现分歧,应将讨论转移到各自的 Jira issue 或开发邮件列表中继续进行,直到达成共识。如果变更是由一位 committer 提出的,那么寻求另一位 committer 的批准是最佳做法。
+对于`[hotfix]`类型的的 pull request,可以在 pull request 中寻求意见一致。
 
 -----
 
@@ -68,9 +57,9 @@ title:  "如何审核 Pull Request"
 
 ----
 
-### 4. 实现的整体方案或架构是否正确?
+### 4. 实现方案是否遵循了商定的整体方案/架构?
 
-所给出的修复或功能实施方案是最佳吗?还是有其他更容易,更健壮或更易于维护的方案?
+在这一步中,我们会检查一个贡献的实现是否遵循了在 Jira 或邮件列表中商定的方案。
 这个问题应该尽可能地从 pull request 描述(或链接的 Jira )中得到回答。
 
 我们建议你在深入了解更改的各个部分进行评论之前先检查这一点。
@@ -81,15 +70,16 @@ title:  "如何审核 Pull Request"
 
 这是对实际变更的详细代码审核,包括:
 
-* 变更是否按照设计文档或 pull request 说明中的描述进行?
+* 变更是否按照 Jira issue 或 pull request 说明中的描述进行?
 * 代码是否遵循正确的软件工程实践?代码是否正确、健壮、可维护、可测试?
 * 在更改性能敏感部分时,是否对性能进行了优化?
 * 测试是否覆盖了全部改动?
 * 测试执行速度是否够快?(是否仅在必要时才使用重量级集成测试?)
 * 代码格式是否遵循 Flink 的 checkstyle 模式?
 * 代码是否避免引入额外的编译器警告?
+* 如果依赖更新了,NOTICE 文件是否也更新了?
 
-可以在 [Flink代码样式页面]({{ site.baseurl }}/zh/contribute-code.html#code-style) 中找到一些代码样式指南。
+可以在 [Flink代码样式和质量指南]({{ site.baseurl }}/zh/contributing/code-style-and-quality.html) 中找到编码的规范和指南。
 
 ----
 
@@ -97,7 +87,7 @@ title:  "如何审核 Pull Request"
 
 如果这个 pull request 引入了一个新功能,该功能应该被文档化。Flink 社区正在同时维护英文和中文文档。所以如果你想要更新或扩展文档,英文和中文文档都需要更新。如果你不熟悉中文,请创建一个用于中文文档翻译的 JIRA 并附上 `chinese-translation` 的组件名,并与当前 JIRA 关联起来。如果你熟悉中文,我们鼓励在一个 pull request 中同时更新两边的文档。
 
-阅读[如何贡献文档](https://flink.apache.org/zh/contribute-documentation.html)了解更多。
+阅读[如何贡献文档]({{ site.baseurl }}/zh/contributing/contribute-documentation.html)了解更多。
 
 ## 使用 @flinkbot 进行审核
 


[flink-web] 02/02: Rebuild website

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jark pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/flink-web.git

commit 55a8b3701ee72fed148d2b8411ab8ac297b208f4
Author: Jark Wu <wu...@alibaba-inc.com>
AuthorDate: Sun Jul 21 18:19:30 2019 +0800

    Rebuild website
---
 content/community.html                             |   2 +-
 content/zh/community.html                          |  60 ++-
 .../zh/contributing/code-style-and-quality.html    |  12 +-
 content/zh/contributing/contribute-code.html       | 532 ++++++++-------------
 .../zh/contributing/contribute-documentation.html  |  12 +-
 content/zh/contributing/how-to-contribute.html     | 267 +++++------
 content/zh/contributing/improve-website.html       |  12 +-
 content/zh/contributing/reviewing-prs.html         |  53 +-
 content/zh/downloads.html                          |   2 +-
 content/zh/ecosystem.html                          |   2 +-
 content/zh/faq.html                                |   2 +-
 content/zh/flink-applications.html                 |   8 +-
 content/zh/flink-architecture.html                 |   8 +-
 content/zh/flink-operations.html                   |   8 +-
 content/zh/gettinghelp.html                        |   2 +-
 content/zh/index.html                              |   2 +-
 content/zh/material.html                           |   2 +-
 content/zh/poweredby.html                          |   2 +-
 content/zh/roadmap.html                            |   2 +-
 content/zh/usecases.html                           |   2 +-
 20 files changed, 404 insertions(+), 588 deletions(-)

diff --git a/content/community.html b/content/community.html
index 9a218d6..ad08e83 100644
--- a/content/community.html
+++ b/content/community.html
@@ -303,7 +303,7 @@
 <p>Before you can post a message to a mailing list, you need to subscribe to the list first.</p>
 
 <ol>
-  <li>Send an email without any contents or subject to subscribe-<em>listname</em>@flink.apache.org. (replace <em>listname</em> with dev, user, user-zh, ..)</li>
+  <li>Send an email without any contents or subject to <em>listname</em>-subscribe@flink.apache.org. (replace <em>listname</em> with dev, user, user-zh, ..)</li>
   <li>Wait till you receive an email with the subject “confirm subscribe to <em>listname</em>@flink.apache.org”. Reply to that email, without editing the subject or including any contents</li>
   <li>Wait till you receive an email with the subject “WELCOME to <em>listname</em>@flink.apache.org”.</li>
 </ol>
diff --git a/content/zh/community.html b/content/zh/community.html
index 3826312..19133f5 100644
--- a/content/zh/community.html
+++ b/content/zh/community.html
@@ -117,7 +117,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
@@ -159,22 +159,26 @@
 
 <div class="page-toc">
 <ul id="markdown-toc">
-  <li><a href="#section" id="markdown-toc-section">邮件列表</a></li>
+  <li><a href="#apache-flink-" id="markdown-toc-apache-flink-">如何从 Apache Flink 获得帮助?</a></li>
+  <li><a href="#section" id="markdown-toc-section">邮件列表</a>    <ul>
+      <li><a href="#section-1" id="markdown-toc-section-1">如何订阅邮件列表</a></li>
+    </ul>
+  </li>
   <li><a href="#stack-overflow" id="markdown-toc-stack-overflow">Stack Overflow</a></li>
   <li><a href="#issue-" id="markdown-toc-issue-">Issue 追踪</a></li>
   <li><a href="#meetups" id="markdown-toc-meetups">Meetups</a></li>
-  <li><a href="#section-1" id="markdown-toc-section-1">源代码</a>    <ul>
-      <li><a href="#section-2" id="markdown-toc-section-2">主仓库</a></li>
+  <li><a href="#section-2" id="markdown-toc-section-2">源代码</a>    <ul>
+      <li><a href="#section-3" id="markdown-toc-section-3">主仓库</a></li>
       <li><a href="#flink-shaded--shaded-" id="markdown-toc-flink-shaded--shaded-">Flink-shaded 仓库 (shaded 的依赖包)</a></li>
       <li><a href="#flink-" id="markdown-toc-flink-">Flink 网站仓库</a></li>
       <li><a href="#bahir-flink---connector" id="markdown-toc-bahir-flink---connector">Bahir Flink 仓库 (额外的一些 connector)</a></li>
     </ul>
   </li>
-  <li><a href="#section-3" id="markdown-toc-section-3">培训</a></li>
+  <li><a href="#section-4" id="markdown-toc-section-4">培训</a></li>
   <li><a href="#wiki" id="markdown-toc-wiki">项目 Wiki</a></li>
   <li><a href="#flink-forward" id="markdown-toc-flink-forward">Flink Forward</a></li>
   <li><a href="#pmc--commiter-" id="markdown-toc-pmc--commiter-">PMC 和 Commiter 列表</a>    <ul>
-      <li><a href="#section-4" id="markdown-toc-section-4">前导师们</a></li>
+      <li><a href="#section-5" id="markdown-toc-section-5">前导师们</a></li>
     </ul>
   </li>
   <li><a href="#apache-flink-logo" id="markdown-toc-apache-flink-logo">素材以及 Apache Flink Logo</a></li>
@@ -182,16 +186,9 @@
 
 </div>
 
-<p>我们可以通过多种方式从 Apache Flink 社区获得帮助。Flink commiter 主要活跃在 <a href="#mailing-lists">邮件列表</a>。对于用户支持和问题咨询,则可以通过 <em>用户邮件列表</em> 获得帮助。有些 Committer 同时会关注 <a href="http://stackoverflow.com/questions/tagged/apache-flink">Stack Overflow</a>。请在提问的时候记得添加 apache-flink 的标签。问题反馈以及新特性的讨论则可以在 <em>开发邮件列表</em> 或者 <a href="https://issues.apache.org/jira/browse/FLINK">Jira</a> 上进行讨论。有兴趣对 Flink 进行贡献的人请查阅 <a href="how-to-contribute.html">贡献指南</a>。</p>
+<h2 id="apache-flink-">如何从 Apache Flink 获得帮助?</h2>
 
-<p>如果你的邮件中包含代码,请根据如下要求进行检查:</p>
-
-<ol>
-  <li>请确认你所使用的外链不会被修改、删除等,这些操作会使得归档后的邮件变得无效</li>
-  <li>粘贴文字而不是文字的截图</li>
-  <li>对代码进行格式化操作,以提高可读性</li>
-  <li>添加足够的上下文,确保代码没有模棱两可的地方</li>
-</ol>
+<p>我们可以通过多种方式从 Apache Flink 社区获得帮助。Flink commiter 主要活跃在 <a href="#mailing-lists">邮件列表</a>。对于用户支持和问题咨询,则可以通过 <em>用户邮件列表</em> 获得帮助。有些 Committer 同时会关注 <a href="http://stackoverflow.com/questions/tagged/apache-flink">Stack Overflow</a>。请在提问的时候记得添加 apache-flink 的标签。问题反馈以及新特性的讨论则可以在 <em>开发邮件列表</em> 或者 <a href="https://issues.apache.org/jira/browse/FLINK">Jira</a> 上进行讨论。有兴趣对 Flink 进行贡献的人请查阅 <a href="how-to-contribute.html">贡献指南</a>。</p>
 
 <h2 id="section">邮件列表</h2>
 
@@ -299,6 +296,25 @@
 
 <p><b style="color:red">在给邮件列表发邮件之前,请确认已经订阅了该邮件列表!</b> 如果你没有订阅对应的邮件列表的话,对于 dev 邮件列表,你的消息会被拒收,对于 user 邮件列表,你则收不到相应的回复。</p>
 
+<h3 id="section-1">如何订阅邮件列表</h3>
+
+<p>在往邮件列表中发送消息前,需要先订阅邮件列表。</p>
+
+<ol>
+  <li>发送一封不包含任何内容或主题的邮件到 subscribe-<em>listname</em>@flink.apache.org(替换 <em>listname</em> 为 dev, user, user-zh 等等)</li>
+  <li>等待直到收到一封主题为 “confirm subscribe to <em>listname</em>@flink.apache.org” 的邮件。回复该邮件,不用修改主题和添加邮件内容。</li>
+  <li>等待直到收到一封主题为 “WELCOME to <em>listname</em>@flink.apache.org” 的邮件。</li>
+</ol>
+
+<p>如果你的邮件中包含代码,请根据如下要求进行检查:</p>
+
+<ol>
+  <li>请确认你所使用的外链不会被修改、删除等,这些操作会使得归档后的邮件变得无效</li>
+  <li>粘贴文字而不是文字的截图</li>
+  <li>对代码进行格式化操作,以提高可读性</li>
+  <li>添加足够的上下文,确保代码没有模棱两可的地方</li>
+</ol>
+
 <h2 id="stack-overflow">Stack Overflow</h2>
 
 <p>Committer 们会关注 <a href="http://stackoverflow.com/questions/tagged/apache-flink">Stack Overflow</a> 上 <a href="http://stackoverflow.com/questions/tagged/apache-flink">apache-flink</a> 相关标签的问题。</p>
@@ -315,9 +331,9 @@
 
 <p>在 <a href="http://www.meetup.com/topics/apache-flink/">meetup.com</a> 上可以找到很多 Flink 相关的 meetup。</p>
 
-<h2 id="section-1">源代码</h2>
+<h2 id="section-2">源代码</h2>
 
-<h3 id="section-2">主仓库</h3>
+<h3 id="section-3">主仓库</h3>
 
 <ul>
   <li><strong>ASF 仓库</strong>: <a href="https://gitbox.apache.org/repos/asf/flink.git">https://gitbox.apache.org/repos/asf/flink.git</a></li>
@@ -345,7 +361,7 @@
   <li><strong>GitHub 镜像</strong>:  <a href="https://github.com/apache/bahir-flink.git">https://github.com/apache/bahir-flink.git</a></li>
 </ul>
 
-<h2 id="section-3">培训</h2>
+<h2 id="section-4">培训</h2>
 
 <p><a href="https://www.ververica.com/">Ververica</a> 目前维护了一些免费的 Apache Flink 培训。<a href="https://training.ververica.com/">培训页面</a> 有相应的演示文档和带解答的练习。当然还可以在 <a href="http://www.slideshare.net/dataArtisans/presentations">SlideShare</a> 找到所有的演示文档。</p>
 
@@ -354,11 +370,7 @@
 
 <h2 id="flink-forward">Flink Forward</h2>
 
-<p>Flink Forward 2015 (2015 年 10 月 12-13 日) 是第一届把 Apache Flink 开发者和用户聚集起来的大会。可以在 <a href="http://2015.flink-forward.org/?post_type=session">演示文档以及视频</a> 页面中找到 2015 年 Flink Forward 的所有资料</p>
-
-<p>第二届 Flink Forward 大会举办于 2016 年 9 月 12-14 日。 可以在 Flink Forward 2016 页面中找到所有的 <a href="http://2016.flink-forward.org/program/sessions/">演讲文稿和视频</a>.</p>
-
-<p>2017 年,Flink Forward 来到旧金山,举办了一天的会议以及一天的培训。可以在 <a href="https://www.youtube.com/playlist?list=PLDX4T_cnKjD2UC6wJr_wRbIvtlMtkc-n2">YouTube 频道</a> 上找到所有的视频,以及在 <a href="https://www.slideshare.net/FlinkForward">SlideShare</a> 上找到所有的演示文档。</p>
+<p>Flink Forward 大会每年都会在世界的不同地方举办。关于大会最新的信息可以到 <a href="https://www.flink-forward.org/">Flink-Forward.org</a> 网站获取到。</p>
 
 <h1 id="pmc--commiter-">PMC 和 Commiter 列表</h1>
 
@@ -602,7 +614,7 @@
 
 <p>可以通过 <code>&lt;apache-id&gt;@apache.org</code> 直接联系 commiter。可以在 <a href="https://cwiki.apache.org/confluence/display/FLINK/List+of+contributors">这里</a> 找到所有的贡献者。</p>
 
-<h2 id="section-4">前导师们</h2>
+<h2 id="section-5">前导师们</h2>
 
 <p>下面这些人在项目孵化的时候起到了非常好的引导作用。</p>
 
diff --git a/content/zh/contributing/code-style-and-quality.html b/content/zh/contributing/code-style-and-quality.html
index 07394da..5d1aaa4 100644
--- a/content/zh/contributing/code-style-and-quality.html
+++ b/content/zh/contributing/code-style-and-quality.html
@@ -117,23 +117,23 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
             <ul class="nav navbar-nav navbar-subnav">
               <li >
-                  <a href="/zh/contributing/contribute-code.html">Contribute Code</a>
+                  <a href="/zh/contributing/contribute-code.html">贡献代码</a>
               </li>
               <li >
-                  <a href="/zh/contributing/reviewing-prs.html">Review Pull Requests</a>
+                  <a href="/zh/contributing/reviewing-prs.html">审核 Pull Request</a>
               </li>
               <li  class="active">
-                  <a href="/zh/contributing/code-style-and-quality.html">Code Style and Quality Guide</a>
+                  <a href="/zh/contributing/code-style-and-quality.html">代码样式与质量指南</a>
               </li>
               <li >
-                  <a href="/zh/contributing/contribute-documentation.html">Contribute Documentation</a>
+                  <a href="/zh/contributing/contribute-documentation.html">贡献文档</a>
               </li>
               <li >
-                  <a href="/zh/contributing/improve-website.html">Contribute to the Website</a>
+                  <a href="/zh/contributing/improve-website.html">贡献网站</a>
               </li>
             </ul>
             
diff --git a/content/zh/contributing/contribute-code.html b/content/zh/contributing/contribute-code.html
index 58cfda0..74b5c2c 100644
--- a/content/zh/contributing/contribute-code.html
+++ b/content/zh/contributing/contribute-code.html
@@ -117,23 +117,23 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
             <ul class="nav navbar-nav navbar-subnav">
               <li  class="active">
-                  <a href="/zh/contributing/contribute-code.html">Contribute Code</a>
+                  <a href="/zh/contributing/contribute-code.html">贡献代码</a>
               </li>
               <li >
-                  <a href="/zh/contributing/reviewing-prs.html">Review Pull Requests</a>
+                  <a href="/zh/contributing/reviewing-prs.html">审核 Pull Request</a>
               </li>
               <li >
-                  <a href="/zh/contributing/code-style-and-quality.html">Code Style and Quality Guide</a>
+                  <a href="/zh/contributing/code-style-and-quality.html">代码样式与质量指南</a>
               </li>
               <li >
-                  <a href="/zh/contributing/contribute-documentation.html">Contribute Documentation</a>
+                  <a href="/zh/contributing/contribute-documentation.html">贡献文档</a>
               </li>
               <li >
-                  <a href="/zh/contributing/improve-website.html">Contribute to the Website</a>
+                  <a href="/zh/contributing/improve-website.html">贡献网站</a>
               </li>
             </ul>
             
@@ -173,398 +173,250 @@
   <div class="col-sm-12">
     <h1>贡献代码</h1>
 
-	<p>Apache Flink 的维护、改进和扩展都来自于志愿者的代码贡献。Apache Flink 社区鼓励任何人贡献源代码。为了确保贡献者和审阅者愉快地贡献高质量的代码,请遵循本文档中介绍的贡献流程。</p>
+	<p>Apache Flink is maintained, improved, and extended by code contributions of volunteers. We welcome contributions to Flink, but due to the size of the project and to preserve the high quality of the code base, we follow a contribution process that is explained in this document.</p>
 
-<p>本文档包含了所有关于 Apache Flink 贡献代码的要点。它描述了准备,测试和提交贡献的流程,阐释了 Flink 代码库的编码指南和代码风格,并提供了设置开发环境的说明。</p>
+<p><strong>Please feel free to ask questions at any time.</strong> Either send a mail to the <a href="/community.html#mailing-lists">dev mailing list</a> or comment on the Jira issue you are working on.</p>
 
-<p><strong>重要</strong>:在开始编写代码之前,请仔细阅读本文档。遵循下面描述的流程和指南非常重要。否则,你的 pull request 可能不被接受或可能需要大量返工。特别的,在提交实现<strong>新功能</strong>的 pull request 之前,你需要创建一个 Jira issue 并与社区就是否需要此功能达成共识。</p>
+<p><strong>IMPORTANT</strong>: Please read this document carefully before starting to work on a code contribution. Follow the process and guidelines explained below. Contributing to Apache Flink does not start with opening a pull request. We expect contributors to reach out to us first to discuss the overall approach together. Without consensus with the Flink committers, contributions might require substantial rework or will not be reviewed.</p>
 
 <div class="page-toc">
 <ul id="markdown-toc">
-  <li><a href="#section" id="markdown-toc-section">代码贡献流程</a>    <ul>
-      <li><a href="#section-1" id="markdown-toc-section-1">在你编码之前…</a></li>
-      <li><a href="#section-2" id="markdown-toc-section-2">编码时…</a></li>
-      <li><a href="#section-3" id="markdown-toc-section-3">验证代码的合规性</a></li>
-      <li><a href="#section-4" id="markdown-toc-section-4">准备并提交你的代码贡献</a></li>
+  <li><a href="#code-contribution-process" id="markdown-toc-code-contribution-process">Code Contribution Process</a>    <ul>
+      <li><a href="#create-jira-ticket-and-reach-consensus" id="markdown-toc-create-jira-ticket-and-reach-consensus">1. Create Jira Ticket and Reach Consensus</a></li>
+      <li><a href="#implement-your-change" id="markdown-toc-implement-your-change">2. Implement your change</a></li>
+      <li><a href="#open-a-pull-request" id="markdown-toc-open-a-pull-request">3. Open a Pull Request</a></li>
+      <li><a href="#merge-change" id="markdown-toc-merge-change">4. Merge change</a></li>
     </ul>
   </li>
-  <li><a href="#section-5" id="markdown-toc-section-5">编码指南</a></li>
-  <li><a href="#section-10" id="markdown-toc-section-10">代码风格</a>    <ul>
-      <li><a href="#section-11" id="markdown-toc-section-11">许可证</a></li>
-      <li><a href="#section-12" id="markdown-toc-section-12">导入</a></li>
-      <li><a href="#section-13" id="markdown-toc-section-13">命名</a></li>
-      <li><a href="#section-14" id="markdown-toc-section-14">空格</a></li>
-      <li><a href="#section-15" id="markdown-toc-section-15">大括号</a></li>
-      <li><a href="#javadocs" id="markdown-toc-javadocs">Javadocs</a></li>
-      <li><a href="#section-16" id="markdown-toc-section-16">修饰符</a></li>
-      <li><a href="#section-17" id="markdown-toc-section-17">文件</a></li>
-      <li><a href="#section-18" id="markdown-toc-section-18">杂项</a></li>
-    </ul>
-  </li>
-  <li><a href="#section-19" id="markdown-toc-section-19">最佳实践</a></li>
-  <li><a href="#section-20" id="markdown-toc-section-20">设置开发环境</a>    <ul>
-      <li><a href="#flink-" id="markdown-toc-flink-">开发和构建 Flink 的先决条件</a></li>
-      <li><a href="#section-22" id="markdown-toc-section-22">代理设置</a></li>
-    </ul>
-  </li>
-  <li><a href="#committer--git" id="markdown-toc-committer--git">Committer 如何使用 Git</a></li>
 </ul>
 
 </div>
 
-<h2 id="section">代码贡献流程</h2>
-
-<h3 id="section-1">在你编码之前…</h3>
-
-<p>…请确保有与你的贡献相对应的 Jira 问题。这是 Flink 社区遵循所有代码贡献的一般规则,包括错误修复、改进或新功能,但 <em>琐碎</em> 的热修复除外。如果你想修复发现的错误,或者想要为 Flink 添加新功能或改进,在开始实现之前请按照 <a href="/zh/how-to-contribute.html#file-a-bug-report">如何提交错误报告</a> 和 <a href="/zh/how-to-contribute.html#propose-an-improvement-or-a-new-feature">如何提出改进或新功能</a> 指南在 <a href="http://issues.apache.org/jira/browse/FLINK">Flink Jira</a> 中提交一个 issue。</p>
-
-<p>如果 Jira issue 的描述表明其解决方案将触及代码库的敏感部分,或者问题足够复杂,或者需要添加大量新代码,Flink 社区可能会要求提供设计文档(大多数贡献不需要设计文档)。设计文档的目的是为了确保解决问题的总体方案是正确的,并得到社区一致同意的。需要设计文档的 Jira issue 使用 <strong><code>requires-design-doc</code></strong> 标签进行标记,任何社区成员都可以在认为有必要设计文档的 Jira issue 上贴上此标签。良好的描述有助于确定 Jira issue 是否需要设计文档,设计文档必须添加或附加到 Jira issue 或添加一个链接到 Jira issue 页面。设计文档应涵盖以下方面:</p>
-
-<ul>
-  <li>解决方案的概述。</li>
-  <li>API 更改列表(更改后的接口、新的和弃用的配置参数、更改后的行为 …)。</li>
-  <li>要改动的主要模块和类。</li>
-  <li>方案的已知局限性。</li>
-</ul>
-
-<p>任何人都可以添加设计文档,包括问题的汇报者和修复者。</p>
-
-<p>在设计文档被社区以<a href="http://www.apache.org/foundation/glossary.html#LazyConsensus">延迟决策</a>接受之前,需要设计文档的 Jira issue 的代码贡献将不会被合并到 Flink 的代码库中。请在开始编写代码之前检查是否需要设计文档。</p>
-
-<h3 id="section-2">编码时…</h3>
-
-<p>…请遵守以下规则:</p>
-
-<ul>
-  <li>Jira 问题中记录的任何讨论或要求都需要考虑。</li>
-  <li>尽可能遵循设计文档(如果有设计文档)。如果你的实现偏离设计文档提出的解决方案太多,请更新设计文档并达成共识。微小的变化是可以的,但是在提交代码贡献时应该指出。</li>
-  <li>严格遵循<a href="/zh/contribute-code.html#coding-guidelines">编码指南</a>和<a href="/zh/contribute-code.html#code-style">代码样式</a>。</li>
-  <li>不要将不相关的代码混合到一个代码贡献中。</li>
-</ul>
-
-<p><strong>请随时提出问题</strong>,可以发送邮件到<a href="/community.html #fmail-list">dev邮件列表</a>或在 Jira issue 下留言。</p>
-
-<p>以下说明将帮助你<a href="/zh/contrib-code.html#setup-a-development-environment">配置开发环境</a>。</p>
-
-<h3 id="section-3">验证代码的合规性</h3>
-
-<p>在提交你的贡献之前验证更改的合规性非常重要。这包括:</p>
-
-<ul>
-  <li>确保代码构建。</li>
-  <li>验证所有现有测试和新测试都通过。</li>
-  <li>检查是否违反了代码样式。</li>
-  <li>确保不包含无关的或不必要的格式更改。</li>
-</ul>
-
-<p>你可以通过调用以下代码来构建代码,运行测试并检查(部分)代码样式:</p>
-
-<div class="highlight"><pre><code>mvn clean verify
-</code></pre></div>
-
-<p>请注意,Flink 代码库中的一些测试是不稳定的,可能会失败。Flink 社区正在努力改进这些测试,但有时这是不可能的,例如,当测试包括外部依赖时。我们在 Jira 中追踪了所有已知的不稳定测试并贴上了<strong>“test-stability”</strong>标签。如果你遇到似乎与你的更改无关的测试失败,请检查(并扩展)<a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20test-stability%20ORDER%20BY%20priority%20DESC">已知的不稳定测试</a> 列表。</p>
-
-<p>请注意,我们还会为 Java、Scala 和 Hadoop 的不同版本组合来运行编译构建(build profiles),以验证你的代码贡献。我们鼓励每个贡献者都使用<em>持续集成</em>服务,无论何时推送更改,它都会自动测试仓库中的代码。<a href="/zh/contribution-code.html#best-practices">最佳实践</a>指南介绍了如何将 <a href="https://travis-ci.org/">Travis</a> 与你的 GitHub 仓库集成。</p>
-
-<p>除了自动化测试之外,请检查更改的差异并删除所有不相关的更改,例如不必要的重新格式化。</p>
-
-<h3 id="section-4">准备并提交你的代码贡献</h3>
-
-<p>要使代码更易于合并,请将其 rebase 到主仓库的 master 分支的最新版本之上。另外还请遵守 <a href="/zh/contribute-code.html#coding-guidelines">commit message指南</a>,清理你的提交历史记录,并将你的提交压缩到一个适当的集合中。请在 rebase 和压缩之后再次验证你的代码贡献。</p>
-
-<p>Flink 项目通过 <a href="https://github.com/apache/flink">GitHub Mirror</a> 以 <a href="https://help.github.com/articles/using-pull-requests">Pull Requests</a> 的形式接受代码贡献。Pull request 是一种提供补丁的简单方法,它提供了一个指向包含更改的代码分支的链接。</p>
-
-<p>要提交 pull request,请将你的贡献推回到 Flink 仓库的分支中。</p>
-
-<div class="highlight"><pre><code>git push origin myBranch
-</code></pre></div>
-
-<p>打开你的 fork 仓库网页(<code>https://github.com/&lt;your-user-name&gt;/flink</code>)并使用<em>“Create Pull Request”</em>按钮开始创建 pull request。 确保 base fork 是<code>apache/flink master</code>,并且 head fork 是包含更改的分支。再为 pull request 添加一个有意义的描述并创建它。</p>
-
-<p>也可以将补丁附加到 <a href="https://issues.apache.org/jira/browse/FLINK">Jira</a> issue 页面。</p>
-
-<hr />
-
-<h2 id="section-5">编码指南</h2>
-
-<h3 class="no_toc" id="pull-request--commit-message">Pull request 和 commit message</h3>
-
-<ul>
-  <li>
-    <p><strong>单 PR 单修改</strong>:请不要将各种不相关的更改组合在单个 PR 中。相反,创建多个单独的 PR 请求,每个 PR 关联一个 Jira issue。这确保了 PR 是与<em>主题相关的</em>,可以更容易地合并,并且通常只会与特定主题相关的 merge 冲突。</p>
-  </li>
-  <li>
-    <p><strong>没有WIP PR</strong>: 我们将 PR 视为引用的代码 <em>就是</em> 将合并到当前 <em>稳定</em> master 分支中的请求。因此,pull request 不应该是“正在进行中”(Working In Process, WIP)。当你确信代码可以合并到当前 master 分支中,再创建 pull request。如果你想对代码先进行一些讨论,可以贴一个你的工作分支的链接。</p>
-  </li>
-  <li>
-    <p><strong>commit message</strong>:PR 必须有相关联的 Jira issue;如果不存在,请先创建一个 Jira issue。最新的提交消息应该引用该 issue。一个提交消息示例是 <strong>[FLINK-633] Fix NullPointerException for empty UDF parameters</strong>。这样,pull request 就已经描述了了它想做什么,例如,用什么方法修复了什么 bug。</p>
-  </li>
-  <li>
-    <p><strong>追加 review commits</strong>:当你的 pull request 收到有关更改和改进的评论后,请为这些更改追加 commits。<em>请不要 rebase 和压缩 commits。</em>这能让人们更清楚的审查你的新的更新,否则,审查者 它允许人们独立地审查清理工作。否则,审阅者必须再次从头到尾审查一遍 diff。</p>
-  </li>
-  <li>
-    <p><strong>不要有 merge commits</strong>:请不要创建任何包含 merge commits 的 PR。如果想要将你的更改更新到最新的 master 分支上,请使用<code>git pull --rebase origin master</code> 命令。</p>
-  </li>
-</ul>
+<h2 id="code-contribution-process">Code Contribution Process</h2>
+
+<style>
+.contribute-grid {
+  margin-bottom: 10px;
+  display: flex;
+  flex-direction: column;
+  margin-left: -2px;
+  margin-right: -2px;
+}
+
+.contribute-grid .column {
+  margin-top: 4px;
+  padding: 0 2px;
+}
+
+@media only screen and (min-width: 480px) {
+  .contribute-grid {
+    flex-direction: row;
+    flex-wrap: wrap;
+  }
+
+  .contribute-grid .column {
+    flex: 0 0 50%;
+  }
+
+  .contribute-grid .column {
+    margin-top: 4px;
+  }
+}
+
+@media only screen and (min-width: 960px) {
+  .contribute-grid {
+    flex-wrap: nowrap;
+  }
+
+  .contribute-grid .column {
+    flex: 0 0 25%;
+  }
+
+}
+
+.contribute-grid .panel {
+  height: 100%;
+  margin: 0;
+}
+
+.contribute-grid .panel-body {
+  padding: 10px;
+}
+
+.contribute-grid h2 {
+  margin: 0 0 10px 0;
+  padding: 0;
+  display: flex;
+  align-items: flex-start;
+}
+
+.contribute-grid .number {
+  margin-right: 0.25em;
+  font-size: 1.5em;
+  line-height: 0.9;
+}
+</style>
+
+<div class="alert alert-warning" role="alert">
+    <b>Note:</b> The code contribution process has changed recently (June 2019). The community <a href="https://lists.apache.org/thread.html/1e2b85d0095331606ad0411ca028f061382af08138776146589914f8@%3Cdev.flink.apache.org%3E">decided</a> to shift the "backpressure" from pull requests to Jira, by requiring contributors to get consensus (indicated by being assigned to the ticket) before opening a pull request.
+</div>
 
-<h3 class="no_toc" id="section-6">异常和错误信息</h3>
+<div class="contribute-grid">
+  <div class="column">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        <h2><span class="number">1</span><a href="#consensus">Discuss</a></h2>
+        <p>Create a Jira ticket or mailing list discussion and reach consensus</p>
+        <p>Agree on importance, relevance, scope of the ticket, discuss the implementation approach and find a committer willing to review and merge the change.</p>
+        <p><b>Only committers can assign a Jira ticket.</b></p>
+      </div>
+    </div>
+  </div>
+  <div class="column">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        <h2><span class="number">2</span><a href="#implement">Implement</a></h2>
+        <p>Implement the change according to the <a href="/contributing/code-style-and-quality.html">Code Style and Quality Guide</a> and the approach agreed upon in the Jira ticket.</p> <br />
+        <p><b>Only start working on the implementation if there is consensus on the approach (e.g. you are assigned to the ticket)</b></p>
+      </div>
+    </div>
+  </div>
+  <div class="column">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        <h2><span class="number">3</span><a href="#review">Review</a></h2>
+        <p>Open a pull request and work with the reviewer.</p>
+        <p><b>Pull requests belonging to unassigned Jira tickets will not be reviewed or merged by the community.</b></p>
+      </div>
+    </div>
+  </div>
+  <div class="column">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        <h2><span class="number">4</span><a href="#merge">Merge</a></h2>
+        <p>A committer of Flink checks if the contribution fulfills the requirements and merges the code to the codebase.</p>
+      </div>
+    </div>
+  </div>
+</div>
 
-<ul>
-  <li>
-    <p><strong>吞下异常</strong>:不要吞下异常并打印堆栈跟踪,而是检查类似的类是如何处理异常的。</p>
-  </li>
-  <li>
-    <p><strong>有意义的错误信息</strong>:提供有意义的错误信息消息,试着想象为什么要抛出异常(用户做错了什么),给出的信息要能帮助用户解决问题。</p>
-  </li>
-</ul>
+<div class="row">
+  <div class="col-sm-12">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        Note: <i>trivial</i> hot fixes such as typos or syntax errors can be opened as a <code>[hotfix]</code> pull request, without a Jira ticket.
+      </div>
+    </div>
+  </div>
+</div>
 
-<h3 class="no_toc" id="section-7">测试</h3>
+<p><a name="consensus"></a></p>
 
-<ul>
-  <li>
-    <p><strong>测试需要通过</strong>。测试未通过或编译未成功的 pull request 将不会有任何进一步的审查。我们建议你将个人 GitHub 帐户与 <a href="http://travis-ci.org/">Travis CI</a>(像 Flink GitHub 仓库一样)连接。无论何时将更新推入 <em>你的</em> GitHub 仓库,Travis 都会针对所有测试环境运行测试。请注意之前的<a href="/zh/contribute-code.html#verifying-the-compliance-of-your-code">关于不稳定测试的说明</a>。</p>
-  </li>
-  <li>
-    <p><strong>需要测试新功能</strong>。所有新加的功能都需要测试覆盖,<em>严格要求</em>。非常容易在之后的合并中不小心移除或破坏了这个特性。如果特性没有受到测试的保护,则不会捕获到这一点。任何未被测试覆盖的东西都被认为是不完善的(cosmetic)。</p>
-  </li>
-  <li>
-    <p><strong>使用适当的测试机制</strong>. 请使用单元测试来测试独立的功能,例如方法。单元测试应该在几秒内执行完成,而且应该是首选测试方法。单元测试类的名称必须以 <code>*Test </code>结尾。使用集成测试来实现长时间运行的测试。Flink 提供了测试工具来启动 Flink 实例并运行作业的端到端测试。这些测试比较重,并且会显著延长构建时间。因此,应谨慎添加它们。端到端测试类的名称必须以 <code>*ITCa   se</code> 结尾。</p>
-  </li>
-</ul>
+<h3 id="create-jira-ticket-and-reach-consensus">1. Create Jira Ticket and Reach Consensus</h3>
 
-<h3 class="no_toc" id="section-8">文档</h3>
+<p>The first step for making a contribution to Apache Flink is to reach consensus with the Flink community. This means agreeing on the scope and implementation approach of a change.</p>
 
-<ul>
-  <li><strong>文档更新</strong>。许多更改也会影响文档(Javadoc 和 <code>docs/</code> 目录中的用户文档)。这些 pull request 和补丁中需要相应地更新文档,否则这些更改无法被合并。有关如何更新文档的信息,请参阅<a href="/zh/contribute-documentation.html">文档贡献</a>指南。</li>
-  <li><strong>公共方法的 Javadocs</strong>。所有的公共方法和类都需要有 Javadoc。请编写有意义的文档。好的文档是简洁和信息丰富的。如果你更改了方法的签名或行为,请务必更新 Javadoc。</li>
-</ul>
+<p>In most cases, the discussion should happen in <a href="https://issues.apache.org/jira/projects/FLINK/summary">Flink’s bug tracker: Jira</a>.</p>
 
-<h3 class="no_toc" id="section-9">代码格式化</h3>
+<p>The following types of changes require a <code>[DISCUSS]</code> thread on the dev@flink.a.o Flink mailing list:</p>
 
 <ul>
-  <li><strong>不要格式化</strong>。请将源文件的代码格式化保持在最低限度。如果你(或你的 IDE 自动)删除或替换空白、重新格式化代码或注释,那么 diff 就不可读了。另外,更改相同文件的其他补丁将会无法合并。请将 IDE 配置为不会自动重新格式化代码。带有过多或不必要的代码格式化的 pull request 可能会被拒绝。</li>
+  <li>big changes (major new feature; big refactorings, involving multiple components)</li>
+  <li>potentially controversial changes or issues</li>
+  <li>changes with very unclear approaches or multiple equal approaches</li>
 </ul>
 
-<hr />
-
-<h2 id="section-10">代码风格</h2>
+<p>Do not open a Jira ticket for these types of changes before the discussion has come to a conclusion.
+ Jira tickets based on a dev@ discussion need to link to that discussion and should summarize the outcome.</p>
 
-<h3 id="section-11">许可证</h3>
-<ul>
-  <li><strong>Apache license headers。</strong> 确保你的文件头部有 Apache 许可证。当你构建代码时,RAT 插件会检查这一点。</li>
-</ul>
+<p><strong>Requirements for a Jira ticket to get consensus:</strong></p>
 
-<h3 id="section-12">导入</h3>
 <ul>
-  <li><strong>在包声明之前和之后添加空行。</strong></li>
-  <li><strong>不要有未使用的导入。</strong></li>
-  <li><strong>不要有多余的导入。</strong></li>
-  <li><strong>不要使用通配符导入。</strong> 在添加代码时,甚至在重构过程中,它们都可能导致有问题。</li>
-  <li><strong>导入顺序。</strong> 导入必须按字母顺序排列,分成以下几块,每个块之间用空行分隔:
+  <li>Formal requirements
     <ul>
-      <li>&lt;imports from org.apache.flink.*&gt;</li>
-      <li>&lt;imports from org.apache.flink.shaded.*&gt;</li>
-      <li>&lt;imports from other libraries&gt;</li>
-      <li>&lt;imports from javax.*&gt;</li>
-      <li>&lt;imports from java.*&gt;</li>
-      <li>&lt;imports from scala.*&gt;</li>
-      <li>&lt;static imports&gt;</li>
+      <li>The <em>Title</em> describes the problem concisely.</li>
+      <li>The <em>Description</em> gives all the details needed to understand the problem or feature request.</li>
+      <li>The <em>Component</em> field is set: Many committers and contributors only focus on certain subsystems of Flink. Setting the appropriate component is important for getting their attention.</li>
     </ul>
   </li>
-</ul>
-
-<h3 id="section-13">命名</h3>
-<ul>
-  <li><strong>包名必须以字母开头,并且不能包含大写字母或特殊字符。</strong></li>
-  <li><strong>非私有静态final字段必须是大写的,单词之间用下划线分隔。</strong> (<code>MY_STATIC_VARIABLE</code>)</li>
-  <li><strong>非静态字段/方法必须使用小写开头的驼峰法。</strong> (<code>myNonStaticField</code>)</li>
-</ul>
-
-<h3 id="section-14">空格</h3>
-<ul>
-  <li><strong>制表符 vs 空格。</strong> 我们使用制表符缩进,而不是空格。我们在这个问题上并没有信仰偏好,只是碰巧在项目初始时使用了制表符,而不要混用空格和制表符是很重要的 (合并/差异冲突)。</li>
-  <li><strong>末尾不要有空格。</strong></li>
-  <li><strong>运算符和关键字两边添加空格</strong> 运算符(<code>+</code>, <code>=</code>, <code>&gt;</code>, …)和关键字 (<code>if</code>, <code>for</code>, <code>catch</code>, …) 在它们之前和之后必须有一个空格,前提是它们不在行首或行尾。</li>
-</ul>
-
-<h3 id="section-15">大括号</h3>
-<ul>
-  <li><strong>左花括号(‘{‘)不能放在新行上。</strong></li>
-  <li><strong>右花括号(‘}’)必须始终放在行首。</strong></li>
-  <li>
-    <p><strong>块。</strong> 在 <code>if</code>, <code>for</code>, <code>while</code>, <code>do</code>, … 之后的所有语句都必须用花括号封装在一个块中(即使这个块包含一条语句)。</p>
-
-    <div class="highlight"><pre><code class="language-java"><span class="k">for</span> <span class="o">(</span><span class="err">…</span><span class="o">)</span> <span class="o">{</span>
- <span class="err">…</span>
-<span class="o">}</span></code></pre></div>
-
-    <p>如果你想知道原因,请回忆一下苹果SSL库中著名的<a href="https://www.imperialviolet.org/2014/02/22/applebug.html"><em>goto bug</em></a>。</p>
-  </li>
-</ul>
-
-<h3 id="javadocs">Javadocs</h3>
-
-<ul>
-  <li>
-    <p><strong>所有公共/受保护的方法和类必须有一个Javadoc。</strong></p>
-  </li>
-  <li>
-    <p><strong>Javadoc 的第一句话必须以句号结束。</strong></p>
-  </li>
-  <li>
-    <p><strong>段落必须用新行隔开,并以&lt;p&gt;开头。</strong></p>
-  </li>
-</ul>
-
-<h3 id="section-16">修饰符</h3>
-
-<ul>
-  <li>
-    <p><strong>没有多余修饰符。</strong> 例如,接口方法中的 public 修饰符。</p>
-  </li>
-  <li>
-    <p><strong>遵循 JLS3 修饰符顺序。</strong> 修饰符必须按照以下顺序排列:public、protected、private、abstract、static、final、transient、volatile、synchronized、native、strictfp。</p>
-  </li>
-</ul>
-
-<h3 id="section-17">文件</h3>
-
-<ul>
-  <li>
-    <p><strong>所有文件必须以<code>\n</code>结尾。</strong></p>
+  <li>There is <strong>agreement</strong> that the ticket solves a valid problem, and that it is a <strong>good fit</strong> for Flink.
+The Flink community considers the following aspects:
+    <ul>
+      <li>Does the contribution alter the behavior of features or components in a way that it may break previous users’ programs and setups? If yes, there needs to be a discussion and agreement that this change is desirable.</li>
+      <li>Does the contribution conceptually fit well into Flink? Is it too much of a special case such that it makes things more complicated for the common case, or bloats the abstractions / APIs?</li>
+      <li>Does the feature fit well into Flink’s architecture? Will it scale and keep Flink flexible for the future, or will the feature restrict Flink in the future?</li>
+      <li>Is the feature a significant new addition (rather than an improvement to an existing part)? If yes, will the Flink community commit to maintaining this feature?</li>
+      <li>Does this feature align well with Flink’s roadmap and currently ongoing efforts?</li>
+      <li>Does the feature produce added value for Flink users or developers? Or does it introduce the risk of regression without adding relevant user or developer benefit?</li>
+      <li>Could the contribution live in another repository, e.g., Apache Bahir or another external repository?</li>
+      <li>Is this a contribution just for the sake of getting a commit in an open source project (fixing typos, style changes merely for taste reasons)</li>
+    </ul>
   </li>
-  <li>
-    <p><strong>文件长度不能超过3000行。</strong></p>
+  <li>There is <strong>consensus</strong> on how to solve the problem. This includes considerations such as
+    <ul>
+      <li>API and data backwards compatibility and migration strategies</li>
+      <li>Testing strategies</li>
+      <li>Impact on Flink’s build time</li>
+      <li>Dependencies and their licenses</li>
+    </ul>
   </li>
 </ul>
 
-<h3 id="section-18">杂项</h3>
+<p>If a change is identified as a large or controversial change in the discussion on Jira, it might require a <a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals">Flink Improvement Proposal (FLIP)</a> or a discussion on the <a href="/community.html#mailing-lists">dev mailing list</a> to reach agreement and consensus.</p>
 
-<ul>
-  <li><strong>数组必须定义为 Java-style。</strong> 例如,<code>public String[] array</code>。</li>
-  <li><strong>使用 Flink Preconditions。</strong> 为了增加一致性,请始终使用<code>org.apache.flink.Preconditions</code>的<code>checkNotNull</code>和<code>checkArgument</code>方法,Apache Commons Validate或 Google Guava。</li>
-  <li><strong>不要使用原生的泛型类型。</strong> 不要使用原生的泛型类型,除非是必须需要(某些时候签名匹配、数组是必需的)。</li>
-  <li><strong>Suppress warnings。</strong> 如果无法避免的警告(如“unchecked”或“serial”),则添加注解以抑制警告。</li>
-  <li>
-    <p><strong>注释。</strong> 在代码中添加注释。这段代码是在做什么?添加 Javadoc 或者继承它们,而不是在方法里加注释。不要自动生成注释,并避免不必要的注释,如:</p>
-
-    <p>​<code>java
-i++; // 增加1
-</code></p>
-  </li>
-</ul>
+<p>Contributors can expect to get a first reaction from a committer within a few days after opening the ticket. If a ticket doesn’t get any attention, we recommend reaching out to the <a href="/community.html#mailing-lists">developer mailing list</a>. Note that the Flink community sometimes does not have the capacity to accept all incoming contributions.</p>
 
-<hr />
+<p>Once all requirements for the ticket are met, a committer will assign somebody to the <em><code>Assignee</code></em> field of the ticket to work on it.
+Only committers have the permission to assign somebody.</p>
 
-<h2 id="section-19">最佳实践</h2>
+<p><strong>Pull requests belonging to unassigned Jira tickets will not be reviewed or merged by the community</strong>.</p>
 
-<ul>
-  <li>Travis: Flink 已经预先配置了 <a href="http://docs.travis-ci.com/">Travis CI</a> 。它可以很容易地为你 fork 的仓库启用(它使用 GitHub 进行身份验证,因此你不需要额外的帐户)。只需将 <em>Travis CI</em> hook 添加到你的仓库(<em>Settings –&gt; Integrations &amp; services –&gt; Add service</em>),并在 <a href="https://travis-ci.org/profile">Travis</a> 上启用 <code>flink</code> 仓库的测试。</li>
-</ul>
+<p><a name="implement"></a></p>
 
-<hr />
+<h3 id="implement-your-change">2. Implement your change</h3>
 
-<h2 id="section-20">设置开发环境</h2>
+<p>Once you’ve been assigned to a Jira issue, you may start to implement the required changes.</p>
 
-<h3 id="flink-">开发和构建 Flink 的先决条件</h3>
+<p>Here are some further points to keep in mind while implementing:</p>
 
 <ul>
-  <li>类 unix 环境(我们使用 Linux、Mac OS X、以及 Cygwin)</li>
-  <li>git</li>
-  <li>Maven(至少 3.0.4 版本)</li>
-  <li>Java 8</li>
+  <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Setting+up+a+Flink+development+environment">Set up a Flink development environment</a></li>
+  <li>Follow the <a href="/contributing/code-style-and-quality.html">Code Style and Quality Guide</a> of Flink</li>
+  <li>Take any discussions and requirements from the Jira issue or design document into account.</li>
+  <li>Do not mix unrelated issues into one contribution.</li>
 </ul>
 
-<h3 class="no_toc" id="section-21">克隆仓库</h3>
-
-<p>Apache Flink 的源代码存储在 <a href="http://git-scm.com/">git</a> 仓库中,<a href="https://github.com/apache/flink">GitHub</a> 上有该仓库的镜像。在 GitHub 上交流(exchange)代码的常见方法是将仓库 fork 到个人的 GitHub 帐户中。为此,你需要有一个 <a href="https://github.com">GitHub</a> 帐户,如果没有,可以免费创建一个帐户。Fork 一个仓库意味着 GitHub 为你创建了一个该仓库的副本。可以通过点击 <a href="https://github.com/apache/flink">仓库页面</a> 右上角的 <em>Fork</em> 按钮来完成的。一旦你在个人帐户中拥有了 Flink 仓库的 fork,你就可以将该仓库克隆到你的本地计算机上。</p>
-
-<div class="highlight"><pre><code>git clone https://github.com/&lt;your-user-name&gt;/flink.git
-</code></pre></div>
-
-<p>代码将被下载到一个名为 <code>flink</code> 的目录中。</p>
-
-<h3 id="section-22">代理设置</h3>
-
-<p>如果你在一个防火墙背后,可能需要为 Maven 和 IDE 配置代理。</p>
-
-<p>例如,WikipediaEditsSourceTest 通过 IRC 进行通信,需要通过 <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html">SOCKS 代理服务器</a>。</p>
-
-<h3 class="no_toc" id="ide-">安装一个 IDE 并导入源代码</h3>
+<p><a name="review"></a></p>
 
-<p>Flink 提交者使用 IntelliJ IDEA 和 Eclipse IDE 开发 Flink 源码。</p>
+<h3 id="open-a-pull-request">3. Open a Pull Request</h3>
 
-<p>IDE 的最低要求是:</p>
+<p>Considerations before opening a pull request:</p>
 
 <ul>
-  <li>支持 Java 和 Scala(也要支持混合项目)</li>
-  <li>支持 Maven (能用于 Java 和 Scala)</li>
+  <li>Make sure that <strong><code>mvn clean verify</code></strong> is passing on your changes to ensure that all checks pass, the code builds and that all tests pass.</li>
+  <li>Execute the <a href="https://github.com/apache/flink/tree/master/flink-end-to-end-tests#running-tests">End to End tests of Flink</a>.</li>
+  <li>Make sure no unrelated or unnecessary reformatting changes are included.</li>
+  <li>Make sure your commit history adheres to the requirements.</li>
+  <li>Make sure your change has been rebased to the latest commits in your base branch.</li>
+  <li>Make sure the pull request refers to the respective Jira, and that each Jira issue is assigned to exactly one pull request (in case of multiple pull requests for one Jira; resolve that situation first)</li>
 </ul>
 
-<h4 id="intellij-idea">IntelliJ IDEA</h4>
-
-<p>IntelliJ IDE 支持了开箱即用的 Maven,并且提供了 Scala 开发的插件。</p>
+<p>Considerations before or right after opening a pull request:</p>
 
 <ul>
-  <li>IntelliJ 下载: <a href="https://www.jetbrains.com/idea/">https://www.jetbrains.com/idea/</a></li>
-  <li>IntelliJ Scala 插件: <a href="http://plugins.jetbrains.com/plugin/?id=1347">http://plugins.jetbrains.com/plugin/?id=1347</a></li>
+  <li>Make sure that the branch is building successfully on <a href="https://travis-ci.org/">Travis</a>.</li>
 </ul>
 
-<p>查看我们的 <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/flinkDev/ide_setup.html#intellij-idea">安装配置 IntelliJ</a> 指南以获得详细信息。</p>
-
-<h4 id="eclipse-scala-ide">Eclipse Scala IDE</h4>
-
-<p>对于 Eclipse 用户,我们建议使用基于 Eclipse Kepler 的 Scala IDE 3.0.3。这是一个稍微老一点的版本,
-我们发现它是对 Flink 这样的复杂项目最有效的版本。</p>
-
-<p>有关最新 Scala IDE 版本的详细信息和指南,请参阅 <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/flinkDev/ide_setup.html#eclipse">如何安装配置Eclipse</a> 文档。</p>
-
-<p><strong>注意:</strong>在执行如下设置之前,请确保在命令行运行构建一次 (<code>mvn clean install -DskipTests</code>;见下文).</p>
-
-<ol>
-  <li>下载 Scala IDE (首选)或将插件安装到 Eclipse Kepler。请查阅
-<a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/flinkDev/ide_setup.html#eclipse">如何安装配置Eclipse</a> 下载链接和说明。</li>
-  <li>添加 “macroparadise” 编译器插件到Scala编译器中。
-打开 “Window” -&gt; “Preferences” -&gt; “Scala” -&gt; “Compiler” -&gt; “Advanced” 并将 <em>macroparadise</em> jar 包路径填到 “Xplugin” 字段中(通常是 “/home/<em>-your-user-</em>/.m2/repository/org/scalamacros/paradise_2.10.4/2.0.1/paradise_2.10.4-2.0.1.jar”)。
-注意:如果你没有jar文件,那么你可能没有运行命令行构建。</li>
-  <li>导入 Flink Maven 项目 (“File” -&gt; “Import” -&gt; “Maven” -&gt; “Existing Maven Projects”)</li>
-  <li>在导入期间,Eclipse 将要求自动安装额外的 Maven 构建助手插件。</li>
-  <li>关闭“flink-java8”项目。因为 Eclipse Kepler 不支持 Java 8,所以你不能开发这个项目。</li>
-</ol>
-
-<h4 id="section-23">导入源代码</h4>
-
-<p>Apache Flink 使用 Apache Maven 作为构建工具。大多数 IDE 都能够导入 Maven 项目。</p>
-
-<h3 class="no_toc" id="section-24">构建代码</h3>
-
-<p>要从源代码构建 Flink ,打开终端,导航到 Flink 源代码的根目录,调用:</p>
-
-<div class="highlight"><pre><code>mvn clean package
-</code></pre></div>
-
-<p>这将构建 Flink 并运行所有测试。Flink 将安装到 <code>build-target</code> 中。</p>
-
-<p>要构建 Flink 而不执行测试,你可以调用:</p>
-
-<div class="highlight"><pre><code>mvn -DskipTests clean package
-</code></pre></div>
-
-<hr />
-
-<h2 id="committer--git">Committer 如何使用 Git</h2>
-
-<p>只有 ASF 的基础架构团队可以管理访问 GitHub 镜像。因此,comitters 必须将更改推送到 ASF 的 git 仓库。</p>
+<p>Code changes in Flink are reviewed and accepted through <a href="https://help.github.com/en/articles/creating-a-pull-request">GitHub pull requests</a>.</p>
 
-<h3 class="no_toc" id="section-25">主仓库</h3>
+<p>There is a separate guide on <a href="/contributing/reviewing-prs.html">how to review a pull request</a>, including our pull request review process. As a code author, you should prepare your pull request to meet all requirements.</p>
 
-<p><strong>ASF writable</strong>: https://gitbox.apache.org/repos/asf/flink.git</p>
+<p><a name="merge"></a></p>
 
-<p><strong>ASF read-only</strong>: https://github.com/apache/flink.git</p>
+<h3 id="merge-change">4. Merge change</h3>
 
-<p>注意:Flink使用JDK 8构建和运行。</p>
+<p>The code will be merged by a committer of Flink once the review is finished. The Jira ticket will be closed afterwards.</p>
 
-<p>如果你想为 Hadoop 1 构建,可以通过<code>mvn clean package -DskipTests -Dhadoop.profile=1</code>来生效 build profile。</p>
 
 
   </div>
diff --git a/content/zh/contributing/contribute-documentation.html b/content/zh/contributing/contribute-documentation.html
index 73e08ba..9484bdf 100644
--- a/content/zh/contributing/contribute-documentation.html
+++ b/content/zh/contributing/contribute-documentation.html
@@ -117,23 +117,23 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
             <ul class="nav navbar-nav navbar-subnav">
               <li >
-                  <a href="/zh/contributing/contribute-code.html">Contribute Code</a>
+                  <a href="/zh/contributing/contribute-code.html">贡献代码</a>
               </li>
               <li >
-                  <a href="/zh/contributing/reviewing-prs.html">Review Pull Requests</a>
+                  <a href="/zh/contributing/reviewing-prs.html">审核 Pull Request</a>
               </li>
               <li >
-                  <a href="/zh/contributing/code-style-and-quality.html">Code Style and Quality Guide</a>
+                  <a href="/zh/contributing/code-style-and-quality.html">代码样式与质量指南</a>
               </li>
               <li  class="active">
-                  <a href="/zh/contributing/contribute-documentation.html">Contribute Documentation</a>
+                  <a href="/zh/contributing/contribute-documentation.html">贡献文档</a>
               </li>
               <li >
-                  <a href="/zh/contributing/improve-website.html">Contribute to the Website</a>
+                  <a href="/zh/contributing/improve-website.html">贡献网站</a>
               </li>
             </ul>
             
diff --git a/content/zh/contributing/how-to-contribute.html b/content/zh/contributing/how-to-contribute.html
index 3be6add..e269511 100644
--- a/content/zh/contributing/how-to-contribute.html
+++ b/content/zh/contributing/how-to-contribute.html
@@ -117,23 +117,23 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li class="active"><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li class="active"><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
             <ul class="nav navbar-nav navbar-subnav">
               <li >
-                  <a href="/zh/contributing/contribute-code.html">Contribute Code</a>
+                  <a href="/zh/contributing/contribute-code.html">贡献代码</a>
               </li>
               <li >
-                  <a href="/zh/contributing/reviewing-prs.html">Review Pull Requests</a>
+                  <a href="/zh/contributing/reviewing-prs.html">审核 Pull Request</a>
               </li>
               <li >
-                  <a href="/zh/contributing/code-style-and-quality.html">Code Style and Quality Guide</a>
+                  <a href="/zh/contributing/code-style-and-quality.html">代码样式与质量指南</a>
               </li>
               <li >
-                  <a href="/zh/contributing/contribute-documentation.html">Contribute Documentation</a>
+                  <a href="/zh/contributing/contribute-documentation.html">贡献文档</a>
               </li>
               <li >
-                  <a href="/zh/contributing/improve-website.html">Contribute to the Website</a>
+                  <a href="/zh/contributing/improve-website.html">贡献网站</a>
               </li>
             </ul>
             
@@ -175,177 +175,142 @@
 
 	<hr />
 
-<p>Apache Flink 社区是一个开放友好的社区。我们诚挚地欢迎每个人加入社区并为 Apache Flink 做出贡献。有许多方式可以参与社区并为 Flink 做出贡献,包括提问、提交错误报告、提出新功能、加入邮件列表上的讨论、贡献代码或文档、改进网站、以及测试候选版本。</p>
-
-<div class="page-toc">
-<ul id="markdown-toc">
-  <li><a href="#section" id="markdown-toc-section">问问题!</a></li>
-  <li><a href="#section-1" id="markdown-toc-section-1">提交错误报告</a></li>
-  <li><a href="#section-2" id="markdown-toc-section-2">提出改进或新功能</a></li>
-  <li><a href="#section-3" id="markdown-toc-section-3">帮助他人并加入讨论</a></li>
-  <li><a href="#section-4" id="markdown-toc-section-4">通过审查代码来贡献</a></li>
-  <li><a href="#section-5" id="markdown-toc-section-5">测试一个候选版本</a></li>
-  <li><a href="#section-6" id="markdown-toc-section-6">贡献代码</a></li>
-  <li><a href="#section-7" id="markdown-toc-section-7">贡献文档</a></li>
-  <li><a href="#section-8" id="markdown-toc-section-8">改进网站</a></li>
-  <li><a href="#section-9" id="markdown-toc-section-9">更多的贡献方式…</a></li>
-  <li><a href="#section-10" id="markdown-toc-section-10">提交贡献者许可协议</a></li>
-  <li><a href="#committer" id="markdown-toc-committer">如何成为一个提交者(Committer)</a></li>
-</ul>
-
-</div>
-
-<h2 id="section">问问题!</h2>
-
-<p>Apache Flink 社区非常乐意帮助并回答你的问题。我们提供了<a href="/zh/community.html#mailing-lists">用户邮件列表</a>并在 Stack Overflow 网站上创建了 <a href="http://stackoverflow.com/questions/tagged/apache-flink">[apache-flink]</a> 标签。</p>
-
-<hr />
-
-<h2 id="section-1">提交错误报告</h2>
-
-<p>如果你在使用 Flink 时遇到了问题,请告知我们并提交错误报告。打开 <a href="http://issues.apache.org/jira/browse/FLINK">Flink Jira</a>,登录并点击顶部红色的 <strong>Create</strong> 按钮。请提供你遇到的问题的详细信息,如果可能,请添加有助于重现问题的描述。非常感谢。</p>
-
-<hr />
-
-<h2 id="section-2">提出改进或新功能</h2>
-
-<p>我们的社区一直在寻找反馈来改进 Apache Flink。如果你对如何改进 Flink 有一个想法或者想到了一个新功能,这绝对能帮到 Flink 用户,请在 <a href="http://issues.apache.org/jira/browse/FLINK">Flink Jira</a> 中提交一个问题。改进或新功能最好能详细描述下,并尽可能地加上支持的范围和需求。详细信息很重要,原因如下:</p>
-
-<ul>
-  <li>它可确保在实现改进或功能时满足你的需求。</li>
-  <li>它有助于估算工作量并设计满足你需求的解决方案。</li>
-  <li>它允许围绕这个问题展开建设性的讨论。</li>
-</ul>
-
-<p>如果你计划自己贡献改进或功能,也需要提供详细信息。在这种情况下,请阅读<a href="/zh/contribute-code.html">贡献代码</a>指南。</p>
-
-<p>在开始实现之前,我们建议首先与社区就是否需要新功能以及如何实现新功能达成共识。某些功能可能超出了项目的范围,最好尽早发现。</p>
-
-<p>对于从根本上改变 Flink 的非常大的功能,我们有另一个流程:<a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals">Flink 改进提案(Flink Improvement Proposals, FLIP)</a>。如果你有兴趣,可以在那里提出新功能,或者加入现有提案的讨论。</p>
-
-<hr />
-
-<h2 id="section-3">帮助他人并加入讨论</h2>
-
-<p>Apache Flink 社区中的大多数通信都发生在两个邮件列表中:</p>
-
-<ul>
-  <li>用户邮件列表  <code>user@flink.apache.org </code> 是 Apache Flink 用户提问和寻求帮助或建议的地方。加入用户列表并帮助其他用户是为Flink社区做出贡献的一种非常好的方式。此外,Stack Overflow 网站上还有 <a href="http://stackoverflow.com/questions/tagged/apache-flink">[apache-flink]</a> 标签,你可以在那里帮助 Flink 用户(并获得一些积分)。</li>
-  <li>开发邮件列表 <code>dev@flink.apache.org</code> 是 Flink 开发人员交流想法、讨论新功能、发布新版本以及开发过程的地方。如果你有兴趣为 Flink 贡献代码,你应该加入此邮件列表。</li>
-</ul>
-
-<p>非常欢迎你<a href="/zh/community.html#mailing-lists">订阅这两个邮件列表</a>。</p>
-
-<hr />
-
-<h2 id="section-4">通过审查代码来贡献</h2>
-
-<p>Apache Flink 项目以 <a href="https://github.com/apache/flink/pulls">Github pull request</a> 的形式接收许多代码贡献。为 Flink 社区做出贡献的一个很好的方法是帮助审查 pull request。</p>
-
-<p><strong>如果你想帮助审查 pull request,请阅读<a href="/zh/reviewing-prs.html">审查指南</a>。</strong></p>
-
-<hr />
+<p>Apache Flink is developed by an open and friendly community. Everybody is cordially welcome to join the community and contribute to Apache Flink. There are several ways to interact with the community and to contribute to Flink including asking questions, filing bug reports, proposing new features, joining discussions on the mailing lists, contributing code or documentation, improving the website, or testing release candidates.</p>
+
+<h1>What do you want to do?</h1>
+<p>Contributing to Apache Flink goes beyond writing code for the project. Below, we list different opportunities to help the project:</p>
+
+<table class="table table-bordered">
+  <thead>
+    <tr>
+      <th>Area</th>
+      <th>Further information</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> Report a Bug</td>
+      <td>To report a problem with Flink, open <a href="http://issues.apache.org/jira/browse/FLINK">Flink’s Jira</a>, log in if necessary, and click on the red Create button at the top. <br />
+      Please give detailed information about the problem you encountered and, if possible, add a description that helps to reproduce the problem.</td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-console" aria-hidden="true"></span> Contribute Code</td>
+      <td>Read the <a href="/contributing/contribute-code.html">Code Contribution Guide</a></td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-ok" aria-hidden="true"></span> Help With Code Reviews</td>
+      <td>Read the <a href="/contributing/reviewing-prs.html">Code Review Guide</a></td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span> Help Preparing a Release</td>
+      <td>
+        Releasing a new version consists of the following steps:
+        <ol>
+          <li>Building a new release candidate and starting a vote (usually for 72 hours) on the dev@flink.apache.org list</li>
+          <li>Testing the release candidate and voting (+1 if no issues were found, -1 if the release candidate has issues).</li>
+          <li>Going back to step 1 if the release candidate had issues. Otherwise we publish the release.</li>
+        </ol>
+        Read the <a href="https://cwiki.apache.org/confluence/display/FLINK/Releasing">test procedure for a release</a>.
+      </td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> Contribute Documentation</td>
+      <td>Read the <a href="/contributing/contribute-documentation.html">Documentation Contribution Guide</a></td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-user" aria-hidden="true"></span> Support Flink Users</td>
+      <td>
+        <ul class="contribute-card-list">
+          <li>Reply to questions on the <a href="https://flink.apache.org/community.html#mailing-lists">user mailing list</a></li>
+          <li>Reply to Flink related questions on <a href="https://stackoverflow.com/questions/tagged/apache-flink">Stack Overflow</a> with the <a href="https://stackoverflow.com/questions/tagged/apache-flink"><code style="background-color: #cee0ed; border-color: #cee0ed;">apache-flink</code></a>, <a href="https://stackoverflow.com/questions/tagged/flink-streaming"><code style="background-color: #cee0ed; border-color: #cee0ed;">flink-streaming</code></a> or <a href="https://stackoverflow [...]
+          <li>Check the latest issues in <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20created%20DESC%2C%20priority%20DESC%2C%20updated%20DESC">Jira</a> for tickets which are actually user questions</li>
+        </ul>
+      </td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-blackboard" aria-hidden="true"></span> Improve The Website</td>
+      <td>Read the <a href="/contributing/improve-website.html">Website Contribution Guide</a></td>
+    </tr>
+    <tr>
+      <td><span class="glyphicon glyphicon-volume-up" aria-hidden="true"></span> Spread the Word About Flink</td>
+      <td>
+        <ul class="contribute-card-list">
+        <li>Organize or attend a <a href="https://www.meetup.com/topics/apache-flink/">Flink Meetup</a></li>
+        <li>Contribute to the <a href="https://flink.apache.org/blog/">Flink blog</a></li>
+        <li>Share your conference, meetup or blog post on the <a href="https://flink.apache.org/community.html#mailing-lists">community@flink.apache.org mailing list</a>, or tweet about it, tagging the <a href="https://twitter.com/ApacheFlink">@ApacheFlink</a> handle.</li>
+      </ul>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2">
+        <span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span> Any other question? Reach out to the <a href="https://flink.apache.org/community.html#mailing-lists">dev@flink.apache.org mailing list</a> to get help!
+      </td>
+    </tr>
+  </tbody>
+</table>
+
+<h2 id="further-reading">Further reading</h2>
+
+<h3 id="submit-a-contributor-license-agreement">Submit a Contributor License Agreement</h3>
+
+<p>Please submit a contributor license agreement to the Apache Software Foundation (ASF) if you are contributing a lot of code to Apache Flink. The following quote from <a href="http://www.apache.org/licenses/#clas">http://www.apache.org/licenses</a> gives more information about the ICLA and CCLA and why they are necessary.</p>
 
-<h2 id="section-5">测试一个候选版本</h2>
-
-<p>Apache Flink 通过其活跃的社区不断改进。每隔几周,我们都会发布 Apache Flink 的新版本,其中包含了 bug 修复、改进和新特性。发布新版本的过程包括以下步骤:</p>
-
-<ol>
-  <li>构建一个新的发布候选版本并开始投票(通常持续72小时)。</li>
-  <li>测试候选版本并投票(如果没有发现问题,则使用<code>+1</code>;如果候选版本有问题,则使用<code>-1</code>)。</li>
-  <li>如果候选发布版有问题,请返回第1步。否则我们发布该版本。</li>
-</ol>
-
-<p>我们的 wiki 包含一个页面,其中总结了<a href="https://cwiki.apache.org/confluence/display/FLINK/Releasing">发布的测试过程</a>。如果由一小群人完成发布测试工作会很困难,更多人参与则很轻松。Flink 社区鼓励每个人参与测试候选发布版。通过测试候选版本,可以确保下一个 Flink 版本适用于你的环境,并帮助提高版本的质量。</p>
-
-<hr />
-
-<h2 id="section-6">贡献代码</h2>
-
-<p>Apache Flink 通过志愿者的代码贡献得到维护、改进和扩展。Apache Flink 社区鼓励任何人贡献源代码。为了确保贡献者和评审者有一个愉快的贡献体验并保持高质量的代码库,请遵循我们的<a href="/zh/contribute-code.html">贡献代码</a>指南。该指南还包括有关如何设置开发环境、编码指南和代码样式的说明,并说明如何提交代码贡献。</p>
-
-<p><strong>在开始贡献代码之前,请阅读<a href="/zh/contribute-code.html">贡献代码</a>指南。</strong></p>
-
-<p>另请阅读<a href="/zh/how-to-contribute.html#submit-a-contributor-license-agreement">提交贡献者许可协议</a>部分。</p>
-
-<h3 class="no_toc" id="issue-">正在寻找一个可以参与贡献的 issue ?</h3>
+<blockquote>
+  <p>The ASF desires that all contributors of ideas, code, or documentation to the Apache projects complete, sign, and submit (via postal mail, fax or email) an <a href="http://www.apache.org/licenses/icla.txt">Individual Contributor License Agreement</a> (CLA) [ <a href="http://www.apache.org/licenses/icla.pdf">PDF form</a> ]. The purpose of this agreement is to clearly define the terms under which intellectual property has been contributed to the ASF and thereby allow us to defend the  [...]
 
-<p>我们在 <a href="https://issues.apache.org/jira/browse/FLINK/?selectedTab=com.atlassian.jira.jira-projects-plugin:issues-panel">Flink Jira</a> 中维护了所有已知 bug,改进建议和功能需求的列表。对于新贡献者友好的问题,我们将其打上了特殊的 “starter” 标记。这些任务应该很容易解决,并将帮助你熟悉项目和贡献过程。</p>
+  <p>For a corporation that has assigned employees to work on an Apache project, a <a href="http://www.apache.org/licenses/cla-corporate.txt">Corporate CLA</a> (CCLA) is available for contributing intellectual property via the corporation, that may have been assigned as part of an employment agreement. Note that a Corporate CLA does not remove the need for every developer to sign their own CLA as an individual, to cover any of their contributions which are not owned by the corporation si [...]
 
-<p>如果你正在寻找可以参与贡献的 issue,请查看 <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20starter%20ORDER%20BY%20priority%20DESC">starter issues</a> 列表。你当然也可以选择<a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20priority%20DESC">任何其他问题</a>继续工作。如果你对感兴趣的 issue 有问题的话,也可以随时提问。</p>
+  <p>…</p>
+</blockquote>
 
 <hr />
 
-<h2 id="section-7">贡献文档</h2>
+<h3 id="becoming-a-flink-committer-and-pmc-member">Becoming a Flink Committer and PMC member</h3>
 
-<p>良好的文档对任何类型的软件都至关重要。对于复杂的软件系统尤其如此,例如 Apache Flink 等分布式数据处理引擎。Apache Flink社区旨在提供简明,精确和完整的文档,并欢迎任何改进 Apache Flink 文档的贡献。</p>
+<h4 id="how-to-become-a-committer">How to become a committer</h4>
 
-<ul>
-  <li>如果发现文档缺失、不正确或过时的问题,可以提交一个 <a href="http://issues.apache.org/jira/browse/FLINK">Jira issue</a> 。</li>
-  <li>Flink 文档是用 Markdown 编写的,位于<a href="/zh/community.html#main-source-repositories">Flink 源码库</a>的<code>docs</code>文件夹中。有关如何更新和改进文档以及提供贡献的详细说明,请参阅<a href="/zh/contribute-documentation.html">贡献文档</a> 指南。</li>
-</ul>
-
-<hr />
+<p>Committers are community members that have write access to the project’s repositories, i.e., they can modify the code, documentation, and website by themselves and also accept other contributions.</p>
 
-<h2 id="section-8">改进网站</h2>
+<p>There is no strict protocol for becoming a committer or PMC member. Candidates for new committers are typically people that are active contributors and community members.</p>
 
-<p><a href="http://flink.apache.org">Apache Flink 网站</a>展示了 Apache Flink 及其社区。它有几个用途,包括:</p>
+<p>Candidates for new committers are suggested by current committers or PMC members, and voted upon by the PMC.</p>
 
-<ul>
-  <li>向访问者介绍 Apache Flink 及其功能。</li>
-  <li>鼓励访问者下载和使用 Flink 。</li>
-  <li>鼓励访客与社区互动。</li>
-</ul>
+<p>If you would like to become a committer, you should engage with the community and start contributing to Apache Flink in any of the above ways. You might also want to talk to other committers and ask for their advice and guidance.</p>
 
-<p>我们欢迎任何改进我们网站的贡献。</p>
+<h4 id="what-are-we-looking-for-in-committers">What are we looking for in Committers</h4>
 
-<ul>
-  <li>如果你认为我们的网站可以改进,请提交一个 <a href="http://issues.apache.org/jira/browse/FLINK">Jira issue</a> 。</li>
-  <li>如果你想更新和改进网站,请按照<a href="/zh/improve-website.html">改进网站</a>指南进行操作。</li>
-</ul>
+<p>Being a committer means being recognized as a significant contributor to the project (community or technology), and having the tools to help with the development. Committer candidates are community members who have made good contributions over an extended period of time and want to continue their contributions.</p>
 
-<hr />
+<p>Community contributions include helping to answer user questions on the mailing list, verifying release candidates, giving talks, organizing community events, and other forms of evangelism and community building. The “Apache Way” has a strong focus on the project community, and committers can be recognized for outstanding community contributions even without any code contributions.</p>
 
-<h2 id="section-9">更多的贡献方式…</h2>
+<p>Code/technology contributions include contributed pull requests (patches), design discussions, reviews, testing, and other help in identifying and fixing bugs. Especially constructive and high quality design discussions, as well as helping other contributors, are strong indicators.</p>
 
-<p>还有很多方法可以为 Flink 社区做出贡献。例如,你可以:</p>
+<p>While the prior points give ways to identify promising candidates, the following are “must haves” for any committer candidate:</p>
 
 <ul>
-  <li>做一个关于 Flink 的演讲,告诉别人你是如何使用它的。</li>
-  <li>组织本地 Meetup 或用户组。</li>
-  <li>与人们谈论 Flink 。</li>
-  <li>…</li>
+  <li>
+    <p>Being community minded: The candidate understands the meritocratic principles of community management. They do not always optimize for as much as possible personal contribution, but will help and empower others where it makes sense.</p>
+  </li>
+  <li>
+    <p>We trust that a committer candidate will use their write access to the repositories responsibly, an if in doubt, conservatively. Flink is a big system, and it is important that committers are aware of what they know and what they don’t know. In doubt, committers should ask for a second pair of eyes rather than commit to parts that they are not well familiar with. (Even the most seasoned committers follow this practice.)</p>
+  </li>
+  <li>
+    <p>They have shown to be respectful towards other community members and constructive in discussions.</p>
+  </li>
 </ul>
 
-<hr />
-
-<h2 id="section-10">提交贡献者许可协议</h2>
-
-<p>如果你想为 Apache Flink 做出贡献,请向 Apache Software Foundation (ASF)提交贡献者许可协议。以下引用<a href="http://www.apache.org/licenses/#clas">http://www.apache.org/licenses</a>提供了关于 ICLA 和 CCLA 的更多信息,以及为什么需要它们。</p>
-
-<blockquote>
-  <p>ASF希望Apache项目的所有思想、代码或文档的贡献者完成、签署并提交(通过邮政邮件、传真或电子邮件)<a href="http://www.apache.org/licenses/icla.txt">Individual Contributor License Agreement</a> (CLA) [<a href="http://www.apache.org/licenses/icla.pdf">PDF 表单</a>]。本协议的目的是明确界定向 ASF 提供知识产权的条款,从而使我们能够在未来某个时间就软件发生法律纠纷时为该项目辩护。在个人被授予对 ASF 项目的提交权限之前,需要将签名类存档。</p>
-
-  <p>对于指派员工参与 Apache 项目的企业,可以通过公司提供<a href="http://www.apache.org/licenses/cla-corporate.txt">企业 CLA</a> (Corporate CLA,CCLA)来贡献知识产权,该知识产权可能是作为雇佣协议的一部分分配的。请注意,企业 CLA 并不免除每个开发人员作为个人签署他们自己的 CLA 的需要,以覆盖那些不属于签署 CCLA 企业的贡献。</p>
-
-  <p>…</p>
-</blockquote>
-
-<hr />
-
-<h2 id="committer">如何成为一个提交者(Committer)</h2>
+<h4 id="what-are-we-looking-for-in-pmc-members">What are we looking for in PMC members</h4>
 
-<p>提交者是具有对项目仓库写权限的社区成员,即他们可以修改代码、文档和网站、也接受其他贡献。</p>
+<p>The PMC is the official controlling body of the project. PMC members “must” be able to perform the official responsibilities of the PMC (verify releases and growth of committers/PMC). We “want” them to be people that have a vision for Flink, technology and community wise.</p>
 
-<p>成为提交者没有严格的协议。新提交者的候选人通常是活跃的贡献者和社区成员。</p>
+<p>For the avoidance of doubt, not every PMC member needs to know all details of how exactly Flink’s release process works (it is okay to understand the gist and how to find the details). Likewise, not every PMC member needs to be a visionary. We strive to build a PMC that covers all parts well, understanding that each member brings different strengths.</p>
 
-<p>成为活跃的社区成员意味着参与邮件列表讨论、帮助回答问题、验证候选发布版本、尊重他人、以及遵循社区管理的精英原则。由于 “Apache Way” 非常关注项目社区,因此这部分非常重要。</p>
+<p>Ideally, we find candidates among active community members that have shown initiative to shape the direction of Flink (technology and community) and have shown willingness to learn the official processes, such as how to create or verify for releases.</p>
 
-<p>当然,为项目提供代码和文档也很重要。一个好的开端是提供改进、新功能或错误修复。你需要证明你对所贡献的代码负责,添加测试和文档,并帮助维护它。</p>
+<p>A PMC member is also a committer. Candidates are already committers or will automatically become also a committer when joining the PMC. Hence, the “What are we looking for in committers?” also applies to PMC candidates.</p>
 
-<p>新提交者的候选人由当前的提交者或 PMC 成员提出,并由 PMC 投票。</p>
+<p>A PMC member has a lot of power in a project. A single PMC member can block many decisions and generally stall and harm the project in many ways. We hence must trust the PMC candidates to be level-headed, constructive, supportive, and willing to “disagree and commit” at times.</p>
 
-<p>如果你想成为提交者,你应该与社区互动并开始以上述任何方式为 Apache Flink 做出贡献。你可能还想与其他提交者交谈并询问他们的建议和指导。</p>
 
 
   </div>
diff --git a/content/zh/contributing/improve-website.html b/content/zh/contributing/improve-website.html
index 2c76971..2b511ad 100644
--- a/content/zh/contributing/improve-website.html
+++ b/content/zh/contributing/improve-website.html
@@ -117,23 +117,23 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
             <ul class="nav navbar-nav navbar-subnav">
               <li >
-                  <a href="/zh/contributing/contribute-code.html">Contribute Code</a>
+                  <a href="/zh/contributing/contribute-code.html">贡献代码</a>
               </li>
               <li >
-                  <a href="/zh/contributing/reviewing-prs.html">Review Pull Requests</a>
+                  <a href="/zh/contributing/reviewing-prs.html">审核 Pull Request</a>
               </li>
               <li >
-                  <a href="/zh/contributing/code-style-and-quality.html">Code Style and Quality Guide</a>
+                  <a href="/zh/contributing/code-style-and-quality.html">代码样式与质量指南</a>
               </li>
               <li >
-                  <a href="/zh/contributing/contribute-documentation.html">Contribute Documentation</a>
+                  <a href="/zh/contributing/contribute-documentation.html">贡献文档</a>
               </li>
               <li  class="active">
-                  <a href="/zh/contributing/improve-website.html">Contribute to the Website</a>
+                  <a href="/zh/contributing/improve-website.html">贡献网站</a>
               </li>
             </ul>
             
diff --git a/content/zh/contributing/reviewing-prs.html b/content/zh/contributing/reviewing-prs.html
index b1f11d5..8ba80b6 100644
--- a/content/zh/contributing/reviewing-prs.html
+++ b/content/zh/contributing/reviewing-prs.html
@@ -117,23 +117,23 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
             <ul class="nav navbar-nav navbar-subnav">
               <li >
-                  <a href="/zh/contributing/contribute-code.html">Contribute Code</a>
+                  <a href="/zh/contributing/contribute-code.html">贡献代码</a>
               </li>
               <li  class="active">
-                  <a href="/zh/contributing/reviewing-prs.html">Review Pull Requests</a>
+                  <a href="/zh/contributing/reviewing-prs.html">审核 Pull Request</a>
               </li>
               <li >
-                  <a href="/zh/contributing/code-style-and-quality.html">Code Style and Quality Guide</a>
+                  <a href="/zh/contributing/code-style-and-quality.html">代码样式与质量指南</a>
               </li>
               <li >
-                  <a href="/zh/contributing/contribute-documentation.html">Contribute Documentation</a>
+                  <a href="/zh/contributing/contribute-documentation.html">贡献文档</a>
               </li>
               <li >
-                  <a href="/zh/contributing/improve-website.html">Contribute to the Website</a>
+                  <a href="/zh/contributing/improve-website.html">贡献网站</a>
               </li>
             </ul>
             
@@ -192,7 +192,7 @@
       <li><a href="#section-1" id="markdown-toc-section-1">1.贡献的描述是否清晰?</a></li>
       <li><a href="#flink" id="markdown-toc-flink">2.是否一致认为这一变更或者功能应该进入 Flink?</a></li>
       <li><a href="#committer--committer-" id="markdown-toc-committer--committer-">3. 贡献是否需要一些特定的 committer 的关注,这些 committer 有时间投入吗?</a></li>
-      <li><a href="#section-2" id="markdown-toc-section-2">4. 实现的整体方案或架构是否正确?</a></li>
+      <li><a href="#section-2" id="markdown-toc-section-2">4. 实现方案是否遵循了商定的整体方案/架构?</a></li>
       <li><a href="#flink-" id="markdown-toc-flink-">5.整体代码质量是否良好,是否符合我们希望在 Flink 中维护的标准?</a></li>
       <li><a href="#section-3" id="markdown-toc-section-3">6. 英文和中文文档是否都更新了?</a></li>
     </ul>
@@ -204,11 +204,14 @@
 
 <h2 id="section">审核清单</h2>
 
-<p>每次审核都需要检查以下五个方面。我们建议按照以下顺序进行检查,以避免在还没有就是否添加某项功能或需要改动达成共识之前,就花费时间进行详细的代码质量审核。</p>
+<p>每次审核都需要检查以下六个方面。我们建议按照以下顺序进行检查,以避免在还没有就是否添加某项功能或需要改动达成共识之前或没有满足一些正式条件前,就花费时间进行详细的代码质量审核。</p>
 
 <h3 id="section-1">1.贡献的描述是否清晰?</h3>
 
-<p>检查贡献是否有充分的描述以方便审核,不重要的更改和修复不需要很长的描述,任何改变功能或行为的 pull request 都需要描述这些改变的重点, 以便知道审核什么内容(并且不必钻研代码来了解更改的作用)。</p>
+<p>检查贡献是否有充分的描述以方便审核,不重要的更改和修复不需要很长的描述。如果实现方案完全是<a href="/zh/contributing/contribute-code.html#consensus">按照之前在 Jira 或 dev 邮件列表上讨论结论</a>进行的话,只需要一个对讨论的简短的引用即可。
+如果实现方案与之前达成一致的方案不同的话,关于实现的详细描述是需要的,以便 review 贡献时更深入地讨论。</p>
+
+<p>任何改变功能或行为的 pull request 都需要描述这些改变的重点, 以便知道审核什么内容(并且不必钻研代码来了解更改的作用)。</p>
 
 <p>需要更长描述的更改,理想情况下基于邮件列表或 JIRA 中的事先设计讨论,可以简单地链接到那里或从那里复制描述。</p>
 
@@ -218,26 +221,9 @@
 
 <h3 id="flink">2.是否一致认为这一变更或者功能应该进入 Flink?</h3>
 
-<p>对于错误修复,只有在需要相对大量改动或可能破坏现有程序和设置时才需要检查。</p>
-
-<p>理想情况下, 除了错误修复和少量的添加或扩展的情况外,该问题可以从 Jira issue 或开发者邮件列表的讨论中找到答案。在这种情况下,此问题可以立即标记为已解决。对于未事先达成共识而创建的 pull requests,此问题需要作为审核的一部分予以回答。</p>
-
-<p>需从以下几个方面判断是否应将改动引入Flink:</p>
-
-<ul>
-  <li>贡献中改变特征或组件行为的做法,是否会对先前用户的代码或设置造成影响?如果是,则需要进行讨论并同意这种变更是值得的。</li>
-  <li>这个贡献在概念上是否适合 Flink ?它是否是某种极端特例,反而会将普通场景复杂化或使抽象及 API 变得臃肿?</li>
-  <li>该功能是否适合 Flink 的架构?未来它是否会扩展并保持 Flink 的灵活性,或者该功能将来会限制 Flink 的发展吗?</li>
-  <li>该功能是一项重要的新增功能(而不是对现有部件的改进)吗?如果是,Flink 社区是否会承诺维护此功能?</li>
-  <li>该功能是否为 Flink 用户或开发人员带来了额外的利益?或者它是否会在相关用户或开发人员无法受益的情况下引入回归风险?</li>
-  <li>可以将贡献提交至其他仓库(例如 <a href="https://bahir.apache.org">Apache Bahir</a>)或外部仓库中吗?</li>
-</ul>
-
-<p>所有这些问题都应在不看代码的前提下从 Jira 和 pull request 中的描述或讨论中得到回答。</p>
-
-<p><strong>一旦有一个 committer 接受了某个功能、改进或者错误修复,并且没有其他 committer 不同意(lazy consensus 机制),那么就会批准它。</strong></p>
+<p>这个问题要直接在关联的 Jira issue 中回答。对于在达成一致前创建的 pull request 来说,需要<a href="/zh/contributing/contribute-code.html#consensus">先在 Jira 中寻求一致的意见</a>。</p>
 
-<p>如果意见出现分歧,应将讨论转移到各自的 Jira issue 或开发邮件列表中继续进行,直到达成共识。如果变更是由一位 committer 提出的,那么寻求另一位 committer 的批准是最佳做法。</p>
+<p>对于<code>[hotfix]</code>类型的的 pull request,可以在 pull request 中寻求意见一致。</p>
 
 <hr />
 
@@ -259,9 +245,9 @@
 
 <hr />
 
-<h3 id="section-2">4. 实现的整体方案或架构是否正确?</h3>
+<h3 id="section-2">4. 实现方案是否遵循了商定的整体方案/架构?</h3>
 
-<p>所给出的修复或功能实施方案是最佳吗?还是有其他更容易,更健壮或更易于维护的方案?
+<p>在这一步中,我们会检查一个贡献的实现是否遵循了在 Jira 或邮件列表中商定的方案。
 这个问题应该尽可能地从 pull request 描述(或链接的 Jira )中得到回答。</p>
 
 <p>我们建议你在深入了解更改的各个部分进行评论之前先检查这一点。</p>
@@ -273,16 +259,17 @@
 <p>这是对实际变更的详细代码审核,包括:</p>
 
 <ul>
-  <li>变更是否按照设计文档或 pull request 说明中的描述进行?</li>
+  <li>变更是否按照 Jira issue 或 pull request 说明中的描述进行?</li>
   <li>代码是否遵循正确的软件工程实践?代码是否正确、健壮、可维护、可测试?</li>
   <li>在更改性能敏感部分时,是否对性能进行了优化?</li>
   <li>测试是否覆盖了全部改动?</li>
   <li>测试执行速度是否够快?(是否仅在必要时才使用重量级集成测试?)</li>
   <li>代码格式是否遵循 Flink 的 checkstyle 模式?</li>
   <li>代码是否避免引入额外的编译器警告?</li>
+  <li>如果依赖更新了,NOTICE 文件是否也更新了?</li>
 </ul>
 
-<p>可以在 <a href="/zh/contribute-code.html#code-style">Flink代码样式页面</a> 中找到一些代码样式指南。</p>
+<p>可以在 <a href="/zh/contributing/code-style-and-quality.html">Flink代码样式和质量指南</a> 中找到编码的规范和指南。</p>
 
 <hr />
 
@@ -290,7 +277,7 @@
 
 <p>如果这个 pull request 引入了一个新功能,该功能应该被文档化。Flink 社区正在同时维护英文和中文文档。所以如果你想要更新或扩展文档,英文和中文文档都需要更新。如果你不熟悉中文,请创建一个用于中文文档翻译的 JIRA 并附上 <code>chinese-translation</code> 的组件名,并与当前 JIRA 关联起来。如果你熟悉中文,我们鼓励在一个 pull request 中同时更新两边的文档。</p>
 
-<p>阅读<a href="https://flink.apache.org/zh/contribute-documentation.html">如何贡献文档</a>了解更多。</p>
+<p>阅读<a href="/zh/contributing/contribute-documentation.html">如何贡献文档</a>了解更多。</p>
 
 <h2 id="flinkbot-">使用 @flinkbot 进行审核</h2>
 
diff --git a/content/zh/downloads.html b/content/zh/downloads.html
index 8248b00..d739a8b 100644
--- a/content/zh/downloads.html
+++ b/content/zh/downloads.html
@@ -117,7 +117,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/ecosystem.html b/content/zh/ecosystem.html
index d145c94..b4ba07b 100644
--- a/content/zh/ecosystem.html
+++ b/content/zh/ecosystem.html
@@ -117,7 +117,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/faq.html b/content/zh/faq.html
index c0ed97b..909cf68 100644
--- a/content/zh/faq.html
+++ b/content/zh/faq.html
@@ -117,7 +117,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/flink-applications.html b/content/zh/flink-applications.html
index b3c19b3..15907b8 100644
--- a/content/zh/flink-applications.html
+++ b/content/zh/flink-applications.html
@@ -72,13 +72,13 @@
             
             <ul class="nav navbar-nav navbar-subnav">
               <li >
-                  <a href="/zh/flink-architecture.html"></a>
+                  <a href="/zh/flink-architecture.html">架构</a>
               </li>
               <li  class="active">
-                  <a href="/zh/flink-applications.html"></a>
+                  <a href="/zh/flink-applications.html">应用</a>
               </li>
               <li >
-                  <a href="/zh/flink-operations.html"></a>
+                  <a href="/zh/flink-operations.html">运维</a>
               </li>
             </ul>
             
@@ -129,7 +129,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/flink-architecture.html b/content/zh/flink-architecture.html
index 1739ba3..c7ab4a9 100644
--- a/content/zh/flink-architecture.html
+++ b/content/zh/flink-architecture.html
@@ -72,13 +72,13 @@
             
             <ul class="nav navbar-nav navbar-subnav">
               <li  class="active">
-                  <a href="/zh/flink-architecture.html"></a>
+                  <a href="/zh/flink-architecture.html">架构</a>
               </li>
               <li >
-                  <a href="/zh/flink-applications.html"></a>
+                  <a href="/zh/flink-applications.html">应用</a>
               </li>
               <li >
-                  <a href="/zh/flink-operations.html"></a>
+                  <a href="/zh/flink-operations.html">运维</a>
               </li>
             </ul>
             
@@ -129,7 +129,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/flink-operations.html b/content/zh/flink-operations.html
index a006582..abf92ea 100644
--- a/content/zh/flink-operations.html
+++ b/content/zh/flink-operations.html
@@ -72,13 +72,13 @@
             
             <ul class="nav navbar-nav navbar-subnav">
               <li >
-                  <a href="/zh/flink-architecture.html"></a>
+                  <a href="/zh/flink-architecture.html">架构</a>
               </li>
               <li >
-                  <a href="/zh/flink-applications.html"></a>
+                  <a href="/zh/flink-applications.html">应用</a>
               </li>
               <li  class="active">
-                  <a href="/zh/flink-operations.html"></a>
+                  <a href="/zh/flink-operations.html">运维</a>
               </li>
             </ul>
             
@@ -129,7 +129,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/gettinghelp.html b/content/zh/gettinghelp.html
index d831f48..cdaa374 100644
--- a/content/zh/gettinghelp.html
+++ b/content/zh/gettinghelp.html
@@ -117,7 +117,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/index.html b/content/zh/index.html
index bbf0b60..b0be24d 100644
--- a/content/zh/index.html
+++ b/content/zh/index.html
@@ -117,7 +117,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/material.html b/content/zh/material.html
index f7d9415..2396d26 100644
--- a/content/zh/material.html
+++ b/content/zh/material.html
@@ -117,7 +117,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/poweredby.html b/content/zh/poweredby.html
index 275fa5d..b290545 100644
--- a/content/zh/poweredby.html
+++ b/content/zh/poweredby.html
@@ -117,7 +117,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/roadmap.html b/content/zh/roadmap.html
index 28e3b8a..7494a24 100644
--- a/content/zh/roadmap.html
+++ b/content/zh/roadmap.html
@@ -117,7 +117,7 @@
             <li class="active"><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->
diff --git a/content/zh/usecases.html b/content/zh/usecases.html
index a24bd5c..607e766 100644
--- a/content/zh/usecases.html
+++ b/content/zh/usecases.html
@@ -117,7 +117,7 @@
             <li><a href="/zh/roadmap.html">开发计划</a></li>
 
             <!-- Contribute -->
-            <li><a href="/zh/contributing/how-to-contribute.html">How to Contribute</a></li>
+            <li><a href="/zh/contributing/how-to-contribute.html">如何参与贡献</a></li>
             
 
             <!-- GitHub -->