Firefox chuyển sang GitHub: Mozilla chuyển từ Mercurial sang Git

BigGo Editorial Team
Firefox chuyển sang GitHub: Mozilla chuyển từ Mercurial sang Git

Mozilla đã chính thức chuyển kho mã nguồn của Firefox từ Mercurial sang GitHub, đánh dấu một sự thay đổi quan trọng trong cơ sở hạ tầng phát triển của trình duyệt. Sự chuyển đổi này là kết quả của một quá trình bắt đầu từ tháng 11 năm 2023, khi Mozilla lần đầu tiên công bố kế hoạch chuyển từ quy trình làm việc dựa trên Mercurial sang Git.

Mã nguồn của Firefox hiện có thể được tìm thấy tại github.com/mozilla-firefox/firefox, mặc dù điều quan trọng cần lưu ý là sự thay đổi này chủ yếu ảnh hưởng đến kho mã nguồn. Mozilla sẽ tiếp tục sử dụng Bugzilla để theo dõi vấn đề, Phabricator để đánh giá mã và hệ thống Taskcluster của họ để tích hợp liên tục.

Tại sao chuyển sang Git và GitHub?

Quyết định của Mozilla chuyển sang Git và GitHub giải quyết một số thách thức tồn tại lâu dài. Trong nhiều năm, những người đóng góp đã gặp phải nhiều khó khăn khi làm việc với kho Mercurial của Mozilla. Quá trình sao chép Mercurial nổi tiếng chậm, thường mất hàng giờ để hoàn thành, trong khi giải pháp thay thế Git có thể được hoàn thành trong vài phút. Sự khác biệt về hiệu suất này tạo ra một rào cản đáng kể cho những người đóng góp mới.

Tôi đã cố gắng đóng góp vài năm trước. Việc sao chép mercurial mất nhiều giờ. Họ đã có một git không chính thức, mất 15 phút để sao chép.

Ngoài ra, Mozilla phải đối mặt với những thách thức ngày càng tăng trong việc duy trì cơ sở hạ tầng kiểm soát phiên bản ở quy mô lớn. Máy chủ VCS cần xử lý người đóng góp từ khắp nơi trên thế giới trong khi vẫn duy trì tính khả dụng và bảo mật cao. Các vấn đề về hiệu suất đặc biệt gây khó khăn, với những người đóng góp đôi khi phải đợi hàng chục phút để khóa khi đẩy lên các kho lưu trữ như try (được sử dụng để chạy các bản vá qua CI).

Những thay đổi đối với người đóng góp?

Đối với những người đóng góp, lợi ích trực tiếp nhất là khả năng sử dụng quy trình làm việc Git tiêu chuẩn mà không cần các tiện ích mở rộng như git-cinnabar, trước đây cần thiết để làm việc với các kho lưu trữ của Mozilla. Điều này giảm bớt rào cản cho các nhà phát triển đã quen thuộc với Git, chiếm phần lớn cộng đồng phát triển hiện nay.

Cấu trúc kho lưu trữ cũng đã được cập nhật để phù hợp với quy ước Git tiêu chuẩn. Nhánh mozilla-central trước đây đã được ánh xạ thành main, và autoland (nơi các commit được đưa vào trước và bị loại bỏ nếu chúng gây ra lỗi kiểm tra) vẫn là một nhánh riêng biệt. Nhánh autoland được hợp nhất vào nhánh main khoảng hai lần một ngày khi các bài kiểm tra tích hợp liên tục thành công.

Những Thay Đổi Chính Trong Cấu Trúc Kho Lưu Trữ

  • Nhánh "mozilla-central" trước đây → Bây giờ là nhánh "main"
  • Nhánh "autoland" được duy trì (nơi các commit được đưa vào trước)
  • Autoland hợp nhất vào main khoảng hai lần mỗi ngày khi CI vượt qua
  • Pull requests bị vô hiệu hóa (tự động đóng)
  • Issues vẫn ở trên Bugzilla
  • Code review vẫn ở trên Phabricator
  • CI/CD vẫn ở trên Taskcluster của Mozilla

Những gì không thay đổi?

Mặc dù chuyển sang GitHub, Mozilla không áp dụng đầy đủ các tính năng của GitHub. Các pull request bị vô hiệu hóa thông qua một GitHub action tự động đóng chúng với một thông báo hướng dẫn người đóng góp sử dụng các kênh đóng góp đã thiết lập của Mozilla. Các vấn đề vẫn được theo dõi trên Bugzilla, và đánh giá mã tiếp tục thông qua Phabricator.

Cách tiếp cận này cho phép Mozilla hưởng lợi từ khả năng lưu trữ mã mạnh mẽ của GitHub trong khi vẫn duy trì quy trình phát triển và công cụ đã thiết lập. Quyết định giữ các hệ thống này riêng biệt có thể phản ánh cả quy mô của quá trình phát triển của Mozilla và các yêu cầu đặc biệt của việc phát triển trình duyệt.

Chi tiết về Kho lưu trữ Firefox

  • Vị trí mới: github.com/mozilla-firefox/firefox
  • Số lượng sao: 1.6k
  • Số lượng fork: 93
  • Số người đóng góp: 6,073+
  • Phân tích ngôn ngữ lập trình chính:
    • JavaScript: 28.1%
    • HTML: 22.0%
    • C++: 10.5%
    • Python: 2.9%
    • Kotlin: 2.5%
    • Khác: 5.5%

Phản ứng của cộng đồng

Phản ứng của cộng đồng phần lớn là tích cực, với nhiều nhà phát triển hoan nghênh việc giảm bớt khó khăn khi đóng góp. Tuy nhiên, một số người đã bày tỏ lo ngại về việc tập trung các dự án mã nguồn mở trên GitHub, một nền tảng thuộc sở hữu của Microsoft. Những người khác đặt câu hỏi tại sao Mozilla tạo ra một tổ chức mới (mozilla-firefox) thay vì sử dụng sự hiện diện GitHub hiện có của họ (github.com/mozilla).

Lựa chọn GitHub của Mozilla thay vì các giải pháp tự lưu trữ như Forgejo hoặc Codeberg đã gây ra một số tranh luận về sự đánh đổi giữa tiện lợi và kiểm soát. Mặc dù tự lưu trữ sẽ cung cấp quyền tự chủ lớn hơn, GitHub mang lại khả năng hiển thị và sự quen thuộc không thể so sánh cho những người đóng góp tiềm năng.

Việc chuyển sang GitHub thể hiện một quyết định thực tế để giảm bớt rào cản đóng góp trong khi vẫn duy trì các quy trình phát triển đã thiết lập của Mozilla. Khi Firefox tiếp tục đối mặt với những thách thức trong thị trường trình duyệt, việc đơn giản hóa quy trình đóng góp có thể giúp hồi sinh sự tham gia của cộng đồng và đảm bảo tính bền vững lâu dài của dự án.

Tham khảo: mozilla-firefox/firefox