Нещодавно я намагався вступити в співпрацю з відкритим кодом у GitHub і зіткнувся з ситуацією, для якої мені цікаво, який є кращим способом продовжувати.
Близько місяця тому я знайшов проект на GitHub для бібліотеки, який я вже деякий час використовував і в якому я знайшов (і виправив) кілька помилок.
Як початковий набір у співпраці GitHub, я знайшов репо, яке, здавалося, має найбільший обсяг недавньої активності, виправив одну помилку, додав тестові одиниці, підніс до GitHub і зробив запит на тягу. Протягом декількох годин супровідник репо, який я роздвоював, прийняв піар і об'єднався в декілька інших піарників від інших людей, які також чекали.
Наштовхнувшись на це, я виправив ще три помилки, які знайшов, кожну в окремій гілці власного репо, і подав запит на випуск та витяг кожного з них окремо.
Це було трохи більше місяця тому, і прохання про тягнення сиділи там, незаймані, з тих пір. Користувач, до якого я відправив репо, виглядає не дуже активним, за останній рік зробив лише 7 внесків на GitHub, і з цього репортажу не було жодних зобов’язань з моменту першого запиту, який я зробив.
Тож моє запитання:
Як діяти в цій ситуації? В ідеалі я хотів би уникати створення фрагментації бібліотеки, вимикаючи і вносячи цілу купу змін у власне репо, які не об'єднуються у батьківське репо. Тим не менш, я хотів би продовжувати робити виправлення помилок і додавати функції, але якщо я об'єднаю все у свою головну гілку та засную всі нові виправлення цієї гілки, то якщо технічний репо, який я розщедрив, коли-небудь повернеться, я переміг я не зможу розділити всі зміни на окремі запити на витяг для кожної функції / виправлення помилок (я читав, що запити на витягу зазвичай мають бути одним запитом на витяг на функцію або виправлення помилки).
Чи слід тримати одну гілку, яка знаходиться в кроці з оригінальним репо, засновувати всі мої нові гілки від цієї, а потім тримати всі об'єднані комісії в моїй головній гілці? Схоже, що це дозволить мені залишити цілу тону гілок і все більш обтяжливим завданням кожного разу, коли мені потрібно об'єднати нові зміни у свою головну галузь.
Який типовий спосіб наближення такої ситуації? Здається, досить поширеним є той факт, що проект просто відмовиться від початкових учасників, які не збираються переглядати нові запити на виклик. Це ситуація, коли хтось повинен просто взятися за кермо і бігти з ним? Схоже, це створило б фрагментацію, якщо оригінали учасників коли-небудь повернуться і захочуть знову працювати над проектом.