Skip to content

Commit 3b9fb64

Browse files
authored
Merge pull request #201 from rubygems/august-2024-monthly-update
Publish August 2024 RubyGems Update
2 parents 8d72fcd + 2bfbf84 commit 3b9fb64

File tree

1 file changed

+119
-0
lines changed

1 file changed

+119
-0
lines changed
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
---
2+
title: August 2024 RubyGems Updates
3+
layout: post
4+
author: Gift Egwuenu
5+
author_email: laurandidi21@gmail.com
6+
---
7+
8+
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 August.
9+
10+
## RubyGems News
11+
12+
In August, we released RubyGems [3.5.17](https://github.com/rubygems/rubygems/blob/master/CHANGELOG.md#3517--2024-08-01) and [3.5.18](https://github.com/rubygems/rubygems/blob/master/CHANGELOG.md#3518--2024-08-26) along with Bundler [2.5.17](https://github.com/rubygems/rubygems/blob/master/bundler/CHANGELOG.md#2517-august-1-2024) and [2.5.18](https://github.com/rubygems/rubygems/blob/master/bundler/CHANGELOG.md#2518-august-26-2024). These releases bring a series of enhancements and bug fixes designed to improve the overall developer experience with RubyGems. Notable improvements include fixing an issue where [`gem uninstall <name>:<version>` would fail on shadowed default gems](https://github.com/rubygems/rubygems/pull/7949), [enabling lockfile checksums in future Bundler 3](https://github.com/rubygems/rubygems/pull/7805) even when there's no previous lockfile, and fixing an issue where `bundle update <indirect_dep>` would [fail to upgrade when versions are present in two different sources](https://github.com/rubygems/rubygems/pull/7915).
13+
14+
Some other important accomplishments from the team this month include:
15+
16+
[**Fixing an Edge Case Where Bundler Was Removing Platforms Due to Bad Indentation**](https://github.com/rubygems/rubygems/pull/7916)
17+
18+
- We resolved an issue where Bundler was removing platforms and associated gems from `Gemfile.lock` because of bad indentation.
19+
- Now, Bundler auto-fixes indentation by properly stripping whitespace, ensuring badly indented platforms are recognized and retained, which prevents broken dependencies and confusion.
20+
21+
[**Fixing a Source Dependency Confusion in `bundle update <specific_gem>`**](https://github.com/rubygems/rubygems/pull/7915)
22+
23+
- We fixed an issue where `bundle update <specific_gem>` would confuse the source of `<specific_gem>` if an old version existed on a different gem server than specified in the lockfile, allowing smoother gem updates.
24+
- The bug was due to the additional unlocked resolution not using the correct source requirements during `bundle update <specific_gem>`. The fix ensures it now uses the same source requirements as the main resolution.
25+
26+
[**Improved Developer Experience When Setting Up RubyGems With an Unsupported Ruby**](https://github.com/rubygems/rubygems/pull/7942)
27+
28+
- We added a clearer error message when an unsupported Ruby version is detected and the setup process is aborted, improving the process by preventing new developers from being discouraged by obscure errors.
29+
- This change helps people starting to develop RubyGems by immediately informing them if their Ruby version isn't supported.
30+
31+
[**Fixed `gem uninstall <gem>:<version>`** **Failing When Target Gem is Also a Default Gem**](https://github.com/rubygems/rubygems/pull/7949)
32+
33+
- We resolved an issue where `gem uninstall <gem>:<version>` would fail with a confusing error if the target gem was also a default gem, providing a smoother CLI experience.
34+
- The fix skips the default copy of the gem during uninstallation, avoiding the "double uninstall" problem.
35+
36+
[**Fixed Issues With the`--prefer-local` Flag in `bundle install`**](https://github.com/rubygems/rubygems/pull/7951)
37+
38+
- We resolved problems where the `-prefer-local` flag wasn't working effectively; it didn't fallback to remote gems when local ones didn't satisfy requirements and didn't prefer local gems for sub-dependencies.
39+
- We implemented a solution similar to how we handle prereleases: for each gem, first prefer local versions; if conflicts arise, allow remote versions for those specific gems.
40+
- This was inspired by [@gouravkhunger](https://github.com/gouravkhunger), who uses `-prefer-local` to help package Ruby for his Jekyllex project.
41+
42+
[**Helped Appraisals Maintainers Run Tests With Latest Bundler**](https://github.com/rubygems/rubygems/pull/7950)
43+
44+
- Ensured that Appraisals, a library for testing against multiple Gemfiles, [works with the latest Bundler](https://github.com/thoughtbot/appraisal/pull/229) by proposing updates and fixing a small behavior changes in Bundler 2.4 that affected them.
45+
- Appraisals is tightly coupled to Bundler internals, so it's important it remains compatible to detect potential issues in Bundler itself.
46+
47+
In August, RubyGems gained [77 new commits](https://github.com/rubygems/rubygems/compare/master@%7B2024-8-01%7D...master@%7B2024-8-31%7D) contributed by 8 authors. They were 1,163 additions and 151 deletions across 90 files.
48+
49+
## [RubyGems.org](http://rubygems.org/) News
50+
51+
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 August 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).
52+
53+
The following are highlights of what the team worked on this month:
54+
55+
[**Prevented AWS Secrets From Being Printed in Logs or Error Messages**](https://github.com/rubygems/rubygems.org/pull/4968)
56+
57+
- We modified the logging and error-handling mechanisms to ensure AWS secrets are sanitized and never outputted.
58+
- Although this issue wasn't occurring in CI, it's crucial to safeguard against future changes that might inadvertently expose sensitive information.
59+
60+
[**Renamed `#search_field`** **to Resolve a Naming Conflict With Rails Internals**](https://github.com/rubygems/rubygems.org/pull/4957)
61+
62+
- The conflict was causing the Rails info page (`/rails/info/routes`) to raise an error, hindering access to important debugging routes.
63+
- To resolve this we changed the method name to eliminate the conflict, restoring normal functionality to the Rails info page.
64+
65+
[**Fixed a Minor Inefficiency in RubyGems Controller**](https://github.com/rubygems/rubygems.org/pull/4953)
66+
67+
- The `GemNameReservation` query was being executed four times per request, leading to potential performance issues.
68+
- We refactored the controller logic to perform the `GemNameReservation` query only once per request, improving efficiency.
69+
70+
[**Fixed Broken Recovery Code Acceptance Tests**](https://github.com/rubygems/rubygems.org/pull/4950)
71+
72+
- Tests were failing due to two issues, blocking the CI pipeline. We addressed each:
73+
- *Invalid jQuery Selector Length Check*: We corrected the jQuery selector `$("#recovery-code-list").length` to properly detect the element.
74+
- *Confirmation Dialog Not Triggering on Path Change*: We adjusted the test so that changing the current path triggers the confirm dialog as expected.
75+
76+
[**Optimized API Key Expiration Process by Skipping Already Expired Keys**](https://github.com/rubygems/rubygems.org/pull/4975)
77+
78+
- The existing expiration process was inefficient because it looped through all API keys, including those that were already expired.
79+
- To fix this, we modified the API key expiration routine to process only unexpired API keys, thereby avoiding unnecessary iterations over keys that have already expired.
80+
81+
In August, [RubyGems.org](http://rubygems.org/) gained [57 new commits](https://github.com/rubygems/rubygems.org/compare/master@%7B2024-8-01%7D...master@%7B2024-8-31%7D) contributed by 6 authors. There were 134 additions and 137 deletions across 15 files.
82+
83+
## Thank you
84+
85+
Thank you to all the contributors of RubyGems and [RubyGems.org](http://rubygems.org/) for this month! Your contributions are greatly appreciated, and we are grateful for your support.
86+
87+
### Contributors to RubyGems:
88+
89+
- [@deivid-rodriguez](https://github.com/deivid-rodriguez) David Rodríguez
90+
- [@hsbt](https://github.com/hsbt) Hiroshi Shibata
91+
- [@marcoroth](https://github.com/marcoroth) Marco Roth
92+
- [@gouravkhunger](https://github.com/gouravkhunger) Gourav Khunger
93+
- [@segiddins](https://github.com/segiddins) Samuel Giddins
94+
- [@simi](https://github.com/simi) Josef Šimánek
95+
- [@KJTsanaktsidis](https://github.com/KJTsanaktsidis) KJ Tsanaktsidis
96+
- [@mattbrictson](https://github.com/mattbrictson) Matt Brictson
97+
- [@djberube](https://github.com/djberube) David J Berube
98+
- [@jeromedalbert](https://github.com/jeromedalbert) Jerome Dalbert
99+
- [@martinemde](https://github.com/martinemde) Martin Emde
100+
- [@indirect](https://github.com/indirect) André Arko
101+
- [@byroot](https://github.com/byroot) Jean Boussier
102+
- [@nobu](https://github.com/nobu) Nobuyoshi Nakada
103+
- [@voxik](https://github.com/voxik) Vít Ondruch
104+
- [@sunpoet](https://github.com/sunpoet) Po-Chuan Hsieh
105+
- [@eregon](https://github.com/eregon) Benoit Daloze
106+
107+
### Contributors to [RubyGems.org](http://rubygems.org/):
108+
109+
- [@hsbt](https://github.com/hsbt) Hiroshi Shibata
110+
- [@martinemde](https://github.com/martinemde) Martin Emde
111+
- [@colby-swandale](https://github.com/colby-swandale) Colby Swandale
112+
- [@segiddins](https://github.com/segiddins) Samuel Giddins
113+
- [@simi](https://github.com/simi) Josef Šimánek
114+
- [@okuramasafumi](https://github.com/okuramasafumi) Okura Masafumi
115+
116+
*If we missed you, please let us know so we can include you in our shout out!*
117+
118+
---
119+
Learn more about contributing to RubyGems by visiting the [RubyGems Contributing Guide](https://github.com/rubygems/rubygems/blob/master/CONTRIBUTING.md). We welcome all kinds of contributions, including bug fixes, feature implementation, writing and updating documentation, and bug triage.

0 commit comments

Comments
 (0)