Я працюю над дуже великим проектом з відкритим кодом, який веде дослідження, з низкою інших постійних учасників. Оскільки проект зараз досить великий, консорціум (який складається з двох штатних працівників та кількох членів) відповідає за підтримку проекту, постійну інтеграцію (CI) тощо. Вони просто не мають часу на інтеграцію зовнішніх внески, хоча.
Проект складається з "основних" рамок, приблизно з півмільйона або близько рядків коду, купою "плагінів", які підтримує консорціум, та декількох зовнішніх плагінів, більшість з яких ми є " Т навіть не знаю про це.
В даний час наш CI будує ядро та підтримувані плагіни.
Одне з найбільших проблем, з яким ми стикаємося, полягає в тому, що більшість учасників (і особливо випадкових) не будують 90% підтримуваних плагінів, тому, коли вони пропонують рефакторинг змін в ядрі (що в ці дні відбувається досить регулярно), Вони перевірили, що код збирається на їх машині, перш ніж робити запит на тягнення на GitHub.
Код працює, вони щасливі, і тоді CI закінчує будівництво, і проблеми починаються: компіляція не вдалася в плагін, який підтримується консорціумом, що дописувач не створив свою машину.
Цей плагін може залежати від сторонніх бібліотек, таких як CUDA, наприклад, і користувач не хоче, не знає, або просто не може з апаратних причин скомпілювати зламаний плагін.
Тож тоді - або PR залишається ad aeternam в кінцівці ніколи не підлягають злиття PR- сайтів - Або дописувач клацає перейменовану змінну у джерелі зламаного плагіна, змінює код, натискає на свою гілку, чекає CI, щоб закінчити компіляцію, зазвичай отримує більше помилок і повторює процес, поки CI не буде задоволений - Або один з двох уже перезаписаних постійних членів консорціуму подає руку і намагається виправити PR на своїй машині.
Жоден із цих варіантів не є життєздатним, але ми просто не знаємо, як це зробити інакше. Ви коли-небудь стикалися з подібною ситуацією ваших проектів? І якщо так, то як ви впоралися з цією проблемою? Чи є рішення, якого я тут не бачу?