1 puntos por GN⁺ 2025-09-24 | 2 comentarios | Compartir por WhatsApp
  • Ruby Central tomó control de proyectos de código abierto como Bundler y RubyGems sin el consentimiento de sus mantenedores existentes
  • Entre los principales antecedentes están la presión financiera de Shopify y la falta de fondos de Ruby Central, proceso en el que ciertos mantenedores fueron excluidos de los proyectos
  • El proceso de transferencia forzada de repositorios de GitHub y propiedad de gems se realizó de forma privada, generando confusión y rechazo en la comunidad
  • Ruby Central y Shopify lo justificaron enfatizando la responsabilidad sobre seguridad e infraestructura, pero el problema de fondo es la propiedad real y la crisis de confianza de la comunidad
  • Algunos mantenedores previos están concentrándose en desarrollar proyectos competidores, Spinel y rv, mientras buscan nuevas respuestas para el ecosistema Ruby

Resumen

Ruby Central recientemente tomó de forma unilateral la propiedad y el control de importantes proyectos de código abierto como Bundler y RubyGems sin el consentimiento de los mantenedores existentes. En este proceso se entrelazan la presión financiera de Shopify, la falta de fondos de Ruby Central, la exclusión de mantenedores clave y la confusión dentro de la comunidad.

Resumen de los hechos principales

  • Ruby Central estaba atravesando dificultades financieras, y Sidekiq retiró su patrocinio anual de $250,000 de RailsConf debido a la invitación de DHH
  • Como resultado, Ruby Central pasó a depender fuertemente de Shopify
  • Shopify exigió a Ruby Central la toma total de control de los repositorios de GitHub y de la propiedad de las gems Bundler y rubygems-update, presionando con retirar el patrocinio en caso de no cumplir
  • Durante la toma de control, se excluyó a mantenedores clave, especialmente André Arko, y el cambio se impuso sin consentimiento de la comunidad
  • El desarrollo del caso y las discusiones internas se manejaron con rapidez y de forma no pública, dejando fuera a gran parte de los miembros importantes de la comunidad

Proceso detallado de la toma de control de Bundler y RubyGems

Situación inicial

  • El 9 de septiembre, Hiroshi Shibata (HSBT) cambió el nombre de RubyGems GitHub Enterprise a 'Ruby Central', agregó a Marty Haught como nuevo owner y retiró parcialmente los permisos de mantenedores existentes
  • Cuando esta medida fue señalada como problemática, algunos permisos fueron restaurados, pero la incorporación de Marty como owner no se revirtió

Discusión sobre la diferencia entre propiedad y servicio

  • El repositorio del código fuente de RubyGems es propiedad y gestión de la comunidad
  • RubyGems Service es un servicio de infraestructura operado por separado por Ruby Central
  • Aunque era necesario distinguir claramente ambos conceptos, Ruby Central los mezcló y los usó como base para reclamar la propiedad

Retiro de permisos y ejecución de la toma de control

  • Alrededor del 18 de septiembre, los mantenedores existentes volvieron a perder acceso y fueron excluidos de las cuentas de GitHub, Fastly y rubygems.org
  • La junta directiva de Ruby Central aprobó por votación la toma forzada de los repositorios de GitHub y la propiedad de las gems, y Marty la ejecutó por su cuenta

Profundización de la dependencia de Ruby Central respecto de Shopify

  • Tras invitar a DHH a RailsConf, perdió el patrocinio existente de Sidekiq, y su estructura financiera quedó concentrada en Shopify
  • Durante Rails World, figuras y empresas clave como Ruby Central, Rails Core, Shopify y GitHub discutieron las condiciones de patrocinio a largo plazo, y en ese momento se exigieron condiciones como la exclusión de ciertos mantenedores y la transferencia de propiedad
  • Incluso dentro de la junta existía la percepción de que "la otra opción equivalía a empezar el cierre de Ruby Central"

Ejecución de la toma de control y reacción de la comunidad

  • La junta de Ruby Central otorgó a Marty autoridad para ejecutar la toma de control de inmediato, y Shopify asignó ingenieros para cambiar rápidamente el sistema de guardias on-call
  • Después de que Ellen revelara primero el hecho, Ruby Central publicó una postura oficial justificándola con el argumento de "reforzar la seguridad de la cadena de suministro"
  • Internamente se enfatizaron problemas de seguridad y confianza personal, pero en la práctica el núcleo del problema fue la falta de un proceso legítimo de transferencia de propiedad y de consenso comunitario

Declaraciones de figuras clave y puntos en disputa

  • DHH publicó un tuit en apoyo a la toma de control de Bundler/Gems, pero antes había expresado una postura contraria en un caso de toma forzada de plugins de WordPress, lo que llevó a cuestionamientos sobre su falta de consistencia
  • La junta de Ruby Central y algunas personas relacionadas generaron confusión al mezclar la operación de la infraestructura de RubyGems.org con la propiedad de los repositorios del código fuente
  • Shun Cureton y otros señalaron que la limitación de permisos fue temporal porque no se pudo coordinar a tiempo con los mantenedores. Sin embargo, es alta la posibilidad de exclusión permanente de algunos mantenedores anteriores

Aparición de Spinel y rv

  • André Arko, Samuel Giddins y otros, antes mantenedores de Bundler y RubyGems, fundaron la nueva cooperativa Spinel y comenzaron el desarrollo de una nueva herramienta de gestión de Ruby llamada rv
  • rv busca integrar funciones amplias de gestión de gems, versiones de Ruby, dependencias y preempaquetado binario, con la intención de reemplazar herramientas existentes como rvm, rbenv, bundler y rubygems
  • En algunos sectores de Shopify y Rails Core, Spinel y rv son percibidos como una amenaza potencial para el ecosistema centralizado de Ruby

Conclusión y preocupaciones

  • No está claro si Ruby Central devolverá en el futuro la propiedad de Bundler y RubyGems a la comunidad
  • El hecho de que la junta de Ruby Central llevara adelante una toma forzada sin consentimiento, aun con suficiente conciencia de los resultados y las alternativas, representa un golpe grave a la confianza de la comunidad
  • Se señala una estructura de gobernanza vulnerable a la presión de empresas como Shopify, y se plantea la necesidad de nuevas alternativas comunitarias como Spinel

Disclosure

  • El autor trabajó en Shopify entre 2017 y 2022

Disclaimer

  • Este resumen fue elaborado a partir de entrevistas con múltiples partes interesadas y actas de reuniones, y representa la opinión de una persona no especialista. Puede contener omisiones o errores.

Changelog

  • 23 de septiembre de 2025: se eliminaron algunos nombres de asistentes a Rails World y se añadió una cita de DHH relacionada con WordPress

2 comentarios

 
click 2025-09-24

Entonces, ¿la causa de fondo al final es DHH?

 
GN⁺ 2025-09-24
Comentarios de Hacker News
  • Me sorprende mucho enterarme de que Sidekiq retiró su patrocinio anual de $250,000 a Ruby Central, porque Sidekiq (en realidad ContribSys) es una empresa de una sola persona operada únicamente por Mike Perham; en una entrevista de hace algunos años, Mike decía que ganaba $1M al año sin empleados y con una estructura que ni siquiera requería operar servidores por separado; según un podcast de 2023, ahora genera casi $10M al año él solo, y me parece una vida increíble para un desarrollador fundador solitario
    • Mike es realmente una gran persona, y la comunidad tiene mucha suerte simplemente por contar con él; no sabía de cuánto era el patrocinio, pero el hecho de que no publicite ni sus donaciones ni su retiro deja claro que es alguien de principios
  • La explicación del contexto está bien hecha, pero aun así sigo sin entender bien ‘por qué’ pasó esto; Shopify siempre ha contribuido y patrocinado bastante a Ruby y Rails, así que antes no lo veía de forma negativa
    • Leyendo los comentarios, no entiendo por qué hay tanto miedo a que Shopify asuma un rol más grande; ha sido un contribuidor central de Ruby durante mucho tiempo, y aunque no estoy de acuerdo con cómo actuó en este caso, es difícil detectar una intención maliciosa en este artículo
    • Parece una combinación de buenas intenciones, malentendidos y falta de comunicación; Shopify quería un mejor control de acceso para reducir el riesgo de ataques a la cadena de suministro y fijó una fecha límite para mejorar la gobernanza; los mantenedores de medio tiempo lo dejaron hasta el último momento y luego, sin comunicarse bien ni llegar a un acuerdo adecuado, ejercieron influencia para tomar el mantenimiento, lo que tomó por sorpresa a los mantenedores existentes y aumentó aún más la confusión; es posible que los problemas con herramientas competidoras y la controversia con DHH hayan influido en algunas acciones más duras, pero no son la causa directa de este incidente
    • Leyendo entre líneas y haciendo mi propia suposición, la secuencia sería algo así: 1) personas con cierto control sobre RubyGems intentaron excluir a DHH 2) un grupo cercano al lado de DHH expulsó a esas personas de RubyGems 3) todos están justificando sus acciones bajo el argumento de “buena ingeniería”; al final, es una situación tipo Juego de Tronos de “o ganas, o pierdes”
    • Escuché que algunos grupos retiraron su financiamiento por problemas con la actitud de DHH y preocupaciones sobre la seguridad de la cadena de suministro; Shopify intervino directamente para tomar el control de una dependencia crítica
  • Se argumentó que se administraría de forma segura el acceso de administradores a RubyGems.org, RubyGems y Bundler con el pretexto de reforzar la seguridad de la cadena de suministro, pero en realidad me parece que la división interna derivó en una situación indeseable que incluso podría llevar a un ataque malicioso a la cadena de suministro
    • Me gustaría saber qué actos maliciosos concretos hubo; quisiera entender los hechos, por ejemplo si realmente se insertó código malicioso
  • No esperaba un texto tan bien ordenado; la comunidad Ruby ha tenido conflictos internos desde hace tiempo, pero en este caso da lástima la destrucción cortoplacista de la confianza y de los vínculos
    • Si el Ruby actual está “devorándose a sí mismo”, entonces espero que siga devorándose así en el futuro
    • Me gustaría saber por qué llegó a una situación de “devorarse a sí mismo”
    • Me cuesta estar de acuerdo con la afirmación de que la comunidad Ruby tuvo conflictos internos muy fuertes desde sus inicios; la comunidad Ruby de los primeros años era excelente
    • El artículo es demasiado disperso; en algunas partes tiene exceso de detalle y en otras omite cosas importantes, así que cuesta seguir el contexto completo; estoy de acuerdo en que la situación de Ruby Central fue un gran caos y en que los mantenedores merecían un mejor trato, pero es una pena que el autor no haya investigado temas importantes como las guerras culturales
  • Me pregunto por qué Samuel Giddins y André Arko fueron señalados para ser removidos, qué problema hubo; por lo que dice el artículo, parece que fue porque Shopify lo quiso, pero quisiera entender la razón exacta
    • El artículo explica el contenido relacionado aquí
  • No entiendo la parte donde Ruby Central habría intentado controlar el repositorio de código y las gems de RubyGems; Ruby Central no está en una posición donde pueda ejercer autoridad sobre mi GitHub como le dé la gana, ¿o sí?, ¿estaba acaso bajo una cuenta de Ruby Central o bajo una cuenta de organización?
    • Como se indica claramente en el texto, un mantenedor (HSBT) invitó a Marty como owner de la cuenta de GitHub, y eso ocurrió sin el acuerdo existente
    • En la parte de “9 de septiembre, HSBT...”, un mantenedor existente de RubyGems agregó a un nuevo usuario como owner y luego revirtió la mayor parte de eso; sin embargo, un usuario nuevo permaneció como owner de la organización de GitHub de RubyGems, y gracias a eso Ruby Central pudo hacer varias cosas después
    • Escuché que la organización de RubyGems cambió su nombre a Ruby Central
  • Si no quieres ese riesgo a nivel de organización de GitHub, lo sensato es no entrar a una estructura así desde el principio; incluso si un mantenedor entra a una organización, siento que GitHub debería tener una función para que mi repositorio siga bajo mi control total en última instancia y pueda retirarlo cuando quiera
  • También hay discusiones recientes relacionadas
  • Según entiendo, Ruby Central no posee el código fuente y solo opera el servicio; entonces me pregunto quién era dueño de la cuenta de GitHub o del repositorio, y quién lo creó originalmente
    • Recuerdo que las personas que fundaron Ruby Central también crearon RubyGems en sus inicios (David Black, Chad Fowler, etc.); ha pasado mucho tiempo, así que quizá eso no tenga mucha relación con la controversia actual
  • Espero que toda esta polémica se resuelva bien; me hace pensar en el impacto que tuvo en la comunidad y en los mantenedores cuando Oracle adquirió Sun Microsystems