From 9c7ff92cd825a591bfb568adde86547039a6aecf Mon Sep 17 00:00:00 2001 From: lauragift21 Date: Fri, 6 Jun 2025 14:27:37 +0200 Subject: [PATCH 1/4] Publish May 2025 RubyGems Updates --- _posts/2025-06-06-may-rubygems-updates.md | 84 +++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 _posts/2025-06-06-may-rubygems-updates.md diff --git a/_posts/2025-06-06-may-rubygems-updates.md b/_posts/2025-06-06-may-rubygems-updates.md new file mode 100644 index 0000000..ddeec8b --- /dev/null +++ b/_posts/2025-06-06-may-rubygems-updates.md @@ -0,0 +1,84 @@ +--- +title: May 2025 RubyGems Updates +layout: post +author: Gift Egwuenu +author_email: laurandidi21@gmail.com +--- + +Welcome to the RubyGems monthly update! As part of our efforts at Ruby Central, we publish a recap of the work that we’ve done the previous month. Read on to find out what updates were made to RubyGems and RubyGems.org in May. + +## RubyGems News + +In May, we released RubyGems [3.6.9](https://github.com/rubygems/rubygems/blob/master/CHANGELOG.md#369--2025-05-13) and Bundler [2.6.9](https://github.com/rubygems/rubygems/blob/master/bundler/CHANGELOG.md#269-may-13-2025). 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](https://github.com/rubygems/rubygems/pull/8665), [adding SSL troubleshooting to `bundle doctor`](https://github.com/rubygems/rubygems/pull/8624), [printing WebAuthn authentication links on a separate line for easier access](https://github.com/rubygems/rubygems/pull/8663), [adding an `mtime` argument to `Gem::Package::TarWriter#add_file`](https://github.com/rubygems/rubygems/pull/8673), and [removing the unnecessary `shellwords` autoload](https://github.com/rubygems/rubygems/pull/8644). + +We also made substantial progress on the upcoming **Bundler 4** release. We're planning to introduce an environment variable or CLI flag that lets users **opt in to upcoming functionality** and share feedback ahead of the final release. + +Another important accomplishment from the team this month include: + +**Improved Support for Precompiled Binaries** + +- This month, we laid foundational work toward bringing Python-style **wheels** to RubyGem, aimed at improving the overall 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](http://rubygems.org/) reflect a strong commitment to improving user experience, enhancing security, and modernizing the platform. Sponsored hosting for [RubyGems.org](http://rubygems.org/) in May was provided by [AWS](https://aws.amazon.com/?ref=rubycentral.org), [Fastly](https://www.fastly.com/?ref=rubycentral.org) and [Datadog](https://www.datadoghq.com/?ref=rubycentral.org). + +[RubyGems.org](http://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-crystalbal](https://rubygems.org/gems/gitlab-crystalball/)l` (gem inspired by [Predicting Test Failures](https://tenderlovemaking.com/2015/02/13/predicting-test-failues.html#) post by top [RubyGems.org](http://rubygems.org/) maintainer [tenderlove](https://rubygems.org/profiles/tenderlove)), a new gem published on May 8th, already reaching 785,000 downloads in its debut month! + +**Ruby Usage Stats 2024-2025** + +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 given month, not only downloads of Bundler gem as in previous month* + +The following are highlights of what the team worked on this month: + +**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. +- Namespacing helps avoid **name conflicts** between libraries that define the same modules or classes, and prevents **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. + +## Thank you + +A huge thank you to all the contributors to RubyGems and [RubyGems.org](http://rubygems.org/) this month! We deeply appreciate your support and dedication. + +### Contributors to RubyGems: + +- [@deivid-rodriguez](https://github.com/deivid-rodriguez) David Rodríguez +- [@duckinator](https://github.com/duckinator) Ellen Marie Dash +- [@hsbt](https://github.com/hsbt) Hiroshi Shibata +- [@jbampton](https://github.com/jbampton) John Bampton +- [@larouxn](https://github.com/larouxn) Nicholas La Roux +- [@martinemde](https://github.com/martinemde) Martin Emde +- [@matthewhively](https://github.com/matthewhively) Matthew Hively +- [@nobu](https://github.com/nobu) Nobuyoshi Nakada +- [@ntkme](https://github.com/ntkme) なつき +- [@ntl](https://github.com/ntl) Nathan Ladd +- [@rwstauner](https://github.com/rwstauner) Randy Stauner +- [@segiddins](https://github.com/segiddins) Samuel Giddins +- [@simi](https://github.com/simi) Josef Šimánek +- [@tangrufus](https://github.com/tangrufus) Tang Rufus +- [@thatrobotdev](https://github.com/thatrobotdev) James Kerrane +- [@unasuke](https://github.com/unasuke) Yusuke Nakamura +- [@voxik](https://github.com/voxik) Vít Ondruch +- [@antoinem](https://github.com/antoinem) Antoine Marguerie +- [@woodruffw](https://github.com/woodruffw) William Woodruff + +### Contributors to [RubyGems.org](http://rubygems.org/): + +- [@colby-swandale](https://github.com/colby-swandale) Colby Swandale +- [@hsbt](https://github.com/hsbt) Hiroshi Shibata +- [@mghaught](https://github.com/mghaught) Marty Haught +- [@segiddins](https://github.com/segiddins) Samuel Giddins +- [@simi](https://github.com/simi) Josef Šimánek + +*If we missed you, please let us know so we can include you in our shout out!* + +--- +Learn more about contributing to RubyGems by visiting the RubyGems Contributing Guide. We welcome all kinds of contributions, including bug fixes, feature implementation, writing and updating documentation, and bug triage. From 228c2dbbbd8e0bbf83edcf9e309bdc3d29c9a192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20=C5=A0im=C3=A1nek?= Date: Wed, 11 Jun 2025 01:36:28 +0200 Subject: [PATCH 2/4] Update links, text and add versions table. --- _posts/2025-06-06-may-rubygems-updates.md | 32 ++++++++++++++++++----- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/_posts/2025-06-06-may-rubygems-updates.md b/_posts/2025-06-06-may-rubygems-updates.md index ddeec8b..71daf02 100644 --- a/_posts/2025-06-06-may-rubygems-updates.md +++ b/_posts/2025-06-06-may-rubygems-updates.md @@ -27,22 +27,42 @@ Another important accomplishment from the team this month include: The updates made this month to [RubyGems.org](http://rubygems.org/) reflect a strong commitment to improving user experience, enhancing security, and modernizing the platform. Sponsored hosting for [RubyGems.org](http://rubygems.org/) in May was provided by [AWS](https://aws.amazon.com/?ref=rubycentral.org), [Fastly](https://www.fastly.com/?ref=rubycentral.org) and [Datadog](https://www.datadoghq.com/?ref=rubycentral.org). -[RubyGems.org](http://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-crystalbal](https://rubygems.org/gems/gitlab-crystalball/)l` (gem inspired by [Predicting Test Failures](https://tenderlovemaking.com/2015/02/13/predicting-test-failues.html#) post by top [RubyGems.org](http://rubygems.org/) maintainer [tenderlove](https://rubygems.org/profiles/tenderlove)), a new gem published on May 8th, already reaching 785,000 downloads in its debut month! +[RubyGems.org](http://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-crystalbal](https://rubygems.org/gems/gitlab-crystalball/) (gem inspired by [Predicting Test Failures](https://tenderlovemaking.com/2015/02/13/predicting-test-failues.html#) post by top [RubyGems.org](http://rubygems.org/) maintainer [tenderlove](https://rubygems.org/profiles/tenderlove), revived by [GitLab](https://gitlab.com/)), a new gem published on May 8th, already reaching 785,000 downloads in its debut month! **Ruby Usage Stats 2024-2025** -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. +Ruby version usage continues to trend steadily toward modern releases. In May 2025, Ruby 3.3 became trending, 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 given month, not only downloads of Bundler gem as in previous month* +*Note: These numbers represent all downloads in given month, not only downloads of Bundler gem as in previous monthly summary.* -The following are highlights of what the team worked on this month: +| 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 news **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**. +- A new **experimental namespacing** feature [has been introduced in Ruby master](https://bugs.ruby-lang.org/issues/21311), 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. - Namespacing helps avoid **name conflicts** between libraries that define the same modules or classes, and prevents **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. +- The feature opens the door for safer, more modular Ruby applications. ## Thank you From 4596986a42bf6dce3bf0595a234b8ee37e47c564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20=C5=A0im=C3=A1nek?= Date: Wed, 11 Jun 2025 21:51:15 +0200 Subject: [PATCH 3/4] Add code for namespacing Ruby feature. --- _posts/2025-06-06-may-rubygems-updates.md | 33 ++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/_posts/2025-06-06-may-rubygems-updates.md b/_posts/2025-06-06-may-rubygems-updates.md index 71daf02..bd33805 100644 --- a/_posts/2025-06-06-may-rubygems-updates.md +++ b/_posts/2025-06-06-may-rubygems-updates.md @@ -55,7 +55,7 @@ Ruby version usage continues to trend steadily toward modern releases. In May 20 | *(unknown)* | 1.21% | 1.10% | 2.42% | Missing user agent info | -## Ruby news +## Interesting Ruby news **Experimental Namespacing Lands in Ruby Master** @@ -63,6 +63,37 @@ Ruby version usage continues to trend steadily toward modern releases. In May 20 - 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. - Namespacing helps avoid **name conflicts** between libraries that define the same modules or classes, and prevents **unintended sharing of global objects**. - The feature opens the door for safer, more modular Ruby applications. +- Join the discussions (for example [the one about feature final name](https://bugs.ruby-lang.org/issues/21385)) and help shaping the future of Ruby! + +```ruby +# app1.rb +PORT = 2048 +class App + def self.port = ::PORT +end +``` + +```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 From 62e4d7f97c744ba7de796c4acd351e13361f533b Mon Sep 17 00:00:00 2001 From: lauragift21 Date: Mon, 16 Jun 2025 14:08:55 +0200 Subject: [PATCH 4/4] Update Monthly RubyGems Update --- ....md => 2025-06-16-may-rubygems-updates.md} | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) rename _posts/{2025-06-06-may-rubygems-updates.md => 2025-06-16-may-rubygems-updates.md} (75%) diff --git a/_posts/2025-06-06-may-rubygems-updates.md b/_posts/2025-06-16-may-rubygems-updates.md similarity index 75% rename from _posts/2025-06-06-may-rubygems-updates.md rename to _posts/2025-06-16-may-rubygems-updates.md index bd33805..dccc9ec 100644 --- a/_posts/2025-06-06-may-rubygems-updates.md +++ b/_posts/2025-06-16-may-rubygems-updates.md @@ -13,28 +13,23 @@ In May, we released RubyGems [3.6.9](https://github.com/rubygems/rubygems/blob/m Notable improvements include [fixing the `doctor` command’s parsing of `otool` output](https://github.com/rubygems/rubygems/pull/8665), [adding SSL troubleshooting to `bundle doctor`](https://github.com/rubygems/rubygems/pull/8624), [printing WebAuthn authentication links on a separate line for easier access](https://github.com/rubygems/rubygems/pull/8663), [adding an `mtime` argument to `Gem::Package::TarWriter#add_file`](https://github.com/rubygems/rubygems/pull/8673), and [removing the unnecessary `shellwords` autoload](https://github.com/rubygems/rubygems/pull/8644). -We also made substantial progress on the upcoming **Bundler 4** release. We're planning to introduce an environment variable or CLI flag that lets users **opt in to upcoming functionality** and share feedback ahead of the final release. +We also made substantial progress on the upcoming Bundler 4 release. We're planning to introduce an environment variable or CLI flag that lets users opt in to upcoming functionality and share feedback ahead of the final release. -Another important accomplishment from the team this month include: +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 RubyGem, aimed at improving the overall 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. +**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](http://rubygems.org/) reflect a strong commitment to improving user experience, enhancing security, and modernizing the platform. Sponsored hosting for [RubyGems.org](http://rubygems.org/) in May was provided by [AWS](https://aws.amazon.com/?ref=rubycentral.org), [Fastly](https://www.fastly.com/?ref=rubycentral.org) and [Datadog](https://www.datadoghq.com/?ref=rubycentral.org). -[RubyGems.org](http://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-crystalbal](https://rubygems.org/gems/gitlab-crystalball/) (gem inspired by [Predicting Test Failures](https://tenderlovemaking.com/2015/02/13/predicting-test-failues.html#) post by top [RubyGems.org](http://rubygems.org/) maintainer [tenderlove](https://rubygems.org/profiles/tenderlove), revived by [GitLab](https://gitlab.com/)), a new gem published on May 8th, already reaching 785,000 downloads in its debut month! +[RubyGems.org](http://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-crystalbal](https://rubygems.org/gems/gitlab-crystalball/)l` (a gem inspired by a [Predicting Test Failures](https://tenderlovemaking.com/2015/02/13/predicting-test-failues.html#) post by top Ruby and Rails contributor [tenderlove](https://rubygems.org/profiles/tenderlove)), 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 usage continues to trend steadily toward modern releases. In May 2025, Ruby 3.3 became trending, 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 given month, not only downloads of Bundler gem as in previous monthly summary.* - | Ruby Version | May 2025 | April 2025 | May 2024 | Notes | | ------------ | -------- | ---------- | -------- | ----------------------- | | **3.4** | 9.30% | 8.12% | 0.00% | New release (Dec 2024) | @@ -54,16 +49,20 @@ Ruby version usage continues to trend steadily toward modern releases. In May 20 | **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 trending, 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 given month, not only downloads of Bundler gem as in previous monthly summary.* + +## RubyGems Ecosystem News -## Interesting Ruby news +This is where we highlight exciting updates made to Ruby infrastructure projects that support our RubyGems work. -**Experimental Namespacing Lands in Ruby Master** +**Experimental namespacing lands in Ruby Master** -- A new **experimental namespacing** feature [has been introduced in Ruby master](https://bugs.ruby-lang.org/issues/21311), allowing the creation of **virtual top-level namespaces**. +- 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. -- Namespacing helps avoid **name conflicts** between libraries that define the same modules or classes, and prevents **unintended sharing of global objects**. -- The feature opens the door for safer, more modular Ruby applications. -- Join the discussions (for example [the one about feature final name](https://bugs.ruby-lang.org/issues/21385)) and help shaping the future of Ruby! +- 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 # app1.rb @@ -120,6 +119,7 @@ A huge thank you to all the contributors to RubyGems and [RubyGems.org](http://r - [@voxik](https://github.com/voxik) Vít Ondruch - [@antoinem](https://github.com/antoinem) Antoine Marguerie - [@woodruffw](https://github.com/woodruffw) William Woodruff +- [@mperham](https://github.com/mperham) Mike Perham ### Contributors to [RubyGems.org](http://rubygems.org/):