1 pontos por GN⁺ 2025-09-24 | 2 comentários | Compartilhar no WhatsApp
  • A Ruby Central assumiu à força projetos de código aberto como Bundler e RubyGems sem o consentimento dos mantenedores existentes
  • Entre os principais fatores estão a pressão financeira da Shopify e a crise de caixa da Ruby Central, durante a qual certos mantenedores foram excluídos dos projetos
  • O processo de transferência forçada da propriedade dos repositórios no GitHub e dos gems ocorreu de forma reservada, gerando confusão e reação negativa na comunidade
  • Ruby Central e Shopify justificaram a medida enfatizando responsabilidades de segurança e infraestrutura, mas a essência do problema está na disputa de propriedade e na crise de confiança da comunidade
  • Alguns mantenedores antigos estão focando no desenvolvimento dos projetos concorrentes Spinel e rv, buscando novas respostas para o ecossistema Ruby

Visão geral

A Ruby Central recentemente assumiu de forma unilateral a propriedade e o controle de grandes projetos de código aberto, como Bundler e RubyGems, sem o consentimento dos mantenedores existentes. Nesse processo, se entrelaçaram a pressão financeira da Shopify, a crise de caixa da Ruby Central, a exclusão de mantenedores importantes e a confusão na comunidade.

Resumo dos principais acontecimentos

  • A Ruby Central estava enfrentando dificuldades financeiras, e a Sidekiq retirou seu patrocínio anual de US$ 250 mil do RailsConf por causa do convite ao DHH
  • Como resultado, a Ruby Central passou a depender fortemente da Shopify
  • A Shopify exigiu da Ruby Central a tomada total dos repositórios no GitHub e da propriedade do Bundler e do gem rubygems-update, pressionando com a retirada do patrocínio em caso de recusa
  • Durante a tomada de controle, mantenedores principais, especialmente André Arko, foram excluídos, e a transição foi forçada sem consentimento da comunidade
  • O andamento do caso e as discussões internas foram conduzidos externamente de forma rápida e reservada, deixando de fora muitos membros importantes da comunidade

Processo detalhado da tomada de controle do Bundler e RubyGems

Situação inicial

  • Em 9 de setembro, Hiroshi Shibata (HSBT) alterou o nome da organização GitHub Enterprise do RubyGems para 'Ruby Central', adicionou Marty Haught como novo owner e removeu parte das permissões dos mantenedores existentes
  • Quando essa medida passou a ser questionada, algumas permissões foram restauradas, mas a adição de Marty como owner não foi revertida

Discussão sobre a distinção entre propriedade e serviço

  • O repositório do código-fonte do RubyGems é de propriedade e gestão da comunidade
  • O RubyGems Service é um serviço de infraestrutura operado separadamente pela Ruby Central
  • Embora fosse necessário distinguir claramente esses dois conceitos, a Ruby Central os misturou e os usou como base para sustentar sua reivindicação de propriedade

Revogação de permissões e execução da tomada de controle

  • Por volta de 18 de setembro, os mantenedores existentes perderam novamente o acesso e foram excluídos das contas do GitHub, Fastly e rubygems.org
  • O conselho da Ruby Central aprovou em votação a tomada forçada dos repositórios no GitHub e da propriedade dos gems, com Marty executando a ação sozinho

Aprofundamento da dependência da Ruby Central em relação à Shopify

  • Ao convidar DHH para o RailsConf, perdeu o patrocínio anterior da Sidekiq, concentrando sua estrutura financeira na Shopify
  • Durante a Rails World, figuras e empresas centrais como Ruby Central, Rails Core, Shopify e GitHub discutiram condições para patrocínio de longo prazo, e nesse momento foram exigidas a exclusão de certos mantenedores e a transferência de propriedade
  • Mesmo dentro do conselho havia a percepção de que "a outra opção era praticamente começar a encerrar a Ruby Central"

Execução da tomada de controle e reação da comunidade

  • O conselho da Ruby Central deu a Marty autoridade para executar imediatamente a tomada de controle, e a Shopify deslocou engenheiros para fazer a rápida transição do esquema de plantão
  • Depois que Ellen tornou o caso público pela primeira vez, a Ruby Central publicou uma posição oficial usando como justificativa o "fortalecimento da segurança da cadeia de suprimentos"
  • Internamente, enfatizou-se a segurança e questões de confiabilidade pessoal, mas o ponto central era a falta de um processo legítimo de transferência de propriedade e de consenso da comunidade

Falas e controvérsias centrais

  • DHH publicou um tweet apoiando a tomada do Bundler/Gems, mas foi criticado por falta de consistência, já que no passado havia se posicionado contra um caso de tomada forçada de plugins no WordPress
  • O conselho da Ruby Central e alguns envolvidos causaram confusão ao misturar a operação da infraestrutura do RubyGems.org com a propriedade do repositório de código-fonte
  • Shun Cureton e outros afirmaram que a limitação de permissões foi temporária porque não foi possível concluir as conversas com os mantenedores a tempo. No entanto, é alta a possibilidade de exclusão permanente de alguns mantenedores antigos

Surgimento de Spinel e rv

  • André Arko, Samuel Giddins e outros ex-mantenedores do Bundler e RubyGems fundaram a nova cooperativa Spinel e iniciaram o desenvolvimento do novo gerenciador Ruby rv
  • O rv busca integrar funções amplas de gerenciamento, como gems, versões do Ruby, dependências e pré-empacotamento binário, mirando substituir várias ferramentas existentes como rvm, rbenv, bundler e rubygems
  • Em partes da Shopify e do Rails Core, Spinel e rv são vistos como uma ameaça potencial ao ecossistema Ruby centralizado

Conclusão e preocupações

  • Ainda não está claro se a Ruby Central devolverá no futuro a propriedade do Bundler e do RubyGems à comunidade
  • O fato de o conselho da Ruby Central ter realizado uma tomada forçada sem consentimento, ciente dos resultados e das alternativas, representa um golpe sério na confiança da comunidade
  • Surgem críticas à estrutura de governança vulnerável à pressão de empresas como a Shopify, além da necessidade de novas alternativas comunitárias como a Spinel

Disclosure

  • O autor trabalhou na Shopify entre 2017 e 2022

Disclaimer

  • Este resumo representa a opinião de um não especialista, com base em entrevistas com múltiplas partes interessadas e atas de reuniões. Pode conter omissões ou erros.

Changelog

  • 23 de setembro de 2025: removidos alguns nomes de participantes da Rails World, adicionada uma citação de DHH relacionada ao WordPress

2 comentários

 
click 2025-09-24

No fim das contas, a causa fundamental é o DHH?

 
GN⁺ 2025-09-24
Opiniões do Hacker News
  • Fiquei surpreso ao saber que a Sidekiq retirou seu patrocínio anual de US$ 250.000 para a Ruby Central, porque a Sidekiq (na verdade, a ContribSys) é uma empresa de uma pessoa só, operada apenas por Mike Perham; em uma entrevista de alguns anos atrás, Mike dizia que faturava US$ 1M por ano sem funcionários, e a estrutura nem exigia operação de servidores separada; segundo um podcast de 2023, hoje ele estaria chegando perto de US$ 10M por ano sozinho, e isso me parece uma vida incrível para um desenvolvedor fundador solo
    • Mike é realmente uma pessoa excelente, e a comunidade tem muita sorte só pelo fato de ele existir; eu não sabia qual era o valor do patrocínio, mas só pelo fato de ele não fazer propaganda nem da doação nem da retirada já dá para ver que é alguém de princípios
  • O contexto foi bem explicado, mas ainda não entendo direito o "porquê" disso ter acontecido; a Shopify sempre contribuiu e patrocinou bastante Ruby e Rails, então antes eu não via isso de forma negativa
    • Lendo os comentários, não entendo por que existe tanto medo de a Shopify assumir um papel maior; ela é contribuidora central do Ruby há muito tempo, e embora eu não concorde com as ações deste caso, é difícil enxergar intenção maliciosa neste artigo
    • Parece uma combinação de boas intenções, mal-entendidos e falta de comunicação; a Shopify queria um controle de acesso melhor para reduzir o risco de ataques à cadeia de suprimentos e melhorar a governança, então definiu um prazo; os mantenedores de meio período empurraram isso até o último momento e depois, sem se comunicar direito nem chegar a um acordo adequado, usaram sua influência para assumir a manutenção, o que pegou os mantenedores existentes de surpresa e aumentou ainda mais a confusão; questões envolvendo ferramentas concorrentes e a controvérsia do DHH podem ter influenciado algumas ações mais duras, mas não são a causa direta deste caso
    • Lendo várias linhas e fazendo minha própria suposição, o fluxo parece ser o seguinte: 1) pessoas com algum controle sobre o RubyGems tentaram excluir o DHH 2) um grupo próximo ao lado do DHH expulsou essas pessoas do RubyGems 3) todos estão justificando as próprias ações com a bandeira de "boa engenharia"; no fim, virou algo tipo Game of Thrones, em que "ou você vence, ou perde"
    • Ouvi dizer que alguns grupos retiraram financiamento por causa da postura do DHH e de preocupações com segurança da cadeia de suprimentos; a Shopify então interveio diretamente para assumir o controle de uma dependência essencial
  • Com o argumento de fortalecer a segurança da cadeia de suprimentos, alegaram que fariam uma gestão segura do acesso administrativo ao RubyGems.org, RubyGems e Bundler, mas na prática isso acabou se tornando uma situação indesejável em que divisões internas poderiam evoluir até para um ataque malicioso à cadeia de suprimentos
    • Gostaria de saber especificamente que atos maliciosos houve; quero entender os fatos, como por exemplo se código malicioso chegou mesmo a ser inserido
  • Eu não esperava um texto tão bem organizado; a comunidade Ruby já teve conflitos internos no passado, mas é triste ver essa destruição de curto prazo em que confiança e conexões se rompem neste caso
    • Se o Ruby de hoje está em um “estado de se devorar”, então espero que continue se devorando no futuro também
    • Fico curioso para saber por que isso virou uma situação de "se devorar"
    • Tenho dificuldade em concordar com a afirmação de que a comunidade Ruby teve conflitos internos tão fortes desde o começo; a comunidade Ruby do início era excelente
    • O artigo é disperso demais; em algumas partes há detalhes em excesso, em outras faltam pontos importantes, então fica difícil acompanhar o contexto geral; concordo que a situação da Ruby Central foi um grande caos e que os mantenedores mereciam ter sido tratados melhor, mas é uma pena que o autor não tenha investigado questões importantes como a guerra cultural
  • Gostaria de saber por que Samuel Giddins e André Arko foram apontados para remoção e qual foi exatamente o problema; pelo artigo, parece que isso aconteceu porque a Shopify quis, mas queria entender a razão exata
    • O artigo explica o conteúdo relacionado aqui
  • Não entendo a parte de que a Ruby Central tentou controlar o repositório de código e os gems do RubyGems; a Ruby Central não é uma estrutura que possa exercer autoridade arbitrariamente sobre o meu GitHub, certo? Será que estava sob uma conta da Ruby Central ou uma conta de organização?
    • Como o texto também deixa claro, um mantenedor (HSBT) convidou Marty para ser owner da conta no GitHub, e isso aconteceu sem o consenso anterior existente
    • Na parte "9 de setembro, HSBT...", um mantenedor existente do RubyGems adicionou um novo usuário como owner e depois reverteu a maior parte disso; porém, um novo usuário permaneceu como owner da organização GitHub do RubyGems, e foi isso que depois permitiu à Ruby Central fazer várias coisas
    • Pelo que entendi, a organização RubyGems mudou de nome para Ruby Central
  • Se o risco no nível da organização do GitHub é algo indesejável, o mais sensato é nem entrar numa estrutura dessas desde o começo; sinto que o GitHub realmente deveria ter um recurso em que, mesmo entrando numa organização, meu repositório continue sob meu controle total em última instância e eu possa retirá-lo de lá quando quiser
  • Também existem discussões recentes relacionadas
  • Pelo que eu sei, a Ruby Central não é proprietária do código-fonte e apenas opera o serviço; então fico curioso sobre quem era o dono da conta do GitHub ou do repositório, e quem os criou originalmente
    • Pelo que me lembro, as pessoas que criaram a Ruby Central também criaram o RubyGems no início (David Black, Chad Fowler etc.); faz tanto tempo que talvez isso não tenha muita relação com a controvérsia atual
  • Espero que toda essa polêmica seja resolvida da melhor forma; isso me lembra o impacto que a aquisição da Sun Microsystems pela Oracle teve sobre a comunidade e os mantenedores