Apache Flink 是一个通过志愿者贡献的代码来维护、改进和扩展的项目。我们欢迎给 Flink 做贡献,但由于项目的规模大,以及为了保持高质量的代码库,我们要求贡献者遵循本文所阐述的贡献流程。
请随时提出任何问题! 可以发送邮件到 [dev mailing list]( {{ site.base }}/zh/community.html#mailing-lists ),也可以对正在处理的 Jira issue 发表评论。
重要提示:在开始准备代码贡献之前,请仔细阅读本文档。请遵循如下所述的流程和指南,为 Apache Flink 做贡献并不是从创建 pull request 开始的。我们希望贡献者先和我们联系,共同讨论整体方案。如果没有与 Flink committers 达成共识,那么贡献可能需要大量返工或不予审核通过。
{% toc %}
向 Apache Flink 做出贡献的第一步是与 Flink 社区达成共识,这意味着需要一起商定更改的范围和实现的方法。
在大多数情况下,我们应该在 Flink 的 Bug 追踪器:Jira 中进行讨论。
以下类型的更改需要向 Flink 的 dev@flink.apache.org 邮件列表发一封以 [DISCUSS]
开头的邮件:
在讨论未达成一致之前,不要为这些类型的更改创建 Jira 工单。 基于 dev 邮件讨论的 Jira 工单需要链接到该讨论,并总结结果。
Jira 工单获得共识的要求:
如果在 Jira 的讨论中发现改动是一个大的或有争议的变更,则可能需要起草 Flink 改动建议(FLIP) 或在 [ dev 邮件列表]( {{ site.base }}/zh/community.html#mailing-lists) 中讨论以达成一致的意见。
一般 Committer 会在几天内对工单进行回应。如果工单没有得到任何关注,我们建议你联系 [dev 邮件列表]( {{ site.base }}/zh/community.html#mailing-lists)。请注意,Flink 社区有时无法处理发来的所有贡献信息。
一旦满足了工单的所有条件后,Committer 就会将工单*分配
*给某个人,然后被分配到工单的人就可以继续后续的工作了。 只有 Committer 才能分配工单(包括分配给他自己和其他人)。
社区不会审查或合并未关联 Jira 工单的 pull request!
你一旦被分配到了 Jira issue,那么你就可以开始去实现所需的改动了。
以下是在实现时要注意的一些要点:
在创建 pull request 之前的注意事项:
mvn clean verify
成功执行,以保证所有检查都通过、代码成功构建和所有测试用例都成功执行。创建 pull request 之前或之后的注意事项:
Flink 中的代码更改将通过 GitHub pull request 进行审查和合并。
这里有关于[如何审查 pull request]({{ site.base }}/zh/contributing/reviewing-prs.html) 的单独指南,包括我们的 pull request 审核流程。作为代码作者,在你准备 pull request 前,应该满足以上所有要求。
审核完成后,代码将由 Flink 的 committer 合并。Jira 工单将在合并之后关闭。