Внесение изменений

Разделы

Получение исходного кода
Оформление изменений
Перед отправкой
Отправка изменений
Лицензия

Получение исходного кода

Для хранения исходного кода используется Mercurial. Репозиторий можно клонировать следующей командой:

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

Оформление изменений

Изменения должны быть оформлены согласно принятому в nginx стилю. Оформление не должно зависеть от таких возможностей редактора как подсветка синтаксиса или автоматический перенос строк. Ниже приведены несколько основных правил:

  • максимальная ширина текста — 80 символов
  • отступ — 4 пробела
  • табуляция не используется
  • логические блоки кода в файле разделяются двумя пустыми строками

Изучите, как оформлен исходный код nginx, и следуйте этому стилю в своём коде. Изменения скорее будут приняты, если их стиль соответствует окружающему коду.

Зафиксируйте изменения, чтобы создать набор изменений в Mercurial. Пожалуйста, убедитесь, что адрес электронной почты и настоящее имя автора изменения указаны правильно.

Сообщение фиксации должно содержать однострочное резюме и подробное описание после пустой строки. Желательно, чтобы первая строка была не длиннее 67 символов. Итоговый набор изменений в виде патча может быть получен с помощью команды hg export:

# HG changeset patch
# User Filipe Da Silva <username@example.com>
# 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;

Перед отправкой

Несколько моментов, на которые следует обратить внимание перед отправкой изменения:

  • Предлагаемые изменения должны корректно работать на всех поддерживаемых платформах.
  • Постарайтесь разъяснить, почему предлагаемое изменение нужно, и, если возможно, опишите вариант использования.

Отправка изменений

Предлагаемые изменения следует отправить в список рассылки для разработчиков nginx. Предпочитаемый и удобный метод отправки наборов изменений — при помощи расширения patchbomb.

Лицензия

Отправка изменений подразумевает предоставление проекту права на их использование под соответствующей лицензией.

    Поддержать сайт на родительском проекте КГБ