저는 다른 많은 정기적 인 기여자들과 함께 대규모의 연구 주도형 오픈 소스 프로젝트를 진행하고 있습니다. 현재 프로젝트 규모가 상당히 크기 때문에, 2 명의 정규직 직원과 소수의 구성원으로 구성된 컨소시엄이 프로젝트 유지 관리, 지속적인 통합 (CI) 등을 담당합니다. 외부 통합을위한 시간이 없습니다. 그래도 기여.
이 프로젝트는 "핵심"프레임 워크, 약 50 만 줄 정도의 코드 라인, 컨소시엄에서 유지 관리하는 "플러그인"및 여러 외부 플러그인으로 구성됩니다. 심지어는 알지 못한다.
현재 CI는 핵심 및 유지 관리 플러그인을 빌드합니다.
우리가 직면 한 가장 큰 문제 중 하나는 대부분의 기고자 (특히 비정기적인 것)가 유지 보수 된 플러그인의 90 %를 구축하지 않기 때문에 코어에서 리팩토링 변경을 제안 할 때 (요즘 꽤 정기적으로 발생 함), 그들은 GitHub에서 풀 요청을하기 전에 코드가 머신에서 컴파일되는지 확인했습니다.
코드가 작동하고 만족 스러우면 CI가 빌드를 완료하고 문제가 시작됩니다. 컨소시엄이 유지 관리하는 플러그인에서 컴파일이 실패하여 컨트 리뷰 터가 자신의 머신을 빌드하지 않았습니다.
해당 플러그인은 CUDA 와 같은 타사 라이브러리에 의존 할 수 있으며 사용자는 원하는 플러그인을 원하지 않거나, 하드웨어적인 이유로 간단하게 컴파일 할 수없는 방법을 모릅니다.
그럼 - 일 수-합병 결코-에-의 림보의 PR 체류 광고 aeternam 의 PR을 - 또는 기여자, 깨진 플러그인의 소스에서 이름이 바뀐 변수를 greps의 코드, 그 / 그녀의 분기에 밀어, 대기 변경 CI는 컴파일을 마치고 일반적으로 오류가 더 많이 발생하고 CI가 만족할 때까지 프로세스를 반복합니다. 또는 컨소시엄에서 이미 초과 예약 된 2 명의 지속 물 중 하나가 손을 잡고 머신에서 PR을 수정하려고합니다.
이러한 옵션 중 어느 것도 실행 가능하지는 않지만 다른 방법을 모릅니다. 프로젝트의 비슷한 상황에 직면 한 적이 있습니까? 그렇다면 어떻게이 문제를 처리 했습니까? 여기에 보이지 않는 해결책이 있습니까?