Это история, которую я рассказал нескольким людям, но вы слышите впервые.

В 2012 году был конкурс под названием GitHub Game Off, участники которого создавали игры с геймплеем на основе git. Я решил создать клон Missile Command, в котором вы отбрасываете плохие запросы на вытягивание и пропускаете объединенные запросы на основе заголовка, описания и информации о пользователе. Я получил запросы на вытягивание из Bootstrap, Rails и других крупных проектов. Даже не просматривая код, вы начинаете распознавать неверные запросы на вытягивание с первого взгляда. "Попробуй!"

Я хотел один суперсложный уровень и подумал, что было бы забавно использовать репозиторий Fortran. Такие вещи есть на GitHub - убедитесь сами. В то время у OpenCMISS было много участников и пул-реквестов, поэтому я загрузил данные и начал играть. То, что я увидел, было невероятным:

pull-запросы Fortran принимаются почти всегда.

Взгляните на закрытые пулреквесты для OpenBLAS и OpenCMISS. С течением времени частота отказов составляет примерно один на страницу (4%). И запросы на вытягивание исходят не от одного человека или участников репо… в OpenBLAS более 50 участников. Это сообщество, в котором десятки программистов соглашаются на код.

Если присмотреться, есть признаки того, как Fortran-land выполняет хорошие запросы на вытягивание:

Эти примеры типичны для многих проблем и запросов на вытягивание в репозиториях Fortran от внешних участников. Это совершенно не похоже на мой опыт игры в Missile Command против Bootstrap, который получает множество чрезмерных «исправлений» и быстро отклоняемых предложений. Может случиться так, что все программисты на Фортране знают, что делают - никто случайно не напихает какой-нибудь код на Фортране. Это может быть о культуре научных программистов по сравнению с веб-разработчиками вроде меня. Но в конце дня я испытал некоторый трепет, зная, что есть незнакомцы, которые проведут вас через ваши ошибки в Фортране. Вот что я узнал:

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

Между тем: GitHub провел больше игр в 2013 и 2015 годах. Так держать!