Shopify มีอิทธิพลต่อ Ruby Central บีบเข้ายึด Bundler และ RubyGems
(joel.drapper.me)- Ruby Central เข้ายึดโครงการโอเพนซอร์สอย่าง Bundler และ RubyGems จากผู้ดูแลเดิม โดยไม่ได้รับความยินยอมจากผู้ดูแล
- เบื้องหลังสำคัญคือ แรงกดดันทางการเงินจาก Shopify และปัญหาขาดแคลนเงินทุนของ Ruby Central โดยในกระบวนการนี้มีการกันผู้ดูแลบางคนออกจากโครงการ
- กระบวนการ โอนสิทธิ์ความเป็นเจ้าของ GitHub repository และ gem แบบบังคับ ดำเนินไปอย่างไม่เปิดเผย ก่อให้เกิดความสับสนและแรงต้านจากชุมชน
- Ruby Central และ Shopify ให้เหตุผลโดย เน้นความรับผิดชอบด้านความปลอดภัยและโครงสร้างพื้นฐาน แต่ประเด็นแก่นแท้คือปัญหาเรื่องกรรมสิทธิ์ที่แท้จริงและวิกฤตความเชื่อมั่นของชุมชน
- ผู้ดูแลเดิมบางส่วนกำลังมุ่งไปที่ โครงการคู่แข่ง Spinel และ rv เพื่อหาแนวทางรับมือใหม่ให้กับระบบนิเวศ Ruby
ภาพรวม
เมื่อไม่นานมานี้ Ruby Central ได้เข้าครอบครอง กรรมสิทธิ์และสิทธิ์การดูแลโครงการโอเพนซอร์สสำคัญอย่าง Bundler และ RubyGems แบบฝ่ายเดียว โดยไม่ได้รับความยินยอมจากผู้ดูแลเดิม เหตุการณ์นี้พัวพันกับแรงกดดันทางการเงินจาก Shopify ปัญหาขาดเงินทุนของ Ruby Central การกันผู้ดูแลหลักออกไป และความสับสนในชุมชน
สรุปเหตุการณ์สำคัญ
- Ruby Central กำลังเผชิญ ปัญหาทางการเงิน และ Sidekiq ถอนการสนับสนุนรายปี $250,000 จาก RailsConf ด้วยเหตุผลเรื่องการเชิญ DHH
- ผลคือ Ruby Central ต้องพึ่งพา Shopify อย่างมาก
- Shopify กดดัน Ruby Central ให้ เข้ายึด GitHub repository รวมถึงกรรมสิทธิ์ของ Bundler และ gem
rubygems-updateทั้งหมด พร้อมขู่ว่าจะถอนการสนับสนุนหากไม่ทำตาม - ในกระบวนการเข้ายึด ผู้ดูแลหลักบางคน โดยเฉพาะ André Arko ถูกกันออกไป และมีการบังคับเปลี่ยนผ่านโดยไม่มีฉันทามติจากชุมชน
- การดำเนินเรื่องและการหารือภายในถูกจัดการอย่างรวดเร็วและไม่เปิดเผยต่อสาธารณะ ทำให้สมาชิกสำคัญจำนวนมากของชุมชนถูกกันออกไป
รายละเอียดกระบวนการเข้ายึด Bundler และ RubyGems
สถานการณ์เริ่มต้น
- วันที่ 9 กันยายน Hiroshi Shibata (HSBT) เปลี่ยนชื่อ RubyGems GitHub Enterprise เป็น 'Ruby Central' เพิ่ม Marty Haught เป็นเจ้าของใหม่ และเพิกถอนสิทธิ์ของผู้ดูแลเดิมบางส่วน
- เมื่อมาตรการนี้ถูกตั้งคำถาม สิทธิ์บางส่วนจึงถูกคืนกลับมา แต่การเพิ่ม Marty ในฐานะ owner ไม่ได้ถูกยกเลิก
การถกเถียงเรื่องการแยกกรรมสิทธิ์กับบริการ
- source code repository ของ RubyGems เป็นสิ่งที่ ชุมชนเป็นเจ้าของและดูแล
- RubyGems Service เป็น บริการโครงสร้างพื้นฐาน ที่ Ruby Central ดำเนินการแยกต่างหาก
- แม้จะจำเป็นต้องแยกสองแนวคิดนี้ให้ชัดเจน แต่ Ruby Central กลับใช้ทั้งสองอย่างปะปนกันเป็นฐานในการอ้างสิทธิ์ความเป็นเจ้าของ
การเพิกถอนสิทธิ์และลงมือเข้ายึด
- ราววันที่ 18 กันยายน ผู้ดูแลเดิมสูญเสียสิทธิ์เข้าถึงอีกครั้ง และถูกตัดออกจากบัญชี GitHub, Fastly และ rubygems.org
- คณะกรรมการ Ruby Central ลงมติให้เข้ายึด GitHub repository และกรรมสิทธิ์ของ gem แบบบังคับ โดย Marty เป็นผู้ดำเนินการเพียงลำพัง
การพึ่งพา Shopify ของ Ruby Central ที่หนักขึ้น
- หลังเชิญ DHH มาที่ RailsConf จึงสูญเสียผู้สนับสนุนเดิมอย่าง Sidekiq ทำให้โครงสร้างการเงินไปกระจุกตัวที่ Shopify
- ระหว่างงาน Rails World มีการหารือเงื่อนไขการสนับสนุนระยะยาวระหว่าง Ruby Central, Rails Core, Shopify, Github และบุคคล/บริษัทหลักอื่น ๆ ซึ่งในช่วงนี้มีการเรียกร้องเงื่อนไขให้กันผู้ดูแลบางคนออกและโอนกรรมสิทธิ์
- แม้แต่ภายในคณะกรรมการเองก็มีการรับรู้ว่า "ทางเลือกอื่นก็แทบไม่ต่างจากการเริ่มปิด Ruby Central"
การดำเนินการเข้ายึดและปฏิกิริยาจากชุมชน
- คณะกรรมการ Ruby Central มอบอำนาจให้ Marty ดำเนินการเข้ายึดได้ทันที และ Shopify ก็ส่งวิศวกรเข้ามาเปลี่ยนระบบ on-call อย่างรวดเร็ว
- หลังจาก Ellen เปิดเผยเรื่องนี้เป็นคนแรก Ruby Central ก็ออกแถลงการณ์อย่างเป็นทางการโดยอ้างเหตุผลเรื่อง "การเสริมความมั่นคงปลอดภัยของซัพพลายเชน"
- ภายในมีการเน้นประเด็นด้านความปลอดภัยและความน่าเชื่อถือของบุคลากร แต่แก่นแท้จริงคือการขาดกระบวนการโอนกรรมสิทธิ์ที่ชอบธรรมและการขาดฉันทามติจากชุมชน
คำกล่าวของบุคคลสำคัญและประเด็นโต้แย้ง
- DHH โพสต์สนับสนุนการเข้ายึด Bundler/Gems แต่ก่อนหน้านี้เคยแสดงจุดยืนคัดค้านในกรณี WordPress เข้ายึดปลั๊กอินแบบบังคับ จึงถูกวิจารณ์ว่าไม่สอดคล้องกัน
- คณะกรรมการ Ruby Central และผู้เกี่ยวข้องบางส่วนสร้างความสับสนด้วยคำพูดที่ปะปนระหว่างการดูแลโครงสร้างพื้นฐานของ RubyGems.org กับกรรมสิทธิ์ของ source code repository
- Shun Cureton และคนอื่น ๆ ระบุว่าการจำกัดสิทธิ์ของผู้ดูแลเป็นมาตรการชั่วคราว เพราะไม่สามารถหารือกับผู้ดูแลได้ทันเวลา อย่างไรก็ตาม มีความเป็นไปได้สูงว่าผู้ดูแลเดิมบางคนจะถูกกันออกอย่างถาวร
การเกิดขึ้นของ Spinel และ rv
- André Arko, Samuel Giddins และอดีตผู้ดูแล Bundler, RubyGems คนอื่น ๆ ได้ก่อตั้งสหกรณ์ใหม่ชื่อ Spinel และเริ่มพัฒนา rv เครื่องมือจัดการ Ruby ตัวใหม่
- rv มีเป้าหมายรวมความสามารถด้านการจัดการที่ครอบคลุมทั้ง gems, เวอร์ชัน Ruby, dependencies, การเตรียม binary ล่วงหน้า และอื่น ๆ โดยมุ่งเป็นทางเลือกแทนเครื่องมือหลายตัวเดิม เช่น rvm, rbenv, bundler และ rubygems
- ในฝั่ง Shopify และ Rails Core บางส่วน มองว่า Spinel และ rv เป็น ภัยคุกคามที่อาจเกิดขึ้น ต่อระบบนิเวศ Ruby แบบรวมศูนย์
บทสรุปและความกังวล
- ยังไม่แน่ชัดว่า Ruby Central จะคืนกรรมสิทธิ์ของ Bundler และ RubyGems ให้ชุมชนในอนาคตหรือไม่
- การที่คณะกรรมการ Ruby Central เดินหน้าเข้ายึดแบบบังคับโดยไม่ขอความยินยอม ทั้งที่รับรู้ถึงผลลัพธ์และทางเลือกต่าง ๆ อย่างเพียงพอ ได้สร้างความเสียหายอย่างหนักต่อความเชื่อมั่นของชุมชน
- เหตุการณ์นี้สะท้อนปัญหาโครงสร้างกำกับดูแลที่เปราะบางต่อแรงกดดันจากบริษัทอย่าง Shopify และทำให้เกิดข้อเรียกร้องถึงความจำเป็นของทางเลือกชุมชนใหม่ ๆ อย่าง Spinel
Disclosure
- ผู้เขียนเคยทำงานที่ Shopify ระหว่างปี 2017–2022
Disclaimer
- บทสรุปนี้เป็นความเห็นของผู้ที่ไม่ใช่มืออาชีพ โดยอ้างอิงจากบทสัมภาษณ์ผู้มีส่วนได้ส่วนเสียหลายฝ่ายและบันทึกการประชุม จึงอาจมีข้อมูลตกหล่นหรือผิดพลาดได้
Changelog
- 23 กันยายน 2025: ลบชื่อผู้เข้าร่วม Rails World บางส่วน และเพิ่มคำอ้างอิงเกี่ยวกับ WordPress ของ DHH
ยังไม่มีความคิดเห็น