Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Технология коллективной работы над опенсорс (число прочтений - 3782 )
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Технология коллективной работы над опенсорс
27. Февраля 2008 :: 17:37
Печать  
Я тут давеча собирался поделиться наблюдением за тем, как реализован процесс коллективной разработки над Багзиллой. http://www.bugzilla.org если что. Наконец-то оно созрело.

Есть кучка проверенных граждан, которые могут сами коммитить код в репозиторий
А если приходит код откуда-то снаружи - то он должен быть оформлен в виде патча к какому-то багу.
Причем неважно что именно приходит, абсолютно все исправления, вплоть до исправления синтаксической ошибки в документации - должны быть оформлены по этой схеме: баг - и к нему исправляющий патч

Проверенный товарищ этот патч смотрит и либо его принимает, либо нет
Если принимает, то патч коммитится ответственным товарищем в репозиторий
Если нет - то ответственный товарищ дает свои рекомендации к написателю патча, излагает их в комментариях к багу.
Дальше автор патча, или кто-то еще выпускает новую версию патча, и история повторяется

Если новая версия патча не публикуется, то о баге все забывают, пока или кто-то со стороны не пришлет патч, который устроит разработчика, или разработчик сам не напишет патч

Причем ребята реально дотошные.
Написал я патч, в котором вхождение в условие проверяется двумя грепами
Мне на это указали, подсказали как написать это одним грепом
Написал я патч к документации, мне подсказали, как правильно выразить мысль на английском (убрать два слова)
Причем сам разработчик в этот момент ничего не делает, эти два слова сам из патча не убирает, а ждет, пока я пришлю новую версию патча, который будет отличаться от предыдущего этими двумя словами.

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

И еще. Вот это четкое присовокупление патча к багу - это тоже позитив.
Потому что это заставляет автора патча самому смотреть в свои изменения. А то бывают случаи, когда вместе с реализацией нужной педальки, в нагрузку приезжает спорный рефакторинг, пара новых недоделанных педалек, и пара личных заморочек автора патча с соответствующими добрыми комментариями.

А это значит, что разработчику надо разбираться самому, что относится к задаче, а что нет. И времени это может занять не меньше, чем самостоятельная реализация идеи.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Технология коллективной работы над опенсорс
Ответ #1 - 27. Февраля 2008 :: 18:43
Печать  
Кстати в багзилле по вышеупомянутой схеме (баг-патч-коммит) действуют все, даже сами разработчики
Они сами себе пишут баги (техзадание), добавляют туда патчи, и их коммитят.
Одновременно они просят соседа-разработчика, чтобы тот сделал code-revision.
И сосед вполне может отклонить патч и цикл повторяется.
Иногда по 7-8 итераций проходит, прежде чем дойдет до коммита.
Этакая парная работа получается. Получается сильно неспешно, но зато наверное качественно. В репозиторий уж точно попадает гораздо меньше сырого и некрасивого кода.
  
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Технология коллективной работы над опенсорс
Ответ #2 - 27. Февраля 2008 :: 18:45
Печать  
а как ты эти наблюдения проводил? или переписывался с разработчиками?
  
Наверх
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Технология коллективной работы над опенсорс
Ответ #3 - 27. Февраля 2008 :: 18:47
Печать  
trdm писал(а) 27. Февраля 2008 :: 18:45:
а как ты эти наблюдения проводил?

Методом проб и ошибок Улыбка
  
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Технология коллективной работы над опенсорс
Ответ #4 - 27. Февраля 2008 :: 18:52
Печать  
ID ошибки: 381912.
сколькож их всего  О_о...
  
Наверх
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Технология коллективной работы над опенсорс
Ответ #5 - 27. Февраля 2008 :: 19:00
Печать  
Там не только багзилловские, там сквозная нумерация по всем мозилловским продуктам: от файрфокса до "Other tools"
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Технология коллективной работы над опенсорс
Ответ #6 - 27. Февраля 2008 :: 19:06
Печать  
Да, интересный вариант работы с полем "Assigned To".

Может назначаться автор патча, не входящий в постоянную команду разработчиков.
Плюс у QA команды, как я понимаю, есть возможность для установки флагов "approval+", "approval3.0+".
  

De quelle planète es-tu?
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Технология коллективной работы над опенсорс
Ответ #7 - 27. Февраля 2008 :: 19:13
Печать  
kms писал(а) 27. Февраля 2008 :: 19:06:
Плюс у QA команды, как я понимаю, есть возможность для установки флагов "approval+", "approval3.0+".

Флаги там можно создавать произвольные. Более того, состав флагов можно изменять с течением времени (ну новые версии выходят, это надо отражать)
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Технология коллективной работы над опенсорс
Ответ #8 - 27. Февраля 2008 :: 19:19
Печать  
А каким образом грамотно использовать голосование?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Технология коллективной работы над опенсорс
Ответ #9 - 27. Февраля 2008 :: 19:26
Печать  
У голосования две функции.
1. С помощью голосования можно автоматически переводить баг из разряда Unconfirmed в New. Например можно делать это после второго голоса. В противном случае подтверждать баг может только ответственный товарищ.
2. С помощью голосования можно показывать разработчикам, какому количеству пользователей интересно решение той или иной задачи. Чтобы разработчики исходили из этого при определении приоритетов в своей работе.
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать