RU/Coding guidelines
Вступление
Итак, вы решили посодействовать нашему проекту. Отлично! Но перед тем, как мы станем принимать ваш код, вам следует знать кое-что о том, как мы работаем. В основном, это указания и правила по структуре кода и по тому, как он может быть передан без обиды кого-либо из других содеятелей.
Репозиторий кода
Структура
Наш репозиторий кода (SVN) структуризирован на определенное количество различных секций, которые преследуют разные цели:
- trunk: раздел текущей разработки, "багажник" (новейшее, но экспериментальное)
- branches: ответвления с новаторскими исследованиями, радикальными идеями и другим в процессе разработки, слияние которых с trunk предполгается позже; также включает в себя воплощение и запланированных целей (но которые идут отдельно от trunk из-за соображений стабильности)
- vendor: немодифицированный код и библиотеки третьих лиц (опционально связанные с соответствующими SVN-репозиториями третьих лиц через svn:externals)
Получение и утеря доступа к возможности публикации
Доступ к публикации кода дается после предоставления вами патчей, когда кодер подтвердил свою компетентность. Суть патчей не важна, мы наиболее заинтересованы в том, что по получении доступа к публикации вы будете способны поддерживать высокое качество своего кода и оставаться сплоченными с другими содеятелями проекта.
Патчи можно предоставить в секции Source Patches Mantis'а. Обычно, доступ к публикации выдается после 2-3 патчей, но этот показатель не является фиксированым и зависит от размаха проделанной работы.
После получения доступа к возможности публикации, если качество кода вкладчика продолжительное время остается на низком уровне или пользователь не придерживается правил, его доступ к публикации будет ограничен и стороннее одобрение снова потребуется для публикации патчей.
Особые обстоятельства
Если вы заинтересованы в работе над внедрением обширного функционала, мы с радостью предоставим специальный доступ к публикации на основе вашей "ветки".
Это означает, что для вашего обширного функционала будет выделена отдельная ветвь, чтоб вы могли работать только над ней, даже если вы не предоставили никаких патчей. Образцами ветвей, существовавших ранее, являются Unicode и Voice, обе предоставляющие огромный по размаху функционал.
Конечно, вам понадобится доказать, что вы - компетентный кодер или уже имеете прогресс в разработке своего функционала. Вам также придется следовать всем указаниям к написанию кода при его публикации, так как со временем ваш код может затронуть и основную ветвь.
Пожалуйста, свяжитесь с нами по IRC, если вы заинтересованы в открытии ветви.
Публикация кода
Помните, что ваши публикации в первую очередь должны исправлять либо внедрять уже существующие задачи с нашего багтрекера. Roadmap особенно важен, так как он позволяет публикаторам отслеживать приоритетные задачи.
Пожалуйста, придерживайтесь следующего руководства для всех своих публикаций:
- Публикации должны быть тщательно протестированы, если вносятся в trunk. Публикации, которые 'надо доделать позже', при условии прямого влияния на состояние мода, будут откачены, за исключением особых обстоятельств.
- При написании нестабильного или экспериментального кода, для каждой функции должна быть открыта своя ветвь. Ветви не должны являться собственностью определенных пользователей. Это значит, что ветви должны создаваться именно для разработки новых функций, а не по личной прихоти игрока.
- Сообщения лога всегда должны четко обозначать суть внесенных изменений, чтоб не было даже малейшей необходимости смотреть на сам код. Если возможно, включите номер задачи из Mantis (Issue number) в сообщение лога и составьте сообщение соответствующим образом, напр. Fixed #1234: description and notes here. При использовании отдельной ветви, ее имя должно быть включено в сообщение лога, напр. [customanimations] Added IFP support.
Рейтинги и комментарии
Рейтинги и коментарии открыты для всех, чтобы можно было обозревать код и высказывать свое мнение об изменениях. Пожалуйста, не ребячьтесь: ведите себя цивилизованно в комментариях. По возможности, разработчикам следует обозревать публикации своих содеятелей и поддерживать обратную связь настолько, насколько это возможно.
Что программировать
В целом, разработчикам следует придерживаться Roadmap при написании кода. Это - список задач, которые должны быть разрешены ко следующему релизу. Конечно же, если вы заинтересованы в чем-то другом, не стесняйтесь экспериментировать или публиковать свои труды.
Стиль
- Мы используем 4 пробела вместо табуляции.
- Придерживайтесь уже существующего стиля кода в целом.