Contributing Changes

Getting Sources

Mercurial用于存储源代码。可以使用以下命令克隆repository

hg clone http://hg.nginx.org/nginx

Formatting Changes

更改应根据 nginx 使用的code style进行格式化。有时,没有明确的规则。在这种情况下,请检查现有的 nginx 源如何格式化并模仿这种样式。如果样式与周围的代码相对应,则更可能接受更改。

提交更改以创建 Mercurial changeset。请确保更改作者的指定e-mail地址和真实姓名正确。

提交消息应该有一个单行的提要,后跟一个空行后的详细说明。希望第一行不超过 67 个符号。可以使用hg export命令获得作为补丁的结果变更集:

# HG changeset patch
# User Filipe Da Silva <[email protected]>
# Date 1368089668 -7200
#      Thu May 09 10:54:28 2013 +0200
# Node ID 2220de0521ca2c0b664a8ea1e201ce1cb90fd7a2
# Parent  822b82191940ef309cd1e6502f94d50d811252a1
Mail: removed surplus ngx_close_connection() call.

It is already called for a peer connection a few lines above.

diff -r 822b82191940 -r 2220de0521ca src/mail/ngx_mail_auth_http_module.c
--- a/src/mail/ngx_mail_auth_http_module.c      Wed May 15 15:04:49 2013 +0400
+++ b/src/mail/ngx_mail_auth_http_module.c      Thu May 09 10:54:28 2013 +0200
@@ -699,7 +699,6 @@ ngx_mail_auth_http_process_headers(ngx_m

                     p = ngx_pnalloc(s->connection->pool, ctx->err.len);
                     if (p == NULL) {
-                        ngx_close_connection(ctx->peer.connection);
                         ngx_destroy_pool(ctx->pool);
                         ngx_mail_session_internal_server_error(s);
                         return;

Before Submitting

提交更改之前,需要考虑以下几点:

  • 建议的更改应在supported platforms的广泛范围内正常工作。

  • 尝试弄清楚为什么需要建议的更改,并在可能的情况下提供用例。

  • 通过测试套件传递您的更改是确保它们不会引起回归的好方法。可以使用以下命令克隆带有测试的repository

hg clone http://hg.nginx.org/nginx-tests

Submitting Changes

建议的更改应发送到nginx development邮件列表。提交变更集的首选和便捷方法是使用patchbombextensions。

License

提交更改意味着向项目授予在适当的license下使用它的权限。