Недавно я пытался начать сотрудничество с открытым исходным кодом в GitHub и столкнулся с ситуацией, для которой мне любопытно, какой предпочтительный способ продолжить.
Около месяца назад я нашел проект на GitHub для библиотеки, которую я уже использовал некоторое время и в которой я нашел (и исправил) несколько ошибок.
В качестве начального шага в совместной работе с GitHub я обнаружил репо, который, похоже, имел самый большой объем недавней активности, исправил одну ошибку, добавил модульные тесты, отправил в GitHub и сделал запрос на извлечение. В течение нескольких часов управляющий репо, который я раздобыл, принял PR и слил несколько других PR от других людей, которые тоже ждали.
Подстегнутый этим, я исправил еще три обнаруженные ошибки, каждая в отдельной ветке моего репо, и подал запрос на выдачу и получение каждой из них в отдельности.
Это было чуть более месяца назад, и запросы на извлечение с тех пор оставались нетронутыми. Пользователь, чье репо я развел, кажется, не очень активен: он сделал всего 7 вкладов на GitHub в прошлом году, и у этого репо не было никаких коммитов с того первого запроса на получение, который я сделал.
Итак, мой вопрос:
Как действовать в этой ситуации? В идеале я бы хотел избежать фрагментации библиотеки, отключив и сделав целую кучу изменений в моем собственном репо, которые не объединены с родительским репо. Тем не менее, я хотел бы продолжить исправление ошибок и добавление функций, но если я объединю все в свою основную ветку и внесу все новые исправления в эту ветку, то, если сопровождающий репо, который я разветвил, вернется, я выиграю невозможно разделить все изменения на отдельные запросы на извлечение для каждой функции / исправления ошибки (я читал, что запросы на извлечение обычно должны составлять один запрос на извлечение для каждой функции или исправления ошибки).
Должен ли я оставить одну ветку, которая идет в ногу с исходным репо, основать все мои новые ветви на этой, а затем оставить все коммиты объединенными в моей основной ветке? Кажется, что это оставило бы у меня целую тонну ветвей и все более обременительную задачу каждый раз, когда мне нужно объединить новые изменения в мою основную ветку.
Каков типичный подход к такой ситуации? Кажется довольно распространенным явлением, что проект просто заброшен, а первоначальные участники отсутствуют, чтобы рассмотреть новые запросы на извлечение. Это ситуация, когда кто-то должен просто взять руль и бежать с ним? Кажется, что это создаст фрагментацию, если первоначальные участники когда-нибудь вернутся и захотят снова поработать над проектом.