Разработка#

Angie — проект с открытым исходным кодом, поучаствовать в котором могут все.

Исходный код#

Клонировать исходный код Angie OSS можно из наших открытых репозиториев: Mercurial, Git.

Стиль кода#

Вносимые изменения должны сочетаться с остальным кодом Angie; хорошей отправной точкой будет руководство для nginx. При этом учитывайте, что у нас есть заметные отличия, особенно в коде API.

Совет

При сомнениях посмотрите на окружающий код и следуйте его примеру либо запустите grep по базе кода в поисках вдохновения.

Коммит-сообщения#

Исторически коммит-лог ведется на английском языке.

Сообщение начинается с однострочной сводки о проделанной работе. Она может иметь префикс, уже использованный в коммит-логе для этой части кода. Сводка имеет длину до 67 символов включительно; за ней может следовать пустая строка, после которой идут подробности.

В хорошем сообщении указаны причины изменения, что было сделано, и каково положение дел сейчас:

API: bad things removed, good things added.

As explained elsewhere[1], the original API was bad because stuff;
this change was introduced to improve that aspect locally.

Levels of goodness have been implemented to mitigate the badness;
this is now the preferred way to work.  Also, the badness is gone.

[1] https://example.com

Детали, которые могли остаться незамеченными:

  • Резюме кончается точкой и начинается с прописной (большой) буквы.

  • Если использован префикс, то за ним следует строчная (маленькая) буква.

  • Предложения в одной строке разделяются двойным пробелом.

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

  • Проверьте, что ваши изменения работают на всех целевых платформах.

  • Запустите тесты на всех платформах, чтобы устранить возможность регрессии:

    $ cd tests
    $ prove .
    

    Подробности см. в файле tests/README.

  • Убедитесь, что вас устраивают юридические условия.

Куда отправлять патчи#

Сейчас мы не можем напрямую принимать коммиты в свои репозитории, поэтому создайте PR-запрос на нашем зеркале на GitHub.

С вопросами и предложениями обращайтесь к разработчикам через GitHub Issues.