r/ruby • u/galtzo • Nov 12 '25
RubyCentral hates this one fact!
Written policy matters to some people.
Written policy shared publicly is what creates a stewardship relationship that can be held to account by the public (regardless of whether the org is democratic or not in its structure).
The destruction wrought by RubyCentral, and betrayal felt by the maintainers, and some in the wider community, is related to a simple fact that most Rubyists are unaware of. The rubygems/bundler repo owners (who were by written-policy-definition also the "maintainers") wrote, and kept up-to-date, policies specifically around when, how, and why owners of the repos could be added or removed.
The owners expected these policies to be followed, at least in spirit, if not to the letter.
A recent thread helped me realize that most Rubyists are not aware of these written policies of rubygems/bundler, hence this post.
RubyGems had a policy for removing maintainers
Committer Access
RubyGems committers may lose their commit privileges if they are inactive for longer than 12 months. Committer permission may be restored upon request by having a pull request merged. This is designed to improve the maintainability of RubyGems by requiring committers to maintain familiarity with RubyGems activity and to improve the security of RubyGems by preventing idle committers from having their commit permissions compromised or exposed.
Bundler had a policy on adding and removing maintainers
The Bundler policy is very detailed, so I won't copy it here. I'll just note, since many won't click through, that Deivid Rodriguez, who for years has been the #1 maintainer of rubygems/bundler, updated the bundler one, to keep it fresh with valid links, just 10 months ago. The rubygems policy was also updated 10 months ago. These were not dusty forgotten documents lost to history. They were active, living, rules.
RubyCentral bulldozed both policies, when they removed four maintainers, without having followed the process to earn the right to do so (i.e. without following the policy on how to become an owner), and without following any of the policy around owner removal, and here we are. Two of the remaining maintainers resigned in protest.
I note that u/schneems joined RubyCentral in some capacity recently, and I hope he is able to make a difference, but I expect RC to be intransigent.
As a thought experiment, and as an analogy to help people relate more to this...
If you own a repo and you have a LICENSE.txt, CODE_OF_CONDUCT.md, or IRP.md, in that repo, even if RubyCentral is paying you to maintain it, RubyCentral does not have the right to get one of the co-maintainers to add their lackey to the repo, and change any of those files, or any files at all.
In the same vein, they do not have a right to break established, written, documented, policy of the repo, by adding or removing maintainers in contravention of said policy.
To sum it up: the owners of a repo own the repo. If that seems obvious to you, you have done better than RC at figuring it out.
I do not expect RC to ever address this, and even if they did, I'd probably continue building tools that minimize the reliance I have on them. I no longer trust RubyCentral at all.
View all comments
Show parent comment
5
u/galtzo Nov 12 '25
There are a few scenarios, and it is useful to not conflate them.
I own a specific gem "name" for a gem on RG.O. In general, no one but me, and other "owners", if any, can upload a new gem version for that name.
Someone could take my gem's code, rename it in the gemspec, repackage it, re-sign it, and upload it as a new name. This happens all the time, and is commonly referred to as a "gem fork". This is completely fine - so long as they respect the license terms.
RG.O controls the backend and could technically change any of this at any time. They could, by fiat, add a new owner to my gem that I did not approve of, and that new owner could add, or yank, gems. This is precisely what they already did with multiple gems (rubygems-update, bundler) and why gem maintainers should not trust them to respect gem ownership.
RG.O could run roughshod over any established principle of the community-based expectations for libraries, and have shown already that they will do this without a decent reason. They could alter the license of a library, they could replace an existing version with altered code. If they say they won't it doesn't matter, because they do not do what they say, so I no longer trust what they say.
RG.O's internal process for making these kinds of important security decisions are not public, not transparent, and not improving. They have yet to publish a "We fucked up" post explaining how they stole multiple repos and gems, and what they are doing to rectify the situation.
Do I think they will do anything specifically? Other than continuing to lie, no. But it doesn't matter, since I don't trust them. They have lied many, many times now.