私は非常に大規模な研究主導型のオープンソースプロジェクトに取り組んでおり、他の多くの定期的な貢献者もいます。プロジェクトは現在非常に大きいため、コンソーシアム(2人の常勤従業員と少数のメンバーで構成される)がプロジェクトの維持、継続的統合(CI)などを担当しています。外部の統合のための時間がありません。しかし貢献。
このプロジェクトは、「コア」フレームワーク、約50万行程度のコード行、コンソーシアムが管理する「プラグイン」の束、およびいくつかの外部プラグインで構成されています。気づいてさえいません。
現在、私たちのCIはコアとメンテナンスされたプラグインを構築しています。
私たちが直面している大きな問題の1つは、ほとんどの貢献者(および特に臨時の貢献者)がメンテナンスされたプラグインの90%を構築していないことです。 GitHubでプルリクエストを行う前に、コードがマシンでコンパイルされることを確認しました。
コードは機能し、満足し、CIはビルドを終了し、問題が始まります。コンソーシアムが管理しているプラグインでコンパイルが失敗しました。コントリビューターは自分のマシンではビルドしませんでした。
そのプラグインは、たとえばCUDAなどのサードパーティライブラリに依存している可能性があり、ユーザーは壊れたプラグインをコンパイルしたくない、ハードウェア上の理由でコンパイルできない、または単にできない。
そのため、PRはマージされないPRの辺りにとどまるか、寄稿者が壊れたプラグインのソースで名前を変更した変数を把握し、コードを変更し、ブランチをプッシュし、 CIがコンパイルを終了し、通常はエラーが増え、CIが満足するまでプロセスを繰り返します-または、コンソーシアムで既にオーバーブッキングされている2人のパーマネントのうちの1人が手を差し伸べ、マシンのPRを修正しようとします。
これらのオプションはいずれも実行可能ではありませんが、どのように異なる方法を実行するのかわかりません。プロジェクトの同様の状況に直面したことがありますか?もしそうなら、この問題をどのように処理しましたか?ここに表示されていない解決策はありますか?