Як я повинен сприяти (в основному) покинутому проекту GitHub?


43

Нещодавно я намагався вступити в співпрацю з відкритим кодом у GitHub і зіткнувся з ситуацією, для якої мені цікаво, який є кращим способом продовжувати.

Близько місяця тому я знайшов проект на GitHub для бібліотеки, який я вже деякий час використовував і в якому я знайшов (і виправив) кілька помилок.

Як початковий набір у співпраці GitHub, я знайшов репо, яке, здавалося, має найбільший обсяг недавньої активності, виправив одну помилку, додав тестові одиниці, підніс до GitHub і зробив запит на тягу. Протягом декількох годин супровідник репо, який я роздвоював, прийняв піар і об'єднався в декілька інших піарників від інших людей, які також чекали.

Наштовхнувшись на це, я виправив ще три помилки, які знайшов, кожну в окремій гілці власного репо, і подав запит на випуск та витяг кожного з них окремо.

Це було трохи більше місяця тому, і прохання про тягнення сиділи там, незаймані, з тих пір. Користувач, до якого я відправив репо, виглядає не дуже активним, за останній рік зробив лише 7 внесків на GitHub, і з цього репортажу не було жодних зобов’язань з моменту першого запиту, який я зробив.

Тож моє запитання:

Як діяти в цій ситуації? В ідеалі я хотів би уникати створення фрагментації бібліотеки, вимикаючи і вносячи цілу купу змін у власне репо, які не об'єднуються у батьківське репо. Тим не менш, я хотів би продовжувати робити виправлення помилок і додавати функції, але якщо я об'єднаю все у свою головну гілку та засную всі нові виправлення цієї гілки, то якщо технічний репо, який я розщедрив, коли-небудь повернеться, я переміг я не зможу розділити всі зміни на окремі запити на витяг для кожної функції / виправлення помилок (я читав, що запити на витягу зазвичай мають бути одним запитом на витяг на функцію або виправлення помилки).

Чи слід тримати одну гілку, яка знаходиться в кроці з оригінальним репо, засновувати всі мої нові гілки від цієї, а потім тримати всі об'єднані комісії в моїй головній гілці? Схоже, що це дозволить мені залишити цілу тону гілок і все більш обтяжливим завданням кожного разу, коли мені потрібно об'єднати нові зміни у свою головну галузь.

Який типовий спосіб наближення такої ситуації? Здається, досить поширеним є той факт, що проект просто відмовиться від початкових учасників, які не збираються переглядати нові запити на виклик. Це ситуація, коли хтось повинен просто взятися за кермо і бігти з ним? Схоже, це створило б фрагментацію, якщо оригінали учасників коли-небудь повернуться і захочуть знову працювати над проектом.


4
Якщо ви вважаєте це питання цікавим, вам також може бути цікавою пропозиція про новий сайт stackexchange з відкритим кодом .
Філіпп

Хочете поділитися тим, що вийшло з розмови електронною поштою лише для нас, цікавих глядачів? :)
winkbrace

@winkbrace Поки що нічого. Я не отримав відповіді, але надіслав лише два дні тому. Я дам вам усім знати, якщо щось розвинеться.
JLRishe

Відповіді:


39

У мене ще не було такої ситуації, але я б спробував:

Спробуйте зв’язатися з власником

Можливо, вони справді втратили інтерес, але готові передати проект комусь іншому, зокрема комусь, хто вже проявив уважну прихильність.

Але, можливо, вони просто зайняті чимось іншим (робота, відпустка, хвороби, інші проекти) і не встигли впоратися з вашим піаром, але планують це зробити пізніше.

А може, вони дійсно припинили роботу над проектом назавжди з будь-якої причини.

Не запитуючи, ви цього не дізнаєтесь.

Зв’яжіться з громадою

Звичайно, є й інші люди, які внесли свій внесок у проект чи принаймні використали його. Перевірте, хто підняв проект (навіть якщо вони не внесли жодних змін, вони все ще можуть бути зацікавлені у тому, щоб цей проект процвітав); перевірити, хто повідомив про проблеми чи коментував їх. Можливо, також існує спільнота поза GitHub, наприклад, список розсилки, форум або члени StackOverflow.

Я, зрештою, ти дійсно переймаєш проект, можливо, ти захочеш їх підтримки. І їм потрібно знати, де знаходиться новий головний сховище.

Продовжуйте робити хороші запити на тягнення

Це показує як власникові, так і громаді, що ви серйозно ставитесь до цього, і давайте їм оцінювати ваш внесок.


1
Дякую. Після трохи більшого пошуку, схоже, що ця порада схожа на вказівки, доступні для подібної ситуації з пакетами npm . Я щойно надіслав електронною поштою власнику і побачить, на що він / він відповідає.
JLRishe

Дуже важко знайти когось із можливістю схвалювати PR для конкретного репо, коли "власником" репо є насправді організація з десятками користувачів.
ковбасник

15

Якщо власник оригінального репо не знайдеться ніде і відсутній протягом значної частини, я б опублікував власне сховище як іншу версію проекту.

З цим ви берете на себе керівництво розвитком бібліотеки і не залишаєте її вмирати в кутку, не оновлюючись ніколи більше. Якщо початковий власник коли-небудь закриє репо, світ все ще може використовувати роздвоєну версію.


1
Так, просто forkв проекті і в README.md, залиште посилання та "подяку" первісному власнику.
Джаред Берроуз

Дякую за вашу відповідь (+1). Ви обов'язково заробляєте кілька хороших моментів. Я в кінцевому підсумку можу вдатися до цього, але поки я дотримуюся порад ойфа і побачу, чи зможу я зв’язатися з власником репо по електронній пошті.
JLRishe

Звичайно, просто не дозволяйте сховища потрапити в небуття. Дуже багато хорошого коду повинно бути сховано десь глибоко в Github, оскільки оригінальних власників більше немає.
cllamach

Я в подібній ситуації і, можливо, потрібно буде скористатися цим варіантом - початковий власник проекту не відповів на неодноразові спроби контакту. Чи коштує зберегти назву проекту та продовжувати збільшувати номер версії від останньої офіційної версії? Я переживаю, що якщо я зміню ім'я, існуючим користувачам проекту буде важче знайти.
перицинтіон

1
Я можу бути і в цій ситуації. Але оригінальний проект уже зареєстрований у Bower. Якщо зберегти ім'я, це означає, що потрібно змусити оригінального автора скасувати його для вас, або зв’язатися з обслуговуючим персоналом компанії Bower і попросити втрутитися. Мені не дуже важливо це робити. Перейменування може бути найкращим варіантом.
Лоуренс І. Сіден

0

Оскільки більшість малих та середніх розмірів проектів з безкоштовним та відкритим кодом на сьогодні розміщуються на github, gitlab або подібних, деякі процеси можна буде автоматизувати , використовуючи їх веб-API.

Якщо припустити, що оригінал репо працює https://github.com/someUserX/projectY/, процес може виглядати так:

  1. ("посібник") Зверніться до оригінального автора різними способами, принаймні через електронну пошту виконавця git та проблему (якщо вона включена).

    У разі отримання дозволу чи відповіді протягом декількох тижнів, можна запустити скрипт, який використовує хостинг веб-API для виконання таких кроків:

  2. створити нову організацію (GitHub), яку називають projectY, і в ній розщелить оригінал repo ->https://github.com/projectY/projectY/

  3. додайте оригінального автора та всіх авторів запитів на виклик (вже об’єднані та відкриті) як адміністраторів організації
  4. заново створіть усі (відкриті) запити на потяг із початкового репо в новому вилку
  5. те ж саме зробіть із (відкритими) питаннями
  6. повідомляє всіх адміністраторів нового репо
  7. створити останній запит на витяг до старого репо, додавши повідомлення про залишене / "заархівоване" і посилання на нове репо на вершині README

Основне питання, яке я бачу при такому підході, полягає в тому, що деякі "погані" учасники можуть отримати доступ адміністратора, але, як пояснює євангеліст з вільного програмного забезпечення Пітер Хінтшенс (наприклад, у цій бесіді) , погані вчинки можуть бути просто повернені та не створюють жодної нитки для проект, який живий і може допомогти поганому виконавцю з часом стати хорошим.
hoijui
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.