Commit graph

1460 commits

Author SHA1 Message Date
Nathan Ladd
3ac239f790 [rubygems/rubygems] Copy prerelease attribute to dependency resolver sets
5956e7f8e5
2025-05-21 11:33:32 +09:00
David Rodríguez
aea603615f [rubygems/rubygems] Missing tweak
407c1cbcfe
2025-05-19 11:15:30 +09:00
Samuel Giddins
4be199e435 [rubygems/rubygems] Simplify Gem::Platform#initialize
Based on PR feedback

Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

562d7aa087
2025-05-19 11:15:29 +09:00
Samuel Giddins
8f61e17556 [rubygems/rubygems] RuboCop
Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

768784910b
2025-05-19 11:15:29 +09:00
Samuel Giddins
eb48418b40 [rubygems/rubygems] Ensure that Gem::Platform parses strings to a fix point
The issue was that the property that

```ruby
platform = Gem::Platform.new $string
platform == Gem::Platform.new(platform.to_s)
```

was not always true.

This property (of acchieving a fix point) is important,
since `Gem::Platform` gets serialized to a string and
then deserialized back to a `Gem::Platform` object.
If it doesn't deserialize to the same object, then
different platforms are used for the initial serialization
than subsequent runs.

I used https://github.com/segiddins/Scratch/blob/main/2025/03/rubygems-platform.rb
to find the failing cases and then fixed them.
With this patch, the prop check test now passes.

313fb4bcec
2025-05-19 11:15:28 +09:00
Hiroshi SHIBATA
f855bcc6b2
Applied rake vendor:install 2025-05-14 15:13:45 +09:00
Hiroshi SHIBATA
e46fbe624a Psych and SafeYAML was loaded Gem.load_yml, these changes is unnecessary 2025-05-13 15:49:20 +09:00
Hiroshi SHIBATA
4d9a1d5b6f Handle to look up CGI::EscapeExt instead of using LoadError. cgi/escape is provided snce Ruby 2.3 2025-05-13 14:37:24 +09:00
Satoshi Tagomori
382645d440 namespace on read 2025-05-11 23:32:50 +09:00
Hiroshi SHIBATA
a61f51f66d Use cgi/escape instead of cgi/util 2025-05-09 14:27:28 +09:00
Yusuke Nakamura
819ecd115d
[rubygems/rubygems] Add mtime to Gem::Package::TarWriter#add_file argument
Since 9e21dd9, Gem::Package::TarWriter#add_file adds the file to
the tar with Gem.source_date_epoch for its mtime.
This behavior breaks the code depending on the previous add_file
behavior.
Therefore, add_file accepts mtime as an argument, and uses
Gem.source_date_epoch if not specified.

7020ea98a0
2025-05-08 18:03:04 +09:00
Mike Perham
5d0708378e
[rubygems/rubygems] Smoother authentication experience
Copying the URL is painful here because the URL is embedded within a paragraph of text. I presume we don't want to automatically open the browser.

Instead, move the URL to its own line so that "triple click" will automatically select the whole thing.

21532a69ae
2025-05-02 09:49:15 +09:00
Hiroshi SHIBATA
b3566e9ef2 [rubygems/rubygems] bin/rubocop -a --only Style/StringLiterals
62e1bf2d37
2025-04-25 16:25:21 +09:00
David Rodríguez
6f336d1b15
[rubygems/rubygems] Remove shellwords autoload
2af1646776
2025-04-25 11:12:03 +09:00
Hiroshi SHIBATA
f0dda0534b Rewrite CGI.parse with URI.decode_www_form_component
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2025-04-24 12:15:11 +09:00
Hiroshi SHIBATA
a88c5b501c Use cgi/util if that uses like CGI.escape methods 2025-04-24 12:15:11 +09:00
Jeremy Evans
51d0e58772
[rubygems/rubygems] Avoid unnecessary splat allocation
Because get_push_scope is a method call, Ruby will allocate an array
for *args even though it is not necessary to do so. Using a local
variable avoids the allocation.

Found by the performance warning in Ruby feature 21274.

0473c0cf32
2025-04-22 11:27:24 +09:00
David Rodríguez
79f3167e0b [rubygems/rubygems] Let compact index response parser consistently return a mutable dependencies array
That restores support for compact index dummy implementations that only lists
versions, without checksums or dependencies.

This format is undocumented, so we may want to get rid of it in the
future. However, some of our tests rely on it, and some implementations
did use it (gems.mutant.dev at least). And the way the code was written
suggest that support was intentional.

So for now, we should restore it.

0427d8c983
2025-04-01 09:57:40 +09:00
Giacomo Benedetti
fce2c386a5 [rubygems/rubygems] Sorting files in metadata for reproducibility
792117980b
2025-04-01 09:55:19 +09:00
Hiroshi SHIBATA
62a026a425
[rubygems/rubygems] Fix Style/RedundantParentheses by bin/rubocop -a
4bbf02493e
2025-03-27 16:57:10 +09:00
Ellen Marie Dash
af594f5166 [rubygems/rubygems] Have "gem exec" sort executable names in error message.
This decouples `gem exec` behavior (and tests) from the sort order of
the gemspec.

911cd29159
2025-03-27 13:57:25 +09:00
David Rodríguez
4fe882e2c9 [rubygems/rubygems] Let gem exec raise an error in ambiguous cases
When `gem exec foo` is run, and "foo" is a gem that has multiple
executables, none of them named "foo", raise an error explaining the
situation and telling user to be more specific.

Currently the first command in the executables array is run, but this
may come as surprising sometimes, so better raise an error.

acda5d8f6e
2025-03-24 13:25:07 +09:00
Hartley McGuire
9b49ba5a68
[rubygems/rubygems] Speed up Version#<=> ~20-50% when lengths differ
Previously, the comparison code would loop through segments up to the
longest of the two versions being compared. However, this is inefficient
because once one version has more segments than the other we can do a
lot less work.

This commit optimizes the differing segment length case by specializing
the logic once the iteration has passed the shorter of the two segment
lengths. At this point we only need to continue looking at the longer
version's segment, and we know that any String encountered means the
version is less than (pre), and any non-zero Integer means the version
is greater than.

Benchmark:

```
{
  first: [Gem::Version.new("1.2.3"), Gem::Version.new("2.2.3")],
  second: [Gem::Version.new("1.2.3"), Gem::Version.new("1.3.3")],
  third: [Gem::Version.new("1.2.3"), Gem::Version.new("1.2.4")],
  length: [Gem::Version.new("1.2.3"), Gem::Version.new("1.2.3.4")],
  left_s_second: [Gem::Version.new("1.a.3"), Gem::Version.new("1.2.3")],
  left_s_third: [Gem::Version.new("1.2.a"), Gem::Version.new("1.2.3")],
  right_s_second: [Gem::Version.new("1.2.3"), Gem::Version.new("1.a.3")],
  right_s_third: [Gem::Version.new("1.2.3"), Gem::Version.new("1.2.a")],
  left_s_length: [Gem::Version.new("8.0.1.pre"), Gem::Version.new("8.0.1")],
  right_s_length: [Gem::Version.new("8.0.1"), Gem::Version.new("8.0.1.pre")],
  both_s: [Gem::Version.new("8.0.2.pre1"), Gem::Version.new("8.0.2.pre2")],
}.each do |name, v|
  puts "== #{name} =="

  raise name unless v[0].fast_comp(v[1]) == (v[0] <=> v[1])

  Benchmark.ips do |x|
    x.report("fast") { v[0].fast_comp(v[1]) }
    x.report("original") { v[0] <=> v[1] }
    x.compare!(order: :baseline)
  end
end

== first ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   208.555k i/100ms
            original   199.789k i/100ms
Calculating -------------------------------------
                fast      2.075M (± 6.0%) i/s  (481.93 ns/i) -     10.428M in   5.055818s
            original      2.045M (± 3.9%) i/s  (488.94 ns/i) -     10.389M in   5.090034s

Comparison:
                fast:  2075002.8 i/s
            original:  2045227.4 i/s - same-ish: difference falls within error

== second ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   192.395k i/100ms
            original   183.000k i/100ms
Calculating -------------------------------------
                fast      1.892M (± 3.8%) i/s  (528.62 ns/i) -      9.620M in   5.094104s
            original      1.824M (± 3.5%) i/s  (548.11 ns/i) -      9.150M in   5.023163s

Comparison:
                fast:  1891722.2 i/s
            original:  1824435.3 i/s - same-ish: difference falls within error

== third ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   172.788k i/100ms
            original   162.934k i/100ms
Calculating -------------------------------------
                fast      1.719M (± 9.0%) i/s  (581.72 ns/i) -      8.467M in   5.025861s
            original      1.638M (± 3.6%) i/s  (610.36 ns/i) -      8.310M in   5.080344s

Comparison:
                fast:  1719042.9 i/s
            original:  1638389.6 i/s - same-ish: difference falls within error

== length ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   191.741k i/100ms
            original   155.952k i/100ms
Calculating -------------------------------------
                fast      1.920M (± 3.9%) i/s  (520.74 ns/i) -      9.587M in   5.002328s
            original      1.576M (± 6.2%) i/s  (634.42 ns/i) -      7.954M in   5.072507s

Comparison:
                fast:  1920362.1 i/s
            original:  1576240.9 i/s - 1.22x  slower

== left_s_second ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   176.441k i/100ms
            original   164.879k i/100ms
Calculating -------------------------------------
                fast      1.609M (± 7.3%) i/s  (621.51 ns/i) -      8.116M in   5.083414s
            original      1.620M (± 8.3%) i/s  (617.43 ns/i) -      8.079M in   5.028525s

Comparison:
                fast:  1608994.8 i/s
            original:  1619606.5 i/s - same-ish: difference falls within error

== left_s_third ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   160.562k i/100ms
            original   152.799k i/100ms
Calculating -------------------------------------
                fast      1.591M (± 3.6%) i/s  (628.40 ns/i) -      8.028M in   5.052029s
            original      1.528M (± 3.6%) i/s  (654.31 ns/i) -      7.640M in   5.007526s

Comparison:
                fast:  1591334.1 i/s
            original:  1528320.6 i/s - same-ish: difference falls within error

== right_s_second ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   135.938k i/100ms
            original   132.907k i/100ms
Calculating -------------------------------------
                fast      1.367M (± 1.2%) i/s  (731.77 ns/i) -      6.933M in   5.074030s
            original      1.320M (± 2.4%) i/s  (757.35 ns/i) -      6.645M in   5.036155s

Comparison:
                fast:  1366548.7 i/s
            original:  1320386.4 i/s - same-ish: difference falls within error

== right_s_third ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   129.971k i/100ms
            original   123.802k i/100ms
Calculating -------------------------------------
                fast      1.273M (± 4.1%) i/s  (785.25 ns/i) -      6.369M in   5.011805s
            original      1.215M (± 1.8%) i/s  (823.04 ns/i) -      6.190M in   5.096330s

Comparison:
                fast:  1273487.0 i/s
            original:  1215002.9 i/s - same-ish: difference falls within error

== left_s_length ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   211.093k i/100ms
            original   155.784k i/100ms
Calculating -------------------------------------
                fast      2.120M (± 1.9%) i/s  (471.63 ns/i) -     10.766M in   5.079336s
            original      1.565M (± 6.7%) i/s  (638.87 ns/i) -      7.789M in   5.007522s

Comparison:
                fast:  2120296.1 i/s
            original:  1565258.0 i/s - 1.35x  slower

== right_s_length ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   213.977k i/100ms
            original   142.990k i/100ms
Calculating -------------------------------------
                fast      2.154M (± 1.3%) i/s  (464.15 ns/i) -     10.913M in   5.066124s
            original      1.446M (± 1.8%) i/s  (691.75 ns/i) -      7.292M in   5.046172s

Comparison:
                fast:  2154455.3 i/s
            original:  1445607.9 i/s - 1.49x  slower

== both_s ==
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
                fast   154.903k i/100ms
            original   131.011k i/100ms
Calculating -------------------------------------
                fast      1.515M (± 4.0%) i/s  (659.97 ns/i) -      7.590M in   5.019890s
            original      1.280M (± 5.3%) i/s  (781.28 ns/i) -      6.420M in   5.035387s

Comparison:
                fast:  1515223.3 i/s
            original:  1279957.8 i/s - 1.18x  slower
```

7195e77152
2025-03-18 09:42:38 +09:00
David Rodríguez
e21e5bc814 [rubygems/rubygems] Fix gem rdoc not working with newer versions of rdoc
369f9b9311
2025-03-10 12:43:36 +09:00
Hiroshi SHIBATA
e4c5531b4c [rubygems/rubygems] Update vendored uri to 1.0.3
176dc7421c
2025-03-03 15:52:35 +09:00
Hiroshi SHIBATA
425cfcff85 [rubygems/rubygems] bin/rubocop -a --only Style/MultipleComparison
677e17aa2e
2025-02-21 11:31:47 +09:00
Hiroshi SHIBATA
556be73cbb [rubygems/rubygems] gem server command is extracted from rubygems core feature now
b29f8d6a37
2025-02-20 12:58:45 +09:00
David Rodríguez
135479a58d [rubygems/rubygems] Allocate strings from Requirement match only once
c65b8644e6

Co-authored-by:  Samuel Giddins <segiddins@segiddins.me>
2025-02-10 09:27:18 +09:00
David Rodríguez
c0688c21fe [rubygems/rubygems] Raise a simpler error when RubyGems fails to activate a dependency
If you force uninstall a dependency but leave other gems depending on
it, those gems will fail to be activated.

In that case, RubyGems prints a rather complicated error:

```
$ rails --version
/Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1413:in 'block in Gem::Specification#activate_dependencies': Could not find 'activesupport' (= 8.0.1) among 478 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/Users/deivid/.local/share/gem/ruby/3.4.0:/Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0' at: /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/specifications/railties-8.0.1.gemspec, execute `gem env` for more information
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1399:in 'Array#each'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1399:in 'Gem::Specification#activate_dependencies'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1381:in 'Gem::Specification#activate'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:283:in 'block in Gem.activate_bin_path'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Thread::Mutex#synchronize'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Gem.activate_bin_path'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/bin/rails:25:in '<main>'
/Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/dependency.rb:303:in 'Gem::Dependency#to_specs': Could not find 'activesupport' (= 8.0.1) - did find: [activesupport-7.1.3,activesupport-7.0.8.7] (Gem::MissingSpecVersionError)
Checked in 'GEM_PATH=/Users/deivid/.local/share/gem/ruby/3.4.0:/Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0' , execute `gem env` for more information
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1411:in 'block in Gem::Specification#activate_dependencies'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1399:in 'Array#each'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1399:in 'Gem::Specification#activate_dependencies'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1381:in 'Gem::Specification#activate'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:283:in 'block in Gem.activate_bin_path'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Thread::Mutex#synchronize'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Gem.activate_bin_path'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/bin/rails:25:in '<main>'
```

With this commit, the error becomes a bit simpler to parse:

```
$ rails --version
/Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1421:in 'block in Gem::Specification#activate_dependencies': Could not find 'activesupport' (= 8.0.1) among 478 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/Users/deivid/.local/share/gem/ruby/3.4.0:/Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0' at: /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/specifications/railties-8.0.1.gemspec, execute `gem env` for more information
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1407:in 'Array#each'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1407:in 'Gem::Specification#activate_dependencies'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1389:in 'Gem::Specification#activate'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:283:in 'block in Gem.activate_bin_path'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Thread::Mutex#synchronize'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Gem.activate_bin_path'
	from /Users/deivid/.asdf/installs/ruby/3.4.1/bin/rails:25:in '<main>'
```

And also, we reduce exception based control flow in our code.

7e48c49f2d
2025-02-03 10:05:34 +09:00
Nobuyoshi Nakada
53f0ebf938
Ignore vendor folder for documentation just once 2025-01-28 15:37:55 +09:00
Michael Rykov
3638f67069 [rubygems/rubygems] fix @licenses array unmarshalling
12f3e78c95
2025-01-16 19:41:11 +09:00
Ellen Marie Dash
d96cc52ef1 [rubygems/rubygems] Add credentials file path to "gem env".
There are 3 possible locations:

- $HOME/.gem/credentials
- $XDG_DATA_HOME/gem/credentials
- $HOME/.local/share/gem/credentials

c51756b96e
2025-01-09 18:13:57 +00:00
License Update
70decc857c [rubygems/rubygems] Update SPDX license list as of 2024-12-30
42aaaff15c
2025-01-06 07:19:23 +00:00
David Rodríguez
9e0eb9778d Merge RubyGems-3.6.2 and Bundler-2.6.2 2024-12-24 07:21:10 +09:00
David Rodríguez
559e9fe990
Bump vendored securerandom to 0.4.1 2024-12-18 10:05:21 +09:00
David Rodríguez
b9ad8fa524
Bump vendored timeout to 0.4.3 2024-12-18 10:05:21 +09:00
David Rodríguez
d42fcda002
Bump vendored resolv to 0.6.0 2024-12-17 09:22:17 +09:00
David Rodríguez
d0968b1b4c [rubygems/rubygems] Fix gem info tagging some non default gems as default
7585825c57
2024-12-16 18:09:54 +00:00
David Rodríguez
71bebcf658
Bump vendored uri to 1.0.2 2024-12-13 11:29:34 +09:00
David Rodríguez
57f222c182
Bump vendored net-http to 0.6.0 2024-12-13 11:29:17 +09:00
David Rodríguez
cd460d5d8d
Bump vendored securerandom to 0.4.0 2024-12-13 11:24:08 +09:00
David Rodríguez
48443c0204 [rubygems/rubygems] Skip unresolved deps warning on Gem::Specification.reset on benign cases
If `Gem::Specification.reset` is used, but there are still unresolved
dependencies, RubyGems prints a warning. There are though, certain cases
where the situation will not cause any issues.

One such case is when the unresolved dependency does not restrict any
versions (>= 0) and there's a default gem matching it.

In this situation, it doesn't matter if Gem paths change, because
default gems are still activatable, so the dependency will be properly
activated if ever needed.

e5f8a3068e
2024-12-06 15:19:19 +00:00
Samuel Giddins
305318edbb [rubygems/rubygems] Apply suggestions from code review
7c634ecd72
2024-12-05 19:00:44 +00:00
Samuel Giddins
7daf85bdf2 [rubygems/rubygems] Stop storing executable names in ivars
Removes usage of these classes as ACE gadgets

See https://nastystereo.com/security/ruby-3.4-deserialization.html

Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

89ad04db86
2024-12-05 19:00:44 +00:00
Nobuyoshi Nakada
44ef172dbd [rubygems/rubygems] [DOC] Fix missing single quote
722d4c6926
2024-12-02 16:06:44 +00:00
Ellen Marie Dash
092a48de7e [rubygems/rubygems] [SpecFetcher] If candidates include {name}-ruby or ruby-{name}, recommend those.
d7d33172c1
2024-11-26 22:04:26 +00:00
David Rodríguez
963f98a94f [rubygems/rubygems] Enable Performance/MapCompact cop
0c3a65871a
2024-11-26 15:11:05 +09:00
David Rodríguez
4addaaf4df [rubygems/rubygems] More aggressive Performance/FlatMap cop configuration
d8d68cc00e
2024-11-26 15:11:05 +09:00
David Rodríguez
77990f6751 [rubygems/rubygems] Remove comment about oldest supported version
That's indeed the ideal behavior but it's a mess to maintain because the
version of RubyGems shipped with each patchlevel of Ruby changes. We
could try looking at the `VERSION` constant in `
RbConfig::CONFIG["rubylibdir"` but for now I calling what's in there now
as good enough.

40ccf2b093
2024-11-25 14:56:09 +00:00
David Rodríguez
4e6ada3ae4 [rubygems/rubygems] Remove unnecessary and out of date ruby version check
We already do this check in `setup.rb` itself, which is run earlier.

160cc3f1c5
2024-11-25 14:56:08 +00:00