- Ruby Central đã tiếp quản các dự án mã nguồn mở như Bundler và RubyGems mà không có sự đồng ý của các maintainer hiện hữu
- Bối cảnh chính gồm áp lực tài chính từ Shopify và khó khăn tài chính của Ruby Central, trong quá trình đó một số maintainer cụ thể bị loại khỏi dự án
- Quá trình ép chuyển giao kho GitHub và quyền sở hữu gem được tiến hành kín đáo, gây hỗn loạn và phản ứng dữ dội trong cộng đồng
- Ruby Central và Shopify biện minh bằng việc nhấn mạnh trách nhiệm về bảo mật và hạ tầng, nhưng bản chất vấn đề là quyền sở hữu thực tế và khủng hoảng niềm tin của cộng đồng
- Một số maintainer cũ đang tập trung vào dự án cạnh tranh Spinel và rv, đồng thời tìm kiếm hướng đi mới cho hệ sinh thái Ruby
Tổng quan
Ruby Central gần đây đã đơn phương tiếp quản quyền sở hữu và quyền quản lý các dự án mã nguồn mở quan trọng như Bundler và RubyGems mà không có sự đồng ý của các maintainer hiện hữu. Quá trình này đan xen giữa áp lực tài chính từ Shopify, khó khăn tài chính của Ruby Central, việc loại trừ các maintainer chủ chốt và sự hỗn loạn trong cộng đồng.
Tóm tắt các sự kiện chính
- Ruby Central đang gặp khó khăn tài chính, và Sidekiq đã rút khoản tài trợ thường niên $250,000 khỏi RailsConf vì lý do mời DHH
- Kết quả là Ruby Central trở nên phụ thuộc rất lớn vào Shopify
- Shopify gây áp lực lên Ruby Central, yêu cầu tiếp quản toàn bộ kho GitHub cũng như quyền sở hữu Bundler và gem rubygems-update, nếu không sẽ rút tài trợ
- Trong quá trình tiếp quản, các maintainer chủ chốt, đặc biệt là André Arko, đã bị loại ra ngoài, và việc chuyển đổi cưỡng ép được thực hiện mà không có sự đồng thuận của cộng đồng
- Diễn biến sự việc và quá trình thảo luận nội bộ được xử lý nhanh chóng và kín đáo với bên ngoài, khiến nhiều thành viên quan trọng của cộng đồng bị gạt ra ngoài
Chi tiết quá trình tiếp quản Bundler và RubyGems
Tình hình ban đầu
- Ngày 9 tháng 9, Hiroshi Shibata (HSBT) đổi tên RubyGems GitHub Enterprise thành 'Ruby Central', thêm Marty Haught làm owner mới và tước một phần quyền của các maintainer hiện hữu
- Khi hành động này bị nêu vấn đề, một số quyền đã được khôi phục, nhưng việc thêm Marty làm owner không bị đảo ngược
Thảo luận về việc phân biệt quyền sở hữu và dịch vụ
- Kho mã nguồn RubyGems là tài sản thuộc sở hữu và được quản lý bởi cộng đồng
- RubyGems Service là dịch vụ hạ tầng được Ruby Central vận hành riêng
- Dù lẽ ra cần phân biệt rõ hai khái niệm này, Ruby Central lại dùng lẫn lộn chúng làm cơ sở cho tuyên bố quyền sở hữu
Tước quyền và thực thi việc tiếp quản
- Khoảng ngày 18 tháng 9, các maintainer hiện hữu снова mất quyền truy cập và bị loại khỏi các tài khoản GitHub, Fastly và rubygems.org
- Hội đồng quản trị Ruby Central biểu quyết cưỡng ép tiếp quản kho GitHub và quyền sở hữu gem, rồi Marty tự mình thực hiện
Ruby Central ngày càng phụ thuộc vào Shopify
- Sau khi mời DHH tới RailsConf, Ruby Central mất nhà tài trợ cũ là Sidekiq, khiến cấu trúc tài chính tập trung mạnh vào Shopify
- Trong thời gian diễn ra Rails World, các điều kiện tài trợ dài hạn đã được thảo luận giữa Ruby Central, Rails Core, Shopify, Github và các nhân vật, doanh nghiệp chủ chốt; trong đó có yêu cầu loại trừ một số maintainer cụ thể và chuyển giao quyền sở hữu
- Ngay trong nội bộ hội đồng quản trị cũng có nhận thức rằng "lựa chọn khác chẳng khác nào bắt đầu đóng cửa Ruby Central"
Thực thi việc tiếp quản và phản ứng của cộng đồng
- Hội đồng quản trị Ruby Central trao ngay cho Marty quyền thực hiện việc tiếp quản, còn Shopify nhanh chóng điều kỹ sư vào để chuyển đổi hệ thống on-call
- Sau khi Ellen là người đầu tiên công khai sự việc, Ruby Central đưa ra tuyên bố chính thức với lý do "tăng cường bảo mật chuỗi cung ứng"
- Dù nội bộ nhấn mạnh các vấn đề bảo mật và độ tin cậy về con người, bản chất thực sự lại nằm ở quy trình chuyển giao quyền sở hữu chính đáng và sự thiếu đồng thuận trong cộng đồng
Phát biểu của các nhân vật chính và các điểm tranh cãi
- DHH đã đăng tweet ủng hộ việc tiếp quản Bundler/Gems, nhưng trước đây lại phản đối vụ WordPress cưỡng ép tiếp quản plugin, nên bị chỉ ra là thiếu nhất quán
- Hội đồng quản trị Ruby Central và một số bên liên quan gây thêm nhầm lẫn khi phát biểu lẫn lộn giữa việc vận hành hạ tầng RubyGems.org và quyền sở hữu kho mã nguồn
- Shun Cureton và những người khác cho biết do không thể hoàn tất trao đổi với các maintainer trong thời hạn nên việc hạn chế quyền chỉ mang tính tạm thời. Tuy vậy, khả năng loại bỏ vĩnh viễn một số maintainer cũ vẫn là rất cao
Sự xuất hiện của Spinel và rv
- André Arko, Samuel Giddins và các cựu maintainer của Bundler, RubyGems đã thành lập hợp tác xã mới Spinel và bắt tay vào phát triển công cụ quản lý Ruby mới là rv
- rv hướng tới tích hợp phạm vi quản lý rộng, bao gồm gems, phiên bản Ruby, dependency và đóng gói sẵn nhị phân, nhằm thay thế nhiều công cụ hiện có như rvm, rbenv, bundler và rubygems
- Một bộ phận trong Shopify và Rails Core xem Spinel và rv là mối đe dọa tiềm tàng đối với hệ sinh thái Ruby tập trung hóa
Kết luận và lo ngại
- Hiện chưa rõ liệu Ruby Central sau này có trả lại quyền sở hữu Bundler và RubyGems cho cộng đồng hay không
- Việc hội đồng quản trị Ruby Central tiến hành cưỡng ép tiếp quản không có sự đồng ý, dù đã nhận thức đầy đủ về hệ quả và các phương án thay thế, đã giáng đòn nặng nề vào niềm tin của cộng đồng
- Sự việc cũng làm nổi bật cấu trúc quản trị dễ tổn thương trước áp lực từ doanh nghiệp như Shopify, đồng thời đặt ra nhu cầu về các lựa chọn cộng đồng mới như Spinel
Disclosure
- Tác giả từng làm việc tại Shopify từ năm 2017 đến 2022
Disclaimer
- Bản tóm tắt này là ý kiến không chuyên, được viết dựa trên phỏng vấn nhiều bên liên quan và biên bản họp. Có thể có thiếu sót hoặc sai sót.
Changelog
- Ngày 23 tháng 9 năm 2025: Xóa tên một số người tham dự Rails World, bổ sung trích dẫn của DHH liên quan tới WordPress
Chưa có bình luận nào.