Mozilla ได้ย้ายที่เก็บซอร์สโค้ดของ Firefox จาก Mercurial ไปยัง GitHub อย่างเป็นทางการ ซึ่งถือเป็นการเปลี่ยนแปลงครั้งสำคัญในโครงสร้างพื้นฐานการพัฒนาเบราว์เซอร์ การเปลี่ยนแปลงนี้เป็นจุดสุดยอดของกระบวนการที่เริ่มต้นในเดือนพฤศจิกายน 2023 เมื่อ Mozilla ประกาศแผนการย้ายจากระบบการทำงานที่ใช้ Mercurial มายาวนานไปสู่ Git
ตอนนี้สามารถพบโค้ดเบสของ Firefox ได้ที่ github.com/mozilla-firefox/firefox แต่สิ่งสำคัญที่ควรทราบคือการเปลี่ยนแปลงนี้ส่งผลกระทบต่อที่เก็บโค้ดเท่านั้น Mozilla จะยังคงใช้ Bugzilla สำหรับการติดตามปัญหา Phabricator สำหรับการตรวจสอบโค้ด และระบบ Taskcluster สำหรับการทำ continuous integration
เหตุใดจึงเปลี่ยนไปใช้ Git และ GitHub?
การตัดสินใจของ Mozilla ในการย้ายไปใช้ Git และ GitHub แก้ไขความท้าทายที่มีมายาวนานหลายประการ เป็นเวลาหลายปีที่ผู้มีส่วนร่วมต้องเผชิญกับความยุ่งยากเมื่อทำงานกับ Mercurial repository ของ Mozilla กระบวนการโคลน Mercurial นั้นช้าอย่างเห็นได้ชัด มักใช้เวลาหลายชั่วโมงในการทำให้เสร็จสมบูรณ์ ในขณะที่ทางเลือก Git สามารถทำเสร็จได้ภายในไม่กี่นาที ความแตกต่างในประสิทธิภาพนี้สร้างอุปสรรคสำคัญสำหรับผู้มีส่วนร่วมใหม่
ผมเคยพยายามมีส่วนร่วมเมื่อไม่กี่ปีก่อน การโคลน mercurial ใช้เวลาหลายชั่วโมง พวกเขามี git แบบไม่เป็นทางการอยู่แล้ว ซึ่งใช้เวลาโคลนเพียง 15 นาที
นอกจากนี้ Mozilla ยังเผชิญกับความท้าทายที่เพิ่มขึ้นในการบำรุงรักษาโครงสร้างพื้นฐานการควบคุมเวอร์ชันในระดับใหญ่ เซิร์ฟเวอร์ VCS จำเป็นต้องรองรับผู้มีส่วนร่วมจากทั่วโลกในขณะที่ยังคงรักษาความพร้อมใช้งานและความปลอดภัยในระดับสูง ปัญหาด้านประสิทธิภาพเป็นปัญหาที่สำคัญมาก โดยผู้มีส่วนร่วมบางครั้งต้องรอนานหลายสิบนาทีเพื่อรอการปลดล็อคเมื่อพุชไปยังที่เก็บข้อมูลอย่าง try (ที่ใช้สำหรับการรันแพตช์ผ่าน CI)
อะไรที่เปลี่ยนแปลงสำหรับผู้มีส่วนร่วม?
สำหรับผู้มีส่วนร่วม ประโยชน์ที่เห็นได้ชัดที่สุดคือความสามารถในการใช้เวิร์กโฟลว์ Git มาตรฐานโดยไม่จำเป็นต้องใช้ส่วนขยายเช่น git-cinnabar ซึ่งก่อนหน้านี้จำเป็นต้องใช้เพื่อทำงานกับที่เก็บข้อมูลของ Mozilla สิ่งนี้ลดอุปสรรคสำหรับนักพัฒนาที่คุ้นเคยกับ Git อยู่แล้ว ซึ่งปัจจุบันเป็นคนส่วนใหญ่ในชุมชนการพัฒนา
โครงสร้างที่เก็บข้อมูลยังได้รับการปรับปรุงให้สอดคล้องกับข้อกำหนด Git มาตรฐาน บรานช์ mozilla-central เดิมได้ถูกแมปไปยัง main และ autoland (ที่ซึ่งคอมมิตจะลงก่อนและถูกเอาออกหากทำให้การทดสอบล้มเหลว) ยังคงเป็นบรานช์แยกต่างหาก บรานช์ autoland จะถูกรวมเข้ากับ main ประมาณวันละสองครั้งเมื่อการทดสอบแบบ continuous integration ผ่านเรียบร้อยแล้ว
การเปลี่ยนแปลงที่สำคัญในโครงสร้างของที่เก็บซอร์สโค้ด
- เดิมใช้ชื่อ "mozilla-central" → ปัจจุบันเป็นสาขา "main"
- ยังคงรักษาสาขา "autoland" ไว้ (เป็นที่ที่โค้ดจะถูกส่งเข้าไปก่อน)
- สาขา Autoland จะถูกรวมเข้ากับ main ประมาณวันละ 2 ครั้งเมื่อผ่านการทดสอบ CI
- ปิดการใช้งาน Pull requests (จะถูกปิดโดยอัตโนมัติ)
- Issues ยังคงอยู่บน Bugzilla
- การตรวจสอบโค้ดยังคงอยู่บน Phabricator
- CI/CD ยังคงใช้ Mozilla's Taskcluster
อะไรที่ไม่เปลี่ยนแปลง?
แม้จะย้ายไปยัง GitHub แต่ Mozilla ไม่ได้นำฟีเจอร์ทั้งหมดของ GitHub มาใช้ Pull request ถูกปิดการใช้งานผ่าน GitHub action ที่จะปิดโดยอัตโนมัติพร้อมข้อความที่นำผู้มีส่วนร่วมไปยังช่องทางการมีส่วนร่วมที่กำหนดไว้ของ Mozilla ปัญหายังคงอยู่บน Bugzilla และการตรวจสอบโค้ดยังคงดำเนินการผ่าน Phabricator
แนวทางนี้ช่วยให้ Mozilla ได้รับประโยชน์จากความสามารถในการโฮสต์โค้ดที่แข็งแกร่งของ GitHub ในขณะที่ยังคงรักษาเวิร์กโฟลว์และเครื่องมือการพัฒนาที่มีอยู่ การตัดสินใจที่จะแยกระบบเหล่านี้ออกจากกันน่าจะสะท้อนถึงทั้งขนาดของกระบวนการพัฒนาของ Mozilla และข้อกำหนดเฉพาะของการพัฒนาเบราว์เซอร์
รายละเอียดเกี่ยวกับ Repository ของ Firefox
- ตำแหน่งใหม่: github.com/mozilla-firefox/firefox
- จำนวนดาว: 1.6 พัน
- จำนวน Forks: 93
- ผู้มีส่วนร่วม: 6,073+
- การแบ่งภาษาหลัก:
- JavaScript: 28.1%
- HTML: 22.0%
- C++: 10.5%
- Python: 2.9%
- Kotlin: 2.5%
- อื่นๆ: 5.5%
ปฏิกิริยาของชุมชน
การตอบสนองของชุมชนส่วนใหญ่เป็นไปในเชิงบวก โดยนักพัฒนาจำนวนมากยินดีกับการลดความยุ่งยากในการมีส่วนร่วม อย่างไรก็ตาม บางคนได้แสดงความกังวลเกี่ยวกับการรวมศูนย์ของโปรเจกต์โอเพนซอร์สบน GitHub ซึ่งเป็นแพลตฟอร์มที่เป็นเจ้าของโดย Microsoft คนอื่น ๆ ตั้งคำถามว่าทำไม Mozilla จึงสร้างองค์กรใหม่ (mozilla-firefox) แทนที่จะใช้การมีอยู่บน GitHub ที่มีอยู่แล้ว (github.com/mozilla)
การเลือก GitHub ของ Mozilla แทนทางเลือกที่โฮสต์เองเช่น Forgejo หรือ Codeberg ได้จุดประกายการถกเถียงเกี่ยวกับการแลกเปลี่ยนระหว่างความสะดวกและการควบคุม ในขณะที่การโฮสต์เองจะให้ความเป็นอิสระมากขึ้น GitHub มอบการมองเห็นและความคุ้นเคยที่ไม่มีใครเทียบได้สำหรับผู้ที่อาจมีส่วนร่วม
การย้ายไปยัง GitHub แสดงถึงการตัดสินใจอย่างมีเหตุผลเพื่อลดอุปสรรคในการมีส่วนร่วมในขณะที่ยังคงรักษากระบวนการพัฒนาที่มีอยู่ของ Mozilla ในขณะที่ Firefox ยังคงเผชิญกับความท้าทายในตลาดเบราว์เซอร์ การปรับปรุงกระบวนการมีส่วนร่วมให้มีประสิทธิภาพอาจช่วยฟื้นฟูการมีส่วนร่วมของชุมชนและรับประกันความยั่งยืนในระยะยาวของโปรเจกต์
อ้างอิง: mozilla-firefox/firefox