Небольшая статистика по Pull Request-ам в UnrealEngine

Достаточно длительное время я работал с UnrealEngine.

Основным моим занятием было решение проблем связанных непосредственно с движком, которых там, как и в любом крупном продукте хватает.

Для работы мы использовали изрядно подлатанную локальную сборку UnrealEngine. При этом по возможности отправляли изменения в исходный репозиторий к EpicGames в качестве Pull Requests-ов.

Недавно я решил почесать своё чсв удовлетворить свое любопытство и собрать статистику по контрибьюторам.

Методика сбора данных

Для сбора статистики был написан небольшой скрипт на Python. Любой, кто имеет доступ к репозиторию UnrealEngine, может запустить его самостоятельно.

Для статистики были взяты первые 2600 PR-ов (на момент написания статьи всего их было 2604).

Данный скрипт собирает все PR и берет из них:

  • id - номер;
  • created_by - дата создания;
  • user - пользователь github;
  • avatar - аватарка пользователя;
  • commits - кол-во коммитов в PR;
  • title - текстовый заголовок PR.

Результирующий статус PR-а не берется, так как из-за того, что исходный репозиторий живет в Perforce, выяснить, был ли данный PR принят или нет средствами GitHub-а нельзя.

Количество коммитов было взято для поиска “мусорных” PR, которые сделаны не в ту ветку. Обычно такие PR содержат тысячи коммитов и какой-либо малосодержательный заголовок. Они оперативно закрываются и живут обычно пару часов.

Качество коммитов в расчет так же не бралось. То есть исправление тривиальной опечатки и исправление ошибки работы с памятью в данной статистике имеет одинаковый вес.

TOP 10 контрибьюторов

Кол-во мусорных Pull Request-ов (>= 100 коммитов) составило 331 штуку (12.73%).

Без учета мусорных коммитов TOP 10 контрибьюторов по первым 2600 Pull Request-ам выглядит следующим образом:

Пользователь Количество коммитов
bozaro 149 (6.57%)
EverNewJoy 105 (4.63%)
slonopotamus 86 (3.79%)
yaakuro 42 (1.85%)
derekvanvliet 39 (1.72%)
Pierdek 31 (1.37%)
3dluvr 30 (1.32%)
abergmeier 28 (1.23%)
SRombauts 27 (1.19%)
projectgheist 23 (1.01%)
comments powered by Disqus