1P by GN⁺ 3일전 | ★ favorite | 댓글 2개
  • Ruby Central이 Bundler와 RubyGems 등 오픈소스 프로젝트를 기존 유지관리자 동의 없이 인수
  • 주요 배경에는 Shopify의 재정 압박과 Ruby Central의 자금난이 있으며, 이 과정에서 특정 유지관리자를 프로젝트에서 배제함
  • GitHub 저장소 및 gem 소유권 강제 이전 과정이 비공개적으로 진행되었으며, 커뮤니티 혼란 및 반발 발생
  • Ruby Central과 Shopify는 보안 및 인프라 책임 강조로 정당화했으나, 실제 소유권 문제와 커뮤니티 신뢰 위기가 본질임
  • 일부 기존 유지관리자들은 경쟁 프로젝트 Spinel 및 rv 개발에 집중하며, 새로운 Ruby 생태계 대응 모색 중임

개요

Ruby Central이 최근 Bundler와 RubyGems 등 주요 오픈소스 프로젝트의 소유권 및 관리권을 기존 유지관리자들의 동의 없이 일방적으로 인수함. 이 과정에는 Shopify의 재정적 압박, Ruby Central의 자금난, 주요 유지관리자 배제 및 커뮤니티 혼란이 얽혀있음.

주요 사건 요약

  • Ruby Central이 재정적 어려움을 겪고 있었으며, Sidekiq가 RailsConf에서 DHH 초청을 이유로 연간 $250,000 후원을 철회함
  • 그 결과 Ruby Central은 Shopify에 크게 의존하게 되었음
  • Shopify는 Ruby Central에 GitHub 저장소 및 Bundler, rubygems-update gem 소유권 전면 인수를 요구, 불응 시 후원 철회를 압박함
  • 인수 과정에서 주요 유지관리자(특히 André Arko)가 배제되었으며, 커뮤니티 동의 없이 강제 전환 이루어짐
  • 사건의 진행 및 내부 논의 과정이 대외적으로 신속·비공개적으로 처리되어, 주요 커뮤니티 구성원 다수가 배제됨

Bundler 및 RubyGems 인수 상세 과정

초기 상황

  • 9월 9일, Hiroshi Shibata(HSBT)가 RubyGems GitHub 엔터프라이즈 이름을 'Ruby Central'로 변경하고, 새로운 오너로 Marty Haught를 추가하며 기존 유지관리자 권한을 일부 박탈함
  • 이 조치가 문제로 제기되자 일부 권한이 복구되었으나, Marty의 오너 추가는 번복되지 않음

소유권 및 서비스 구분에 대한 논의

  • RubyGems 소스코드 저장소는 커뮤니티 소유 및 관리
  • RubyGems Service는 Ruby Central에서 별도로 운영하는 인프라 서비스
  • 이 두 개념을 명확히 구분할 필요가 있었음에도, Ruby Central은 이를 혼용하여 소유권 주장 근거로 사용함

권한 박탈 및 인수 실행

  • 9월 18일 경, 기존 유지관리자들은 다시 접근 권한을 잃고, GitHub 및 Fastly, rubygems.org 계정에서 배제됨
  • Ruby Central 이사회가 GitHub 저장소, gem 소유권 강제 인수 투표를 결의하고, Marty가 단독 실행함

Ruby Central의 Shopify 의존성 심화

  • RailsConf에서 DHH를 초청하면서 기존 후원(Sidekiq)을 상실, 재정 구조가 Shopify에 집중됨
  • Rails World 기간 중 Ruby Central, Rails Core, Shopify, Github 등 주요 인물·기업간 장기 후원 조건 논의가 있었으며, 이 때 특정 유지관리자 배제 및 소유권 이전 조건이 요구됨
  • 이사회 내부에서도 "다른 선택지는 Ruby Central의 폐쇄를 시작하는 것과 같았다"는 인식이 있었음

인수의 실행 및 커뮤니티 반응

  • Ruby Central 이사회는 Marty에게 즉각 인수 실행 권한 부여, Shopify가 엔지니어 투입해 온콜 체계를 신속히 전환함
  • Ellen이 최초로 이 사실을 공개한 후, Ruby Central은 "공급망 보안 강화"를 명분으로 한 공식 입장문을 발표
  • 내부적으로 보안 및 인적 신뢰성 문제를 강조했으나, 실제로는 정당한 소유권 이전 과정 및 커뮤니티 공감대 부족이 본질

주요 인물 발언 및 쟁점

  • DHH는 Bundler/Gems 인수를 지지하는 트윗을 남겼으나, 과거 WordPress의 플러그인 강제 인수 사건에서는 반대 입장을 밝혀 일관성 부족 지적
  • Ruby Central 이사회 및 일부 관계자들은, RubyGems.org 인프라 운영과 소스코드 저장소 소유권을 혼동하는 발언으로 혼선을 야기함
  • Shun Cureton 등은 유지관리자와의 협의가 시간 내에 이루어지지 않아 임시적 권한 제한이었다고 밝힘. 그러나 일부 기존 유지관리자에 대한 영구적 배제 가능성이 높음

Spinel 및 rv 등장

  • 기존 Bundler, RubyGems 유지관리자였던 André Arko, Samuel Giddins 등은 새로운 협동조합 Spinel을 설립하고, 신규 Ruby 관리툴인 rv 개발에 착수함
  • rv는 gems, Ruby 버전, 의존성, 바이너리 프리패키징 등 폭넓은 관리 기능 통합을 목표로 하여, 기존 rvm, rbenv, bundler, rubygems 등 여러 툴의 대체를 지향함
  • Shopify 및 Rails Core 일각에서는 Spinel·rv를 Ruby 중앙화된 생태계에 대한 잠재적 위협으로 인식함

결론 및 우려

  • Ruby Central이 향후 Bundler, RubyGems의 소유권을 커뮤니티에 돌려줄지 확실치 않음
  • Ruby Central 이사회가 결과 및 대안의 충분한 인식 하에 동의 없는 강제 인수를 단행한 점이 커뮤니티 신뢰에 심각한 타격
  • Shopify 등 기업의 압박에 취약한 거버넌스 구조 지적 및 Spinel 같은 새로운 커뮤니티 대안의 필요성 제기

Disclosure

  • 작성자는 2017~2022년 Shopify 재직 경력이 있음

Disclaimer

  • 본 요약은 다수의 이해관계자 인터뷰 및 회의록을 바탕으로 작성한 비전문가 의견임. 누락, 오류가 있을 수 있음.

Changelog

  • 2025년 9월 23일: Rails World 참석자 일부 이름 삭제, DHH의 WordPress 관련 인용 추가

결국 근본적인 원인은 DHH인건가요?

Hacker News 의견
  • Sidekiq가 Ruby Central에 대한 연간 $250,000의 후원을 철회했다는 소식에 놀람을 감추지 못함, 왜냐하면 Sidekiq(실제로는 ContribSys)이란 회사는 Mike Perham 혼자서 운영하는 1인 회사이기 때문임, 몇 년 전 인터뷰에서 Mike는 직원 없이 연 $1M을 벌고 있었고, 서버 운영도 따로 필요 없던 구조였음, 최근 2023년 팟캐스트에 따르면 현재는 연 $10M에 가까운 수익을 혼자서 내고 있다고 하며, 1인 창업 개발자에게 매우 멋진 삶이라고 생각함
    • Mike는 정말 훌륭한 사람으로, 커뮤니티는 그가 있다는 사실 자체만으로도 큰 행운임, 후원 금액이 얼마인지 몰랐지만, 기부와 철회를 따로 홍보하지 않는 점으로 미루어봐도 원칙을 지키는 사람임을 알 수 있음
  • 정황 설명은 잘 되어 있지만, 여전히 ’왜‘ 이런 일이 발생했는지가 잘 이해되지 않음, Shopify는 언제나 Ruby와 Rails에 많은 기여와 후원을 해왔기 때문에, 과거엔 부정적으로 보지 않았음
    • 댓글을 읽어보면, Shopify가 더 큰 역할을 맡는 것에 왜 두려움이 있는지 모르겠음, 오랫동안 Ruby의 핵심 기여자였고, 이번 사건의 행동에는 동의하지 않지만, 이 기사에서 악의적 의도를 잡아내기는 힘듦
    • 좋은 의도, 오해, 그리고 소통 부족이 복합적으로 작용한 것처럼 보임, Shopify는 공급망 공격 위험을 줄이고 거버넌스 개선을 위한 더 나은 접근 권한 통제를 원해 마감 기한까지 정함, 파트타임 유지보수자들은 마지막 순간까지 미루다가, 제대로 소통하지 않고 제대로 합의도 없이 영향력을 행사해 유지보수를 가져감, 이에 기존 유지보수자들이 놀라 혼란이 더 커졌음, 경쟁 툴 이슈와 DHH 논란 등이 일부 강경한 행동에 영향을 미쳤겠지만, 이 사건의 직접적 원인은 아님
    • 여러 줄을 읽고 나름 추측해보면 다음과 같은 흐름임: 1) RubyGems 일부 통제권을 가진 사람들이 DHH를 배제하려고 시도했음 2) DHH 측과 가까운 세력이 이들을 RubyGems에서 내보냄 3) 모두 각자 자신의 행동을 '좋은 엔지니어링' 명분으로 정당화하고 있음, 결국 왕좌의 게임처럼 "이기거나, 지거나"인 상황임
    • 일부 단체들은 DHH의 태도 문제와 공급망 보안 우려 등으로 펀딩을 철회했다고 들음, Shopify는 핵심 의존성을 위해 직접 나서서 주도권을 가져온 것임
  • 공급망 보안을 강화한다는 명분으로 RubyGems.org, RubyGems, Bundler의 관리자 접근을 안전하게 관리하겠다 주장했지만, 실제로는 내부적 분열이 곧 악의적 공급망 공격으로까지 이어지는 바람직하지 않은 상황이었다고 봄
    • 구체적으로 어떤 악의적 행위가 있었는지 궁금함, 악성 코드가 실제로 삽입되었는지 등의 사실관계가 궁금함
  • 이렇게 잘 정리된 글은 기대하지 않았음, Ruby 커뮤니티는 예전부터 내부 갈등이 있어왔지만, 이번 사건에서 신뢰와 연결이 무너지는 짧은 시야의 파괴가 아쉬움
    • 만약 지금의 Ruby가 “자기 자신을 갉아먹는 상태”라면, 앞으로도 계속 그렇게 갉아먹기를 바람
    • 왜 "자기 자신을 갉아먹는" 상황이 되었는지 궁금함
    • Ruby 커뮤니티가 초창기부터 내부갈등이 심했다는 주장은 동의하기 어려움, 초기 Ruby 커뮤니티는 훌륭했음
    • 기사 내용이 너무 산만하고, 어떤 부분은 디테일이 과하고, 또 어떤 부분은 중요 내용이 빠져 전체 맥락을 따라잡기 어려움, Ruby Central 사태가 큰 혼란이었던 점과 유지보수자들이 더 잘 대우받았어야 한다는 점에는 동의하지만, 저자가 문화 전쟁 등 중요 이슈를 조사하지 않은 게 아쉬움
  • 왜 Samuel Giddins와 André Arko가 제거 대상으로 지목되었는지, 무슨 문제가 있었는지 궁금함, 기사 내용을 보면 Shopify가 원해서 그렇게 된 것 같이 보이지만 정확한 이유가 궁금함
    • 기사에서 관련된 내용이 여기 설명되어 있음
  • Ruby Central이 RubyGems 코드 레포와 젬을 통제하려 했다는 내용이 이해되지 않음, Ruby Central이 내 GitHub에 마음대로 권한을 행사할 수 있는 구조가 아니지 않은가, 혹시 Ruby Central 계정이나 조직 계정 아래에 있었던 것인가?
    • 글에서도 명시했듯이, 한 유지보수자(HSBT)가 Marty를 GitHub 계정 오너로 초대했고, 이는 기존 합의 없이 일어난 일임
    • "9월 9일, HSBT..." 부분에서 기존 RubyGems 유지보수자가 새 유저를 오너로 추가했다가 대부분을 원복함, 그러나 한 명의 신규 유저가 RubyGems GitHub 조직의 오너로 남아있었고, 그 덕분에 이후 Ruby Central이 여러 가지를 할 수 있게 됨
    • RubyGems 조직이 이름을 Ruby Central로 바꾼 것으로 들림
  • GitHub 조직 차원에서 리스크가 싫다면 애초에 그러한 구조에 들어가지 않는 게 현명함, 유지보수자가 조직에 들어가더라도 내 레포는 최종적으로 내가 완전한 제어권을 갖고 필요하면 언제든지 빼올 수 있는 기능이 GitHub에 꼭 필요하다고 느낌
  • 관련 최근 논의들도 존재함
  • Ruby Central이 소스코드를 소유하고 있지 않고 서비스만 운영하는 것으로 아는데, 그럼 GitHub 계정이나 레포는 누가 소유했던 것인지, 누가 처음 만들었는지 궁금함
    • Ruby Central을 만든 사람들이 초창기 RubyGems도 만들었던 것으로 기억함(David Black, Chad Fowler 등), 시간이 오래되어 현재의 논쟁과는 큰 상관이 없을 수도 있음
  • 이 모든 논란이 잘 해결되길 바람, Oracle이 Sun Microsystems를 인수하면서 커뮤니티와 유지보수자들에게 미친 영향이 생각남