Предложения по изменению процесса разработки проекта Illumos

Лидер проекта Illumos, в рамках которого создано полностью свободное и развиваемое независимым сообществом ответвление от кодовой базы OpenSolaris, Гарретт Д'Аморе (Garrett D'Amore) выдвинул ряд предложений по совершенствованию процесса приема изменений в проект Illumos. До настоящего момента в Illumos использовалась модель приема изменений, применяемая в Sun и Oracle при разработке Solaris. Эта модель основана на возможности всех разработчиков делать прямые коммиты (push) в репозиторий после рецензирования кода (code review). Эта модель хорошо работает для маленьких команд или там, где всем разработчикам можно доверять, но она нетипична для большинства FOSS-проектов, и даже в OpenSolaris эта модель не использовалась при приеме изменений извне.

Для того, чтобы дать возможность участвовать в проекте тем разработчикам, которые не столь давно принимают участие в проекте и еще не заслужили высокий уровень доверия, а также для того, чтобы сделать процесс приема изменений сходным с другими FOSS-проектами, планируется перейти от модели "developer push" к "advocate pull". "Адвокат" - это своеобразный "привратник", аналог майнтейнера подсистемы ядра Linux. Вместо разработчиков, делающих прямой коммит в mercurial-дерево, "адвокаты" будут брать патчи от контрибьюторов (либо через hg export, либо через файл с патчем), будут проверять, что содержимое патча было пересмотрено и будут отвечать за интеграцию патча в главный репозиторий. В процессе приема патча "адвокат" также будет проверять чтобы контрибьютор патча был упомянут в истории изменений системы контроля исходных кодов. Таким образом, как и раньше, контрибьюторы будут упоминаться в связи со своей работой. Другие части процесса приема изменений - пересмотр кода, тестирование и проверка юридических прав на код - будут сохранены.

Главное следствие для разработчиков будет заключаться в том, что они смогут отсылать изменения в форме обычных патчей, что освобождает их от необходимости иметь дело напрямую с той или иной системой контроля исходных кодов. Другое следствие заключается в том, что если случается конфликт при слиянии изменений, то "адвокат" может отклонить изменение и попросить контрибьютора разрешить конфликт и заново отослать патч. Таким образом, процесс приема изменений в Illumos становится гораздо более схожим с процессами, принятыми в больших проектах с открытыми исходными кодами, такими как Linux.

Стоит также упомянуть о том, что на сайте github поддерживается клон репозитория illumos. Таким образом, для разработки Illumos можно использовать Git. Mercurial-копия репозитория также доступна на bitbucket. Сейчас "адвокаты" используют mercurial-репозиторий в качестве главного. Рассматривается возможность его конвертации в git, однако, контрибьюторы могут использовать любую из этих двух систем контроля исходных кодов, поскольку освобождены от необходимости интеграции их кода в главный репозиторий.

На настоящий момент список "адвокатов" таков:

  • Гарретт Д'Аморе ( Garrett D'Amore )
  • Альберт Ли ( Albert Lee )
  • Рич Лау ( Rich Lowe )
  • Гордон Росс ( Gordon Ross )

©  OpenNet