1 คะแนน โดย GN⁺ 2025-09-24 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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

2 ความคิดเห็น

 
click 2025-09-24

สุดท้ายแล้วต้นเหตุที่แท้จริงคือ DHH ใช่ไหม?

 
GN⁺ 2025-09-24
ความเห็นบน Hacker News
  • รู้สึกตกใจมากที่ได้ยินว่า Sidekiq ถอนการสนับสนุนรายปีมูลค่า $250,000 ให้กับ Ruby Central เพราะ Sidekiq (จริง ๆ คือบริษัท ContribSys) เป็นบริษัทคนเดียวที่ Mike Perham บริหารอยู่เพียงลำพัง จากบทสัมภาษณ์เมื่อหลายปีก่อน Mike เคยทำรายได้ปีละ $1M โดยไม่มีพนักงาน และยังเป็นโครงสร้างที่แทบไม่ต้องดูแลเซิร์ฟเวอร์แยกต่างหาก อีกทั้งตามพอดแคสต์ปี 2023 ล่าสุด เขาบอกว่าตอนนี้ทำรายได้เกือบ $10M ต่อปีคนเดียว ซึ่งผมคิดว่านี่คือชีวิตที่ยอดเยี่ยมมากสำหรับนักพัฒนาผู้ก่อตั้งเดี่ยว
    • Mike เป็นคนที่ยอดเยี่ยมจริง ๆ และชุมชนก็โชคดีมากที่มีเขาอยู่ แถมแม้จะไม่เคยรู้มาก่อนว่าเขาสนับสนุนด้วยเงินจำนวนเท่าไร แต่จากการที่เขาไม่โปรโมตทั้งเรื่องการบริจาคและการถอนการสนับสนุน ก็มองออกว่าเขาเป็นคนที่ยึดมั่นในหลักการ
  • แม้บทความจะอธิบายบริบทไว้ดี แต่ก็ยังไม่ค่อยเข้าใจอยู่ดีว่า “ทำไม” เรื่องนี้ถึงเกิดขึ้น Shopify เองก็มีประวัติช่วยสนับสนุนและมีส่วนร่วมกับ Ruby และ Rails มาโดยตลอด เลยไม่เคยมองพวกเขาในแง่ลบมาก่อน
    • พออ่านคอมเมนต์แล้วก็ยังไม่เข้าใจว่าทำไมหลายคนถึงกลัวที่ Shopify จะเข้ามามีบทบาทมากขึ้น พวกเขาเป็นผู้มีส่วนร่วมหลักของ Ruby มานานแล้ว ถึงผมจะไม่เห็นด้วยกับการกระทำในเหตุการณ์นี้ แต่ก็ยากจะมองเห็นเจตนาร้ายจากบทความนี้
    • ดูเหมือนจะเป็นส่วนผสมของความตั้งใจดี ความเข้าใจผิด และการสื่อสารที่ไม่เพียงพอ Shopify ต้องการการควบคุมสิทธิ์เข้าถึงที่ดีกว่าเพื่อปรับปรุง governance และลดความเสี่ยงจาก supply-chain attack จึงตั้งเส้นตายไว้ แต่ฝั่งผู้ดูแลพาร์ตไทม์ก็ผัดวันไปจนถึงนาทีสุดท้าย จากนั้นก็ใช้อิทธิพลเข้ายึดงานดูแลโดยไม่ได้สื่อสารให้เหมาะสมและไม่ได้ตกลงกันอย่างชัดเจน ทำให้ผู้ดูแลเดิมทั้งตกใจและสับสนมากขึ้น ประเด็นเรื่องเครื่องมือคู่แข่งและดราม่า DHH อาจมีผลต่อการตัดสินใจที่แข็งกร้าวบางส่วน แต่ไม่ใช่สาเหตุโดยตรงของเหตุการณ์นี้
    • จากที่พยายามอ่านหลายบรรทัดแล้วเดาเอาเอง ผมเข้าใจลำดับเรื่องประมาณนี้: 1) คนบางกลุ่มที่มีอำนาจควบคุม RubyGems บางส่วนพยายามกัน DHH ออก 2) ฝั่งที่ใกล้ชิดกับ DHH ก็โต้กลับด้วยการเขี่ยคนเหล่านั้นออกจาก RubyGems 3) ทุกฝ่ายต่างก็อ้างว่าเป็นการกระทำเพื่อ “วิศวกรรมที่ดี” สุดท้ายเลยกลายเป็นสถานการณ์แบบ Game of Thrones ที่มีแค่ “ชนะหรือแพ้”
    • ได้ยินมาว่าบางองค์กรถอน funding เพราะปัญหาด้านพฤติกรรมของ DHH และความกังวลเรื่องความปลอดภัยของ supply chain ส่วน Shopify ก็ลงมือเองเพื่อเข้าควบคุม dependency สำคัญของตัวเอง
  • พวกเขาอ้างว่าจะจัดการสิทธิ์ผู้ดูแลของ RubyGems.org, RubyGems และ Bundler ให้ปลอดภัยในนามของการเสริมความมั่นคงปลอดภัยของ supply chain แต่สุดท้ายผมมองว่าสิ่งที่เกิดขึ้นจริงคือความแตกแยกภายในที่ไม่พึงประสงค์ ซึ่งเกือบลุกลามไปเป็น supply-chain attack ที่มีเจตนาร้าย
    • อยากรู้ว่ามีพฤติกรรมที่เป็นอันตรายอะไรเกิดขึ้นอย่างเป็นรูปธรรมบ้าง เช่น มีการแทรกโค้ดอันตรายจริงหรือไม่ ข้อเท็จจริงเป็นอย่างไรกันแน่
  • ไม่ได้คาดหวังว่าจะได้อ่านบทความที่สรุปเรื่องได้ดีขนาดนี้ ชุมชน Ruby มีความขัดแย้งภายในมานานแล้ว แต่สิ่งที่น่าเสียดายในเหตุการณ์ครั้งนี้คือการทำลายความไว้ใจและความสัมพันธ์จากมุมมองระยะสั้น
    • ถ้า Ruby ในตอนนี้อยู่ในสภาพ “กัดกินตัวเอง” จริง งั้นก็ขอให้มันกัดกินตัวเองต่อไป
    • อยากรู้ว่าทำไมถึงกลายเป็นสภาพ “กัดกินตัวเอง” ได้
    • ผมไม่ค่อยเห็นด้วยกับคำกล่าวที่ว่าชุมชน Ruby มีความขัดแย้งภายในรุนแรงมาตั้งแต่ยุคแรก ๆ ชุมชน Ruby ช่วงแรกยอดเยี่ยมมาก
    • เนื้อหาของบทความกระจัดกระจายเกินไป บางส่วนลงรายละเอียดมากเกินจำเป็น ขณะที่บางส่วนกลับขาดสาระสำคัญ จนยากจะตามภาพรวมทั้งหมดให้ทัน ผมเห็นด้วยว่าเรื่อง Ruby Central ครั้งนี้สร้างความสับสนอย่างมาก และผู้ดูแลควรได้รับการปฏิบัติที่ดีกว่านี้ แต่ก็น่าเสียดายที่ผู้เขียนไม่ได้สืบประเด็นสำคัญอย่างเรื่องสงครามวัฒนธรรมและประเด็นอื่น ๆ
  • อยากรู้ว่าทำไม Samuel Giddins กับ André Arko ถึงถูกเล็งให้ถูกถอดออก พวกเขามีปัญหาอะไรหรือไม่ จากบทความเหมือนจะดูว่าเป็นสิ่งที่ Shopify ต้องการ แต่ก็อยากรู้เหตุผลที่แน่ชัด
    • ในบทความมีอธิบายประเด็นที่เกี่ยวข้องไว้ที่นี่
  • ผมไม่เข้าใจส่วนที่บอกว่า Ruby Central พยายามควบคุม code repo และ gem ของ RubyGems เพราะ Ruby Central ไม่น่าจะมีโครงสร้างที่สามารถใช้อำนาจเหนือ GitHub ของผมได้ตามใจไม่ใช่หรือ หรือว่าทั้งหมดนั้นอยู่ใต้บัญชี Ruby Central หรือบัญชีองค์กรของพวกเขา?
    • ตามที่บทความระบุไว้ชัดเจน ผู้ดูแลคนหนึ่ง (HSBT) ได้เชิญ Marty ให้เป็น owner ของบัญชี GitHub และเรื่องนี้เกิดขึ้นโดยไม่มีข้อตกลงเดิมรองรับ
    • ในส่วน "9 กันยายน, HSBT..." ผู้ดูแล RubyGems เดิมได้เพิ่มผู้ใช้ใหม่ให้เป็น owner แล้วภายหลังก็ย้อนคืนเกือบทั้งหมด แต่ยังมีผู้ใช้ใหม่หนึ่งคนคงสถานะ owner ของ GitHub organization ของ RubyGems เอาไว้ และนั่นทำให้ Ruby Central สามารถทำหลายอย่างต่อจากนั้นได้
    • ได้ยินมาว่า organization ของ RubyGems ถูกเปลี่ยนชื่อเป็น Ruby Central
  • ถ้าไม่อยากรับความเสี่ยงในระดับ GitHub organization ก็ควรหลีกเลี่ยงไม่เข้าไปอยู่ในโครงสร้างแบบนั้นตั้งแต่แรก ผมรู้สึกว่าแม้ผู้ดูแลจะเข้าร่วม organization แต่ GitHub ก็ควรมีความสามารถที่ทำให้ repo ของผมยังอยู่ภายใต้การควบคุมสุดท้ายของผมเองอย่างสมบูรณ์ และถ้าจำเป็นก็สามารถดึงออกมาได้ทุกเมื่อ
  • ยังมีการพูดคุยล่าสุดที่เกี่ยวข้องอีก
  • เท่าที่ผมเข้าใจ Ruby Central ไม่ได้เป็นเจ้าของซอร์สโค้ด แต่แค่ดูแลการให้บริการเท่านั้น ถ้าอย่างนั้นบัญชี GitHub หรือ repo เหล่านี้เดิมเป็นของใคร ใครเป็นคนสร้างตั้งแต่แรก?
    • เท่าที่จำได้ คนที่ก่อตั้ง Ruby Central ก็เป็นคนที่สร้าง RubyGems ในยุคแรกด้วยเหมือนกัน (เช่น David Black, Chad Fowler ฯลฯ) แต่เรื่องมันนานมากแล้ว เลยอาจไม่ได้เกี่ยวข้องกับข้อถกเถียงปัจจุบันมากนัก
  • หวังว่าความขัดแย้งทั้งหมดนี้จะคลี่คลายไปได้ด้วยดี มันทำให้นึกถึงผลกระทบที่เกิดกับชุมชนและผู้ดูแลตอนที่ Oracle เข้าซื้อ Sun Microsystems