Commit graph

62 commits

Author SHA1 Message Date
Hiroshi SHIBATA
4aca77edde Merge prepare version of RubyGems 3.2.0 2020-12-08 17:30:02 +09:00
David Rodríguez
955f1837a1 Use space inside block braces everywhere
To make rubygems code style consistent with bundler.
2020-06-15 21:20:37 +09:00
Yuki Nishijima
77ba8a1d61 [rubygems/rubygems] Use LoadError#path to figure out the argument passed to 'require'
5995394ec4
2020-06-05 07:32:42 +09:00
David Rodríguez
b9d431a7b1 [rubygems/rubygems] Remove direct reference to PR
The code is quite different now, so I think the link might be even
confusing. If you want to know more, use git history.

db872c7a18
2020-06-05 07:32:42 +09:00
David Rodríguez
f0f138aa5d [rubygems/rubygems] Fix $LOADED_FEATURES cache sometimes not respected
In the cases where the initial manually `-I` path resolution succeeded,
we were passing a full path to the original require effectively skipping
the `$LOADED_FEATURES` cache. With this change, we _only_ do the
resolution when a matching requirable path is found in a default gem. In
that case, we skip activation of the default gem if we detect that the
required file will be picked up for a `-I` path.

22ad5717c3
2020-06-05 07:32:42 +09:00
David Rodríguez
07dca5c02c [rubygems/rubygems] Extract a local outside the loop
da1492e9d7
2020-06-05 07:32:42 +09:00
David Rodríguez
5aa5aad48a [rubygems/rubygems] Refactor Gem.load_path_insert_index
ae95885dff
2020-06-05 07:32:42 +09:00
David Rodríguez
a18e81d797 [rubygems/rubygems] Fix performance regression in require
Our check for `-I` paths should not go through all activated gems.

00d98eb8a3
2020-06-05 07:32:42 +09:00
David Rodríguez
1039c32de6 [rubygems/rubygems] Simplify nested require exceptions
7fbef2f0e3
2020-05-08 14:13:29 +09:00
David Rodríguez
96064e6f1c
Sync rubygems with current master (#2889) 2020-03-24 15:39:24 +09:00
Hiroshi SHIBATA
8c67080381
Revert "[rubygems/rubygems] Fix require issue with file extension priority"
This reverts commit d767da428c.

  It fails with spec/ruby/core/kernel/require_spec.rb:5
2020-02-06 22:07:39 +09:00
David Rodríguez
d767da428c
[rubygems/rubygems] Fix require issue with file extension priority
If `require "a"` is run when two folders have been specified in the -I
option including a "a.rb" file and a "a.so" file respectively, the ruby
spec says that the ".rb" file should always be preferred. However, the
logic we added in 6b81076d9
to make the -I option always beat default gems does not respect this
spec, creating a difference from the original ruby-core's require.

[the ruby spec says]: d80a6e2b22/core/kernel/shared/require.rb (L234-L246)

b3944384f4
2020-02-06 21:57:18 +09:00
Kazuhiro NISHIYAMA
d336db6568
Fix a typo 2019-11-13 15:04:49 +09:00
Hiroshi SHIBATA
f36a53d038
Only enabled mon_owned condition with Ruby 2.5+ 2019-11-12 19:36:41 +09:00
Koichi Sasada
fef4370b40 check more. 2019-11-12 10:07:45 +09:00
Koichi Sasada
4a30fabfcf Monitor owner state check correctly.
Monitor can be owned at the beginning of this method.
2019-11-12 09:37:34 +09:00
Yusuke Endoh
2407e89725 Revert "Use untaint for File.symlink in kernel_require.rb"
This reverts commit d9978ce5d3.

Untaint was tentatively restored due to test failures.  But now, the
failed tests have been removed, so we can revert the tentative fix.
2019-11-12 08:39:38 +09:00
Hiroshi SHIBATA
d9978ce5d3
Use untaint for File.symlink in kernel_require.rb
Partly reverted 7d463e360b
2019-11-12 08:03:26 +09:00
Koichi Sasada
b8d242d221 release RUBYGEMS_ACTIVATION_MONITOR correctly.
`File.symlink? safe_lp` can raise SecurityError and raising an
exception can leave RUBYGEMS_ACTIVATION_MONITOR locking. This
patch release it correctly.
2019-11-12 04:33:28 +09:00
Koichi Sasada
4be1e84d78 more messages 2019-11-12 04:13:54 +09:00
Koichi Sasada
a815053a3e check monitor is owning for debug 2019-11-12 04:03:33 +09:00
Hiroshi SHIBATA
7d463e360b Merge RubyGems 3.1.0.pre3
* Fix gem pristine not accounting for user installed gems. Pull request
    #2914 by Luis Sagastume.
  * Refactor keyword argument test for Ruby 2.7. Pull request #2947 by
    SHIBATA Hiroshi.
  * Fix errors at frozen Gem::Version. Pull request #2949 by Nobuyoshi
    Nakada.
  * Remove taint usage on Ruby 2.7+. Pull request #2951 by Jeremy Evans.
  * Check Manifest.txt is up to date. Pull request #2953 by David Rodríguez.
  * Clarify symlink conditionals in tests. Pull request #2962 by David
    Rodríguez.
  * Update command line parsing to work under ps. Pull request #2966 by
    David Rodríguez.
  * Properly test `Gem::Specifications.stub_for`. Pull request #2970 by
    David Rodríguez.
  * Fix Gem::LOADED_SPECS_MUTEX handling for recursive locking. Pull request
    #2985 by MSP-Greg.
2019-11-11 16:59:49 +09:00
David Rodríguez
f48655d04d Remove unneeded exec bits from some files
I noticed that some files in rubygems were executable, and I could think
of no reason why they should be.

In general, I think ruby files should never have the executable bit set
unless they include a shebang, so I run the following command over the
whole repo:

```bash
find . -name '*.rb' -type f -executable -exec bash -c 'grep -L "^#!" $1 || chmod -x $1' _ {} \;
```
2019-11-09 21:36:30 +09:00
David Rodríguez
4f87a1583d
[rubygems/rubygems] Introduce default prerelease requirement
506c5bce49
2019-09-26 17:48:01 +09:00
Hiroshi SHIBATA
221ba9b66c
Revert "`Gem.load_path_insert_index always returns non-nil index after Ruby 1.9"
This reverts commit 260ef51a73.

  This broke the stable versions of Ruby like 2.4 and 2.5
2019-08-17 17:01:23 +09:00
Hiroshi SHIBATA
d041c6cebb
Added comments for extended require by RubyGems 2019-08-17 15:12:46 +09:00
Hiroshi SHIBATA
260ef51a73
`Gem.load_path_insert_index always returns non-nil index after Ruby 1.9 2019-08-17 15:12:46 +09:00
Hiroshi SHIBATA
d8148650f6
Try to continue on LoadError with gem_original_require 2019-08-17 15:12:46 +09:00
Hiroshi SHIBATA
22d9bd944d
Keep the existance behavior with symlink path 2019-08-17 15:12:45 +09:00
Hiroshi SHIBATA
dd16f8524c
Revert "Revert "[rubygems/rubygems] [Require] Ensure -I beats a default gem""
This reverts commit 75d29db8f9.
2019-08-17 15:12:45 +09:00
Hiroshi SHIBATA
75d29db8f9
Revert "[rubygems/rubygems] [Require] Ensure -I beats a default gem"
This reverts commit 00cd5d74ce.
2019-08-17 08:52:39 +09:00
Hiroshi SHIBATA
7624154595
Fixed Insecure Operation in require
Caused by 00cd5d74ce
2019-08-17 08:44:31 +09:00
David Rodríguez
3587824d71
[rubygems/rubygems] Don't unregister default specifications
I think this should be more efficient?

a1de78104f
2019-08-17 07:35:48 +09:00
David Rodríguez
b8984370da
[rubygems/rubygems] Fix jruby issue
fc3f722164
2019-08-17 07:35:48 +09:00
David Rodríguez
37abd2c390
[rubygems/rubygems] Fix old rubies compat
41e60cdb6b
2019-08-17 07:35:48 +09:00
Samuel Giddins
00cd5d74ce
[rubygems/rubygems] [Require] Ensure -I beats a default gem
6fbda98eb3
2019-08-17 07:35:48 +09:00
David Rodríguez
d0a5467320 Update rubygems with latest upstream changes
Closes: https://github.com/ruby/ruby/pull/2154
2019-04-28 11:07:45 +09:00
hsbt
5335ce0e06 Merge master branch from rubygems/rubygems upstream.
* Enable Style/MethodDefParentheses in Rubocop
    https://github.com/rubygems/rubygems/pull/2478
  * Enable Style/MultilineIfThen in Rubocop
    https://github.com/rubygems/rubygems/pull/2479
  * Fix required_ruby_version with prereleases and improve error message
    https://github.com/rubygems/rubygems/pull/2344
  * Fix bundler rubygems binstub not properly looking for bundler
    https://github.com/rubygems/rubygems/pull/2426

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-21 10:20:47 +00:00
hsbt
8da8d4b043 Merge RubyGems 3.0.0.beta1.
* It drop to support < Ruby 2.2
  * Cleanup deprecated methods and classes.
  * Mark obsoleted methods to deprecate.
  * and other enhancements.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-05-30 13:01:35 +00:00
hsbt
c00e84327f Merge rubygems master.
This is RC version of Rubygems 2.7.0.
  688fb7e83c

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-08 01:32:18 +00:00
ko1
1721dfa0ea release monitor correctly.
* lib/rubygems/core_ext/kernel_require.rb: sometimes
  `Kernel.send(:gem, spec.name)` can raise some errors
  (Gem::MissingSpecError I observed) and this method
  doesn't release RUBYGEMS_ACTIVATION_MONITOR correctly.
  This patch fix this problem.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-20 15:02:55 +00:00
hsbt
5d43821536 Update Rubygems 2.6.10
* 2ee5bf9fd3
 * be510dd409

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-24 02:38:57 +00:00
nobu
b6139464f5 rubygems 2.6.7
* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update
  rubygems to 2.6.7, not the master, with r56225.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-09-28 01:16:43 +00:00
nobu
69934aeb8d rubygems 2.6.7
* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update
  rubygems to 2.6.7.
  Release note of 2.6.7: 60f35bd1d2

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-09-28 00:57:53 +00:00
hsbt
469bac0f92 * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.3.
Please see entries of 2.6.3 on
  https://github.com/rubygems/rubygems/blob/master/History.txt

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-06 06:01:14 +00:00
hsbt
7fbb9078fe * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.2.
Please see entries of 2.6.2 on
  https://github.com/rubygems/rubygems/blob/master/History.txt

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 02:26:39 +00:00
hsbt
a21d403f21 * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.5.2.
It supports to enable frozen string literal and add `--norc` option for
  disable to `.gemrc` configuration.
  See 2.5.2 release notes for other fixes and enhancements.
  a8aa3bac72/History.txt (L3)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-01 12:43:26 +00:00
naruse
3e92b635fb Add frozen_string_literal: false for all files
When you change this to true, you may need to add more tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:07:31 +00:00
hsbt
e2cf71a085 * lib/rubygems: Update to RubyGems 2.5.0+ HEAD(fdab4c4).
this version includes #1396, #1397, #1398, #1399
* test/rubygems: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-04 06:21:53 +00:00
hsbt
effdbf5936 * lib/rubygems: Update to RubyGems HEAD(c202db2).
this version contains many enhancements see http://git.io/vtNwF
* test/rubygems: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 21:50:14 +00:00