1 points par GN⁺ 2025-09-24 | 2 commentaires | Partager sur WhatsApp
  • Ruby Central a pris le contrôle de projets open source comme Bundler et RubyGems sans l’accord des mainteneurs existants
  • Parmi les principaux facteurs figurent la pression financière de Shopify et les difficultés de financement de Ruby Central, avec au passage l’exclusion de certains mainteneurs du projet
  • Le transfert forcé des dépôts GitHub et de la propriété des gems s’est déroulé de manière peu publique, provoquant confusion et opposition dans la communauté
  • Ruby Central et Shopify ont justifié cela en mettant en avant la sécurité et les responsabilités d’infrastructure, mais le fond du problème concerne la propriété réelle et une crise de confiance de la communauté
  • Certains anciens mainteneurs se concentrent désormais sur le projet concurrent Spinel et le développement de rv, en cherchant une nouvelle réponse pour l’écosystème Ruby

Vue d’ensemble

Ruby Central a récemment pris unilatéralement la propriété et le contrôle de grands projets open source comme Bundler et RubyGems sans l’accord de leurs mainteneurs existants. L’affaire mêle la pression financière de Shopify, les difficultés de financement de Ruby Central, l’exclusion de mainteneurs clés et le désordre au sein de la communauté.

Résumé des principaux événements

  • Ruby Central traversait des difficultés financières, et Sidekiq a retiré son sponsoring annuel de 250 000 $ de RailsConf en raison de l’invitation de DHH
  • En conséquence, Ruby Central est devenue fortement dépendante de Shopify
  • Shopify a exigé de Ruby Central la prise de contrôle complète des dépôts GitHub ainsi que de la propriété de Bundler et du gem rubygems-update, en faisant pression par la menace d’un retrait de sponsoring en cas de refus
  • Durant le processus, des mainteneurs clés, notamment André Arko, ont été écartés, et le transfert forcé a eu lieu sans accord de la communauté
  • Le déroulement des faits et les discussions internes ont été traités rapidement et de manière non publique, excluant ainsi une grande partie des membres importants de la communauté

Détails de la prise de contrôle de Bundler et RubyGems

Situation initiale

  • Le 9 septembre, Hiroshi Shibata (HSBT) a renommé l’enterprise GitHub de RubyGems en « Ruby Central », ajouté Marty Haught comme nouveau propriétaire et retiré une partie des droits des mainteneurs existants
  • Lorsque cette mesure a été contestée, certains droits ont été restaurés, mais l’ajout de Marty comme propriétaire n’a pas été annulé

Discussion sur la distinction entre propriété et service

  • Le dépôt du code source de RubyGems est la propriété de la communauté et géré par elle
  • RubyGems Service est un service d’infrastructure exploité séparément par Ruby Central
  • Bien qu’il ait été nécessaire de distinguer clairement ces deux notions, Ruby Central les a mêlées pour s’en servir comme fondement de sa revendication de propriété

Retrait des accès et exécution de la prise de contrôle

  • Aux alentours du 18 septembre, les mainteneurs existants ont de nouveau perdu leurs accès et ont été exclus des comptes GitHub, Fastly et rubygems.org
  • Le conseil d’administration de Ruby Central a voté la prise de contrôle forcée des dépôts GitHub et de la propriété des gems, et Marty l’a exécutée seul

Renforcement de la dépendance de Ruby Central à Shopify

  • En invitant DHH à RailsConf, Ruby Central a perdu un sponsoring existant de Sidekiq, ce qui a concentré sa structure financière autour de Shopify
  • Pendant Rails World, des discussions ont eu lieu entre Ruby Central, Rails Core, Shopify, Github et d’autres figures ou entreprises majeures sur les conditions d’un sponsoring de long terme, et c’est à ce moment qu’ont été exigées l’exclusion de certains mainteneurs et la cession de propriété
  • Même au sein du conseil, certains estimaient que « l’autre option revenait à commencer la fermeture de Ruby Central »

Mise en œuvre de la prise de contrôle et réaction de la communauté

  • Le conseil d’administration de Ruby Central a accordé à Marty le pouvoir d’exécuter immédiatement la prise de contrôle, et Shopify a mobilisé des ingénieurs pour faire basculer rapidement l’organisation d’astreinte
  • Après qu’Ellen a rendu l’affaire publique en premier, Ruby Central a publié une déclaration officielle présentant le renforcement de la sécurité de la supply chain comme justification
  • En interne, l’accent a été mis sur des questions de sécurité et de confiance humaine, mais le problème de fond restait l’absence de procédure légitime de transfert de propriété et de consensus communautaire

Déclarations des principaux acteurs et points de friction

  • DHH a publié un tweet soutenant la prise de contrôle de Bundler/Gems, mais il avait auparavant adopté la position inverse lors de l’affaire de la prise de contrôle forcée des plugins WordPress, ce qui lui a valu des critiques sur son manque de cohérence
  • Le conseil d’administration de Ruby Central et certains acteurs liés ont entretenu la confusion par des déclarations mélangeant l’exploitation de l’infrastructure de RubyGems.org et la propriété du dépôt de code source
  • Shun Cureton et d’autres ont expliqué qu’il s’agissait d’une limitation temporaire des droits, faute d’avoir pu consulter les mainteneurs à temps. Toutefois, l’exclusion permanente de certains anciens mainteneurs paraît probable

Apparition de Spinel et rv

  • D’anciens mainteneurs de Bundler et RubyGems, comme André Arko et Samuel Giddins, ont fondé la nouvelle coopérative Spinel et lancé le développement de rv, un nouvel outil de gestion pour Ruby
  • rv vise à intégrer un large éventail de fonctions de gestion, notamment les gems, les versions de Ruby, les dépendances et le pré-packaging binaire, avec l’objectif de remplacer plusieurs outils existants comme rvm, rbenv, bundler et rubygems
  • Chez Shopify et dans une partie de Rails Core, Spinel et rv sont perçus comme une menace potentielle pour l’écosystème Ruby centralisé

Conclusion et inquiétudes

  • Rien ne garantit que Ruby Central rendra à l’avenir à la communauté la propriété de Bundler et RubyGems
  • Le fait que le conseil d’administration de Ruby Central ait procédé à une prise de contrôle forcée sans consentement, tout en ayant pleinement conscience des conséquences et des alternatives, porte gravement atteinte à la confiance de la communauté
  • Cette affaire met en lumière une gouvernance vulnérable à la pression d’entreprises comme Shopify et souligne la nécessité de nouvelles alternatives communautaires comme Spinel

Disclosure

  • L’auteur a travaillé chez Shopify de 2017 à 2022

Disclaimer

  • Ce résumé est l’opinion non experte de son auteur, rédigée à partir d’entretiens avec de nombreuses parties prenantes et de comptes rendus de réunion. Il peut contenir des omissions ou des erreurs.

Changelog

  • 23 septembre 2025 : suppression de certains noms de participants à Rails World, ajout d’une citation de DHH concernant WordPress

2 commentaires

 
click 2025-09-24

Donc, la cause fondamentale, c’est DHH au final ?

 
GN⁺ 2025-09-24
Commentaire Hacker News
  • J’ai été très surpris d’apprendre que Sidekiq retirait son sponsor annuel de 250 000 $ à Ruby Central, car Sidekiq — ou plutôt ContribSys — est une entreprise unipersonnelle exploitée uniquement par Mike Perham. Dans une interview d’il y a quelques années, Mike expliquait qu’il gagnait 1 M$ par an sans employés, avec une structure qui ne nécessitait même pas d’exploitation serveur particulière. Selon un podcast de 2023, il générerait désormais à lui seul un chiffre d’affaires proche de 10 M$ par an. Je trouve que c’est une vie assez incroyable pour un développeur fondateur solo.
    • Mike est vraiment quelqu’un de formidable, et la communauté a beaucoup de chance de simplement l’avoir. Je ne savais pas à combien s’élevait le sponsoring, mais le simple fait qu’il ne fasse pas de publicité ni pour ses dons ni pour leur retrait montre qu’il agit selon ses principes.
  • Le contexte est bien expliqué, mais je ne comprends toujours pas vraiment pourquoi cela s’est produit. Shopify a toujours beaucoup contribué et financé Ruby et Rails, donc je n’avais jusque-là pas une vision négative de l’entreprise.
    • En lisant les commentaires, je ne comprends pas pourquoi certains ont peur de voir Shopify prendre un rôle plus important. C’est un contributeur majeur de Ruby depuis longtemps. Je ne suis pas d’accord avec sa conduite dans cette affaire, mais il est difficile de déceler une intention malveillante dans cet article.
    • On dirait un mélange de bonnes intentions, de malentendus et de manque de communication. Shopify voulait un meilleur contrôle des accès pour réduire le risque d’attaques sur la supply chain et améliorer la gouvernance, et a fixé une échéance. Les mainteneurs à temps partiel ont repoussé cela jusqu’au dernier moment, puis ont exercé leur influence pour reprendre la maintenance sans vraie communication ni véritable accord, ce qui a surpris les mainteneurs existants et accentué la confusion. Les questions autour d’outils concurrents et la controverse autour de DHH ont peut-être influencé certains comportements plus durs, mais ce n’est pas la cause directe de l’incident.
    • En lisant entre les lignes, j’en déduis à peu près la séquence suivante : 1) des personnes disposant d’un certain contrôle sur RubyGems ont tenté d’exclure DHH ; 2) un camp proche de DHH a évincé ces personnes de RubyGems ; 3) chacun justifie ses actes au nom de la « bonne ingénierie ». Au final, c’est une situation à la Game of Thrones : « gagner ou perdre ».
    • J’ai entendu dire que certaines organisations avaient retiré leur financement à cause du comportement de DHH et des inquiétudes liées à la sécurité de la supply chain. Shopify a donc pris directement l’initiative pour reprendre la main sur une dépendance critique.
  • Sous couvert de renforcer la sécurité de la supply chain, ils ont affirmé vouloir gérer de manière sûre les accès administrateur à RubyGems.org, RubyGems et Bundler, mais en réalité cela a surtout ressemblé à une situation malsaine où des divisions internes pouvaient rapidement dégénérer jusqu’à une attaque malveillante sur la supply chain.
    • Je me demande quels actes malveillants concrets il y a eu. J’aimerais connaître les faits précis, par exemple si du code malveillant a réellement été injecté.
  • Je ne m’attendais pas à un texte aussi bien structuré. La communauté Ruby a toujours eu des tensions internes, mais dans cette affaire je trouve regrettable cette destruction à courte vue de la confiance et des liens.
    • Si le Ruby actuel est en train de « se dévorer lui-même », alors j’espère qu’il continuera à le faire.
    • Je me demande pourquoi on en est arrivé à cette situation où il « se dévore lui-même ».
    • J’ai du mal à être d’accord avec l’idée que la communauté Ruby ait été très conflictuelle dès ses débuts. La première communauté Ruby était formidable.
    • L’article est trop décousu : certains passages sont excessivement détaillés, d’autres omettent des points importants, ce qui rend difficile de suivre le contexte général. Je suis d’accord pour dire que l’affaire Ruby Central a été un énorme désordre et que les mainteneurs auraient dû être mieux traités, mais je regrette que l’auteur n’ait pas enquêté sur des sujets importants comme la guerre culturelle.
  • Je me demande pourquoi Samuel Giddins et André Arko ont été désignés comme personnes à écarter, et quel était le problème exact. À lire l’article, on a l’impression que cela s’est produit parce que Shopify le voulait, mais j’aimerais connaître la raison précise.
    • L’article explique ce point ici.
  • Je ne comprends pas bien l’idée selon laquelle Ruby Central aurait tenté de contrôler le dépôt de code RubyGems et les gems. Ruby Central n’est pas censé pouvoir exercer son autorité sur mon GitHub comme bon lui semble, non ? Est-ce que c’était éventuellement sous un compte Ruby Central ou un compte d’organisation ?
    • Comme le texte le précise, un mainteneur (HSBT) a invité Marty comme owner du compte GitHub, et cela s’est produit sans accord préalable.
    • Dans le passage « Le 9 septembre, HSBT... », un mainteneur RubyGems existant a ajouté un nouvel utilisateur comme owner avant de revenir sur l’essentiel de ces changements. Mais une nouvelle personne est restée owner de l’organisation GitHub RubyGems, ce qui a ensuite permis à Ruby Central d’agir de plusieurs façons.
    • Il semble que l’organisation RubyGems ait été renommée en Ruby Central.
  • Si l’on n’aime pas les risques au niveau de l’organisation GitHub, le plus sage est de ne pas entrer dans une telle structure dès le départ. Même si un mainteneur rejoint une organisation, GitHub devrait absolument proposer un mécanisme garantissant que mon dépôt reste en dernier ressort sous mon contrôle total et que je puisse le retirer à tout moment si nécessaire.
  • Il existe aussi des discussions récentes liées au sujet
  • Il me semblait que Ruby Central ne possédait pas le code source et ne faisait qu’exploiter le service. Du coup, qui possédait le compte GitHub ou le dépôt, et qui l’avait créé au départ ?
    • Si je me souviens bien, les personnes qui ont fondé Ruby Central avaient aussi créé RubyGems au tout début (David Black, Chad Fowler, etc.). Cela remonte à longtemps, donc ce n’est peut-être pas très pertinent pour la controverse actuelle.
  • J’espère que toute cette controverse se résoudra bien. Cela me rappelle l’impact qu’a eu le rachat de Sun Microsystems par Oracle sur la communauté et les mainteneurs.