ฉันกำลังทำงานในโครงการโอเพนซอร์ซที่มุ่งเน้นการวิจัยขนาดใหญ่มากโดยมีผู้สนับสนุนรายอื่นเป็นจำนวนมาก เนื่องจากโครงการนี้ค่อนข้างใหญ่สมาคม (ประกอบด้วยพนักงานเต็มเวลาสองคนและสมาชิกไม่กี่คน) อยู่ในความดูแลของโครงการการรวมกลุ่มอย่างต่อเนื่อง (CI) ฯลฯ พวกเขาไม่มีเวลาสำหรับการรวมกลุ่มจากภายนอก ผลงานแม้ว่า
โครงการประกอบด้วยโครงร่าง "แกนกลาง" ซึ่งมีรหัสครึ่งหนึ่งของรหัสครึ่งหนึ่งกลุ่มของ "ปลั๊กอิน" ซึ่งได้รับการบำรุงรักษาโดยสมาคมและปลั๊กอินภายนอกหลายแห่งซึ่งส่วนใหญ่เราไม่ได้ทำ ไม่รู้ตัวด้วยซ้ำ
ปัจจุบัน CI ของเราสร้างหลักและปลั๊กอินบำรุงรักษา
หนึ่งในปัญหาใหญ่ที่เราเผชิญคือผู้ให้ข้อมูลส่วนใหญ่ (และโดยเฉพาะอย่างยิ่งในบางครั้ง) ไม่สร้าง 90% ของปลั๊กอินที่บำรุงรักษาดังนั้นเมื่อพวกเขาเสนอการเปลี่ยนแปลงโครงสร้างในแกนกลาง (ซึ่งสิ่งเหล่านี้เกิดขึ้นเป็นประจำ) พวกเขาตรวจสอบว่ารหัสรวบรวมในเครื่องของพวกเขาก่อนที่จะทำการร้องขอการดึงบน GitHub
รหัสทำงานได้พวกเขามีความสุขและจากนั้น CI ก็เสร็จสิ้นการสร้างและปัญหาเริ่มต้น: การรวบรวมล้มเหลวในปลั๊กอินที่ดูแลรักษาโดยกลุ่มซึ่งผู้มีส่วนร่วมไม่ได้สร้างบนเครื่องของเขา / เธอ
ปลั๊กอินนั้นอาจมีการพึ่งพาไลบรารีของบุคคลที่สามเช่นCUDAเป็นต้นและผู้ใช้ไม่ต้องการไม่ทราบวิธีการหรือไม่สามารถทำได้ด้วยเหตุผลด้านฮาร์ดแวร์รวบรวมปลั๊กอินที่ใช้งานไม่ได้
ดังนั้น - ทั้ง PR ยังคงโฆษณาอยู่ในบริเวณขอบของPRs ที่ไม่เคยถูกผสาน- หรือผู้มีส่วนร่วม greps ตัวแปรที่ถูกเปลี่ยนชื่อในแหล่งที่มาของปลั๊กอินที่เสียหาย, เปลี่ยนรหัส, กดรหัสบนสาขาของเขา / เธอรอ CI ที่จะทำการรวบรวมให้เสร็จสิ้นมักจะได้รับข้อผิดพลาดมากขึ้นและทำซ้ำกระบวนการจนกว่า CI จะมีความสุข - หรือหนึ่งในสองของผู้จองที่จองเกินจำนวนที่มีอยู่แล้วในกลุ่มให้มือและพยายามแก้ไข PR บนเครื่องของพวกเขา
ไม่มีตัวเลือกเหล่านั้นที่ทำงานได้ แต่เราไม่รู้วิธีการใช้งานที่แตกต่าง คุณเคยเผชิญกับสถานการณ์ที่คล้ายกันในโครงการของคุณหรือไม่? และถ้าเป็นเช่นนั้นคุณจัดการกับปัญหานี้อย่างไร มีวิธีแก้ปัญหาที่ฉันไม่เห็นที่นี่หรือไม่?