Hello, and welcome to the June newsletter. Read on for announcements about our Open Source Program and a report of the OSS work we’ve done over the past month!

As mentioned in our previous newsletters, we will now be sending out separate updates for the Open Source Program and general Ruby Central organization and community news.

You can expect our general Ruby Central newsletter (the Ruby Central README) in your inbox later this month.

Open Source Program Announcements

Marty keynotes at Baltic Ruby

We’re excited to share that our Director of Open Source, Marty Haught, spoke at Baltic Ruby, June 12-14! Marty joined a fantastic keynote lineup alongside Matz and Hanami’s Tim Riley.

In his talk, Sustained Open Source, Marty reflected on the long-standing success of Ruby and RubyGems, and explored what it will take to ensure the Ruby ecosystem thrives for decades to come. He dove into themes of sustainability, security, and reliability, particularly as conversations around open source resilience grow in response to upcoming regulations, such as the EU's Cyber Resilience Act.

📢 RubyGems.org policies update

The new RubyGems.org policies, originally March 20th announcement effect in late June. We are in the process of integrating the email feedback we received from the community over the past few weeks. Once the policies are updated, an announcement will be posted on the RubyGems blog.

These updates demonstrate our commitment to security and sustainability in the RubyGems ecosystem, enhancing clarity and transparency around our operations, data protection practices, and our dedication to ensuring a safe and respectful environment for all RubyGems users.

We want to extend a heartfelt thank you to everyone who shared feedback during the policy preview period. Your input helped us refine the policies to better serve the entire community.

If you haven’t already, we encourage you to review the finalized policies on RubyGems.org.

Thank you for being a part of the Ruby community!

RubyGems News

In May, we released RubyGems 3.6.9 and Bundler 2.6.9. These releases bring a series of enhancements and bug fixes designed to improve the overall developer experience with RubyGems.

Notable improvements include fixing the doctor command’s parsing of otool output, adding SSL troubleshooting to bundle doctor, printing WebAuthn authentication links on a separate line for easier access, adding an mtime argument to Gem::Package::TarWriter#add_file, and removing the unnecessary shellwords autoload.

We also made substantial progress on the upcoming Bundler 4 release. We plan to introduce an environment variable or CLI flag that allows users to opt in to upcoming functionality and share feedback prior to the final release.

Another important accomplishment from the team this month includes:

Improved support for precompiled binaries

  • This month, we laid foundational work toward bringing Python-style wheels to RubyGems, with the goal of enhancing the experience of both using and producing gems with native extensions.
  • Following several rounds of community feedback, the focus has shifted toward a broader vision: combining compatibility tags, sigstore attestations, and common platform build workflows (with SLSA, trusted publishing, etc.) to streamline how precompiled gems are distributed and consumed.
  • We’re actively incorporating the feedback we've received and will be sharing updated, concrete proposals for these improvements soon.

RubyGems.org News

The updates made this month to RubyGems.org reflect a strong commitment to improving user experience, enhancing security, and modernizing the platform. Sponsored hosting for RubyGems.org in May was provided by AWS, Fastly and Datadog.

RubyGems.org served 4.06 billion gems in May 2025 — up from 2.87 billion in May 2024. The busiest day was Wednesday, May 14th, with a record-breaking 193 million downloads, while the quietest was Saturday, May 31st, with 36 million. Star of the Month goes to gitlab-crystalball (a gem inspired by a Predicting Test Failures post by top Ruby and Rails contributor tenderlove, revived by GitLab) a new gem published on May 8th, which has already reaching 785,000 downloads in its debut month!

Ruby usage stats 2024-2025

| Ruby Version | May 2025 | April 2025 | May 2024 | Notes                   |
| ------------ | -------- | ---------- | -------- | ----------------------- |
| **3.4**      | 9.30%    | 8.12%      | 0.00%    | New release (Dec 2024)  |
| **3.3**      | 24.25%   | 23.46%     | 11.47%   | Trending                |
| **3.2**      | 33.10%   | 33.11%     | 24.14%   | Peak usage              |
| **3.1**      | 14.52%   | 15.76%     | 25.30%   | EOL: Mar 31, 2025       |
| **3.0**      | 3.48%    | 4.00%      | 9.92%    | EOL: Apr 23, 2024       |
| **2.7**      | 8.25%    | 8.66%      | 15.78%   | EOL: Mar 2023           |
| **2.6**      | 2.91%    | 2.84%      | 6.23%    | EOL                     |
| **2.5**      | 1.74%    | 1.70%      | 2.56%    | EOL                     |
| **2.4**      | 0.43%    | 0.40%      | 0.98%    | EOL                     |
| **2.3**      | 0.41%    | 0.43%      | 0.72%    | EOL                     |
| **2.2**      | 0.04%    | 0.04%      | 0.07%    | EOL                     |
| **2.1**      | 0.12%    | 0.11%      | 0.09%    | EOL                     |
| **2.0**      | 0.07%    | 0.07%      | 0.16%    | EOL                     |
| **1.9**      | 0.02%    | 0.02%      | 0.03%    | EOL                     |
| **1.8**      | 0.002%   | 0.002%     | 0.004%   | EOL                     |
| *(unknown)*  | 1.21%    | 1.10%      | 2.42%    | Missing user agent info |

Ruby version usage continues to trend steadily toward modern releases. In May 2025, Ruby 3.3 became the most widely used version, growing to 24.25%, while Ruby 3.4, released in December 2024, jumped to 9.3% adoption in just five months. Ruby 3.2 held stable at 33%, but its share may begin declining soon as newer versions take over. Meanwhile, Ruby 3.1, which reached end-of-life on March 31, 2025, dropped from 25.3% a year ago to 14.5%. Ruby 3.0, already EOL since April 2024, continues to decline (now 3.5%), and older Ruby 2.x versions are steadily fading as the ecosystem moves forward.

Note: These numbers represent all downloads in a given month, not only downloads of the Bundler gem as in the previous monthly summary

RubyGems Ecosystem News

This is where we highlight exciting updates made to Ruby infrastructure projects that support our RubyGems work.

Experimental namespacing lands in Ruby Master

  • A new experimental namespacing feature has been introduced in Ruby master, allowing the creation of virtual top-level namespaces.
  • This enables applications to require or load libraries in isolation from the global namespace—including .rb files and native extensions. Dependencies loaded within a namespace remain confined to it.
  • Currently Ruby has only one global shared namespace. The proposed namespacing feature will help avoid name conflicts between libraries that define the same modules or classes, and prevent unintended sharing of global objects.
  • The feature is fully compatible with libraries that use relative name resolution and opens the door for safer, more modular Ruby applications.
```ruby
# app2.rb
PORT = 4096
class App
  def self.port = ::PORT
end
```

```ruby
# main.rb
app1 = Namespace.new
app1.require('/app1.rb')

app2 = Namespace.new
app2.require('/app2.rb')

puts app1::App.port # => 2048
puts app2::App.port # => 4096

puts defined?(PORT) # => nl
```

Thank you

A huge thank you to all the contributors to RubyGems and RubyGems.org this month! We deeply appreciate your support and dedication.

Contributors to RubyGems:

Contributors to RubyGems.org:

If we missed you, please let us know so we can include you in our shout out!