将补丁提交给PostgreSQL社区的方式

首先

在PostgreSQL社区参与和活动方面,我曾有多次演讲机会,并收到一些人的要求,希望能够教授具体的步骤。在PostgreSQL社区中,我们并没有使用像github这样的开发工具,而是基本上利用邮件列表进行沟通,通过PostgreSQL社区独特的Commit Fest活动来开发新功能等。由于这些可能在刚开始时会感到有些困难,所以我想介绍一下基本的步骤。

在本文中,我将介绍以下步骤,以讲解如何向PostgreSQL社区提交补丁。

    1. 预备工作:

1. 注册邮件列表
2. 准备源代码
3. 准备补丁

补丁准备:

1. 修改源代码
2. 创建补丁文件

提交补丁:

1. 创建提交给社区的邮件
2. 发送邮件给社区

(额外内容) 注册Commit Fest的方法
URL集合

请也阅读这一份文件。

    • PostgreSQL開発の基本動作まとめ(Qiita)

 

    • PostgreSQLコミュニティに飛び込もう(SlideShare)

 

    Submitting a Patch

前期准备

1-1. 注册邮件列表

PostgreSQL社区的沟通基本上是通过邮件列表进行的。不同的主题有不同的邮件列表,所有与开发相关的讨论都在pgsql-hackers中进行。请通过以下表单注册至pgsql-hackers。

ML登録フォーム.PNG

准备源代码

PostgreSQL的源代码使用git进行管理,存储库位于git.postgresql.org/git/postgresql.git。您可以从这里使用git clone进行克隆。在克隆完成后,请确保您处于master分支。master分支用于管理PostgreSQL的开发版代码。其他的RELX_Y_STABLE是各版本的稳定版分支。

$ git clone git://git.postgresql.org/git/postgresql.git
$ cd postgresql
$ git branch
* master

2. 补丁的准备

2-1. 修改源代码

修改源代码。如果源代码不是最新的状态,则执行 git pull origin master 来开始修改。

2-2. 创建补丁文件

创建的功能将差异从主分支保存为补丁文件。补丁文件的创建方式可以使用git diff、git format-patch等任意方法。例如,下面是使用git diff创建补丁的示例。

$ git diff master --stat
 src/backend/commands/vacuumlazy.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
$ git diff master > vacuum_new_feature.patch

2-3. 在提交补丁前的检查

让我们确保提交的补丁至少满足以下要求。

    • その時のHEADのコードにエラーなくパッチが当たる

 

    • 書いたコードがコーディングスタイルに従っているURL

What’s the formatting style used in PostgreSQL source code?

リグレッションテストがエラーなく終了する

3.发布补丁

3-1. 创建发给社区的邮件

我认为,在提议新功能时,在电子邮件正文中应包括以下内容。

    • どんな機能であるか

機能の使い方、必要であれば内部的な実装や作った機能のアーキテクチャなどを記載します。

なぜその機能が必要なのか、ユースケースなど

ユーザにどのようなメリットが有るか、どういうときに役に立つ機能であるか等をしっかり記載します。

性能改善のための機能であれば、そのベンチマーク結果

このパッチをコミットするとこんなにPostgreSQLが早くなるぞ!をしっかり示します。

向社区发送电子邮件

请将之前创建的开发用邮件列表(pgsql-hackers)设为接收地址,并附上在第二步中创建的补丁,发送电子邮件。等待社区成员的反馈!

4. 如何注册Commit Fest

您可以将提案的补丁注册到Commit Fest中。请参考Commit Fest的说明。通过将补丁注册到Commit Fest,您可以管理补丁的状态,并避免其在没有被任何人审核的情况下被埋没。不仅可以注册新功能补丁,还可以注册修复错误的补丁,因此建议将您提交给PostgreSQL社区的补丁全部注册到Commit Fest中。

另外,由于主分支(master)的HEAD会经常变动,所以提交的补丁可能会不再适用于最新的HEAD。当您将补丁提交到Commit Fest时,Commit Fest的CI会自动测试补丁是否适用于最新的HEAD,并执行回归测试。您可以通过PostgreSQL Patch Tester来查看情况,建议定期进行确认。

在PostgreSQL官方网站上创建一个账户。

在提交修补程序到 Commit Fest 时,需要一个帐号来进行注册,您可以从这里进行注册。只需输入用户名和电子邮件地址即可立即注册。

4-1 访问 Commitfests App

目前正在举办的Commit Fest活动可点击此处。

commitfestPNG.PNG

注册4-2补丁

    1. 点击页面顶部的「新しいパッチ」按钮

 

    1. 填写「描述」、「主题」、「指定线程msgid」

「描述」可以使用在3-2向社区发送的邮件的标题等内容。
「主题」从提供的分类中选择。这次选择「其他」类别。
「指定线程msgid」选择附带了补丁的邮件。点击「查找线程」按钮,可通过邮件标题搜索邮件,找到后点击「附加线程」按钮。

点击「创建补丁」按钮
在「作者」栏中输入在4-1创建的账户名,并将自己注册为补丁的创建者。

5. 链接集

    • メーリングリストへの登録

https://www.postgresql.org/community/lists/subscribe/

公式リポジトリ

git://git.postgresql.org/git/postgresql.git
(Web版) https://git.postgresql.org/gitweb/

Commit Fest

https://commitfest.postgresql.org/open

PostgreSQL Patch Tester

http://commitfest.cputube.org/

PostgreSQLコミュニティでの活動関連のスライド、

PostgreSQL開発の基本動作まとめ(Qiita)
PostgreSQLコミュニティに飛び込もう(SlideShare)

PostgreSQL 11的开发刚刚开始。借此机会,不妨跳入PostgreSQL社区一试!如有任何疑问,请联系@sawada_masahiko。

广告
将在 10 秒后关闭
bannerAds