summaryrefslogtreecommitdiff
path: root/lib/rubygems
AgeCommit message (Collapse)Author
2022-02-07[rubygems/rubygems] Fix missing rdoc for Gem::Versionnicholas a. evans
The rdoc for Gem::Version is available here: * https://docs.ruby-lang.org/en/3.0/Gem/Version.html However it is currently missing from: * https://ruby-doc.org/stdlib-3.1.0/libdoc/rubygems/rdoc/Gem/Version.html * https://docs.ruby-lang.org/en/3.1/Gem/Version.html * https://docs.ruby-lang.org/en/master/Gem/Version.html * `ri Gem::Version` with `ri --version` => 6.4.0 and `gem --version` => 3.3.5 * `yard ri Gem::Version` with `yard --version` => 0.9.27 https://github.com/rubygems/rubygems/commit/c10e5dd884
2022-02-01[rubygems/rubygems] Remove encoding pragma from specification.rbJosef Šimánek
- it is not used since it is not at the top of the file - it is not useful anymore https://github.com/rubygems/rubygems/commit/6aee05d923
2022-01-25[rubygems/rubygems] Forbid downgrading past the originally shipped version ↵David Rodríguez
on Ruby 3.1 https://github.com/rubygems/rubygems/commit/68bef90339
2022-01-20[rubygems/rubygems] Rename `Gem.open_with_flock` to `Gem.open_file`David Rodríguez
Since it only uses `flock` on Windows. https://github.com/rubygems/rubygems/commit/b877de4d9c
2022-01-19[rubygems/rubygems] Don't pass regexp to `Gem::Dependency.new` during `gem ↵David Rodríguez
dependency` https://github.com/rubygems/rubygems/commit/89dd5158a4
2022-01-19[rubygems/rubygems] Remove dead methodDavid Rodríguez
https://github.com/rubygems/rubygems/commit/477d5f6f6e
2022-01-19[rubygems/rubygems] Don't pass regexp to `Gem::Dependeny.new` from list, ↵David Rodríguez
search, and query commands It's deprecated functionality. https://github.com/rubygems/rubygems/commit/13d3eb6cb0
2022-01-19[rubygems/rubygems] Simplify argument processing logic in `gem list` & `gem ↵David Rodríguez
search` Make it more explicit that if not specific arguments are given, the value of `-n` is used. https://github.com/rubygems/rubygems/commit/ed811ddc00
2022-01-19Merge rubygems/rubygems HEAD.Hiroshi SHIBATA
Picked at 12aeef6ba9a3be0022be9934c1a3e4c46a03ed3a Notes: Merged: https://github.com/ruby/ruby/pull/5462
2022-01-19[rubygems/rubygems] Normalize end alignment style with BundlerDavid Rodríguez
https://github.com/rubygems/rubygems/commit/f7f504b24c
2022-01-15[rubygems/rubygems] Fix `gem update --system` for already installed version ↵loadkpi
of rubygems-update https://github.com/rubygems/rubygems/commit/c167d513a7
2022-01-15[rubygems/rubygems] Support binstubs with `--enable-load-relative` prologDavid Rodríguez
https://github.com/rubygems/rubygems/commit/32a5e9057a
2022-01-15[rubygems/rubygems] Extract a bit of common logic to methodsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/9a1b891435
2022-01-15[rubygems/rubygems] Fix method documentation to be more correct EnglishDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bcffd92c48
2022-01-13[rubygems/rubygems] Let Version#spaceship accept a StringAkira Matsuda
With this patch, handwriting version comparisons become a little bit easier. before: SomeGem.version <=> Gem::Version.new('1.3') after: SomeGem.version <=> '1.3' https://github.com/rubygems/rubygems/commit/7e0dbb79f2
2022-01-11[rubygems/rubygems] Markup code with RDoc notationsNobuyoshi Nakada
https://github.com/rubygems/rubygems/commit/c29cd23826
2022-01-06[rubygems/rubygems] Fix suggestions flagximenasandoval
https://github.com/rubygems/rubygems/commit/b55a1393ca
2022-01-06[rubygems/rubygems] Let fetch understand gem:version syntaxximenasandoval
Fix version error message Add tests to fetch error messages Fix default version since is not necessary https://github.com/rubygems/rubygems/commit/070620ebe4
2022-01-06[rubygems/rubygems] Fix `gem install <non-existent-gem> --force` crashDavid Rodríguez
Before: ``` $ gem install sfdsfdsfsdide --force ERROR: While executing gem ... (NoMethodError) undefined method `spec' for nil:NilClass @always_install << newest.spec ^^^^^ ``` After: ``` $ gem install sfdsfdsfsdide --force ERROR: Could not find a valid gem 'sfdsfdsfsdide' (>= 0) in any repository ``` https://github.com/rubygems/rubygems/commit/4e2bfd1101
2022-01-05[rubygems/rubygems] Fix race conditon on JRubyDavid Rodríguez
On JRuby, sometimes we get the following error in CI when running a realworld test that checks that `gem install rails` succeeds: ``` ERROR: While executing gem ... (NoMethodError) undefined method `ignored=' for nil:NilClass /home/runner/.rubies/jruby-9.3.2.0/lib/ruby/stdlib/rubygems/stub_specification.rb:193:in `to_spec' org/jruby/RubyArray.java:2642:in `map' /home/runner/.rubies/jruby-9.3.2.0/lib/ruby/stdlib/rubygems/specification.rb:758:in `_all' /home/runner/.rubies/jruby-9.3.2.0/lib/ruby/stdlib/rubygems/specification.rb:956:in `each' org/jruby/RubyEnumerable.java:1710:in `any?' /home/runner/.rubies/jruby-9.3.2.0/lib/ruby/stdlib/rubygems/resolver/activation_request.rb:111:in `installed?' /home/runner/.rubies/jruby-9.3.2.0/lib/ruby/stdlib/rubygems/request_set.rb:173:in `block in install' ``` I'm not sure how this error is happening, but I think there's no need to copy the `@ignored` instance variable when materializing stub specifications. This instance variable is used to not print a warning about missing extensions more than once for each gem upon gem activation, but as far as I can see, it's only used by methods that work on specification stubs. Once specifications are materialized, I think it can be safely ignored. https://github.com/rubygems/rubygems/commit/301cecd5a7
2021-12-27[rubygems/rubygems] Don't crash when updating to an unsupported ↵David Rodríguez
`rubygems-update` version https://github.com/rubygems/rubygems/commit/b0badcd00a
2021-12-27[rubygems/rubygems] Don't redownload `rubygems-update` package if already thereDavid Rodríguez
This makes it easier to test the upgrade process locally and should be more efficient in certain cases where the user has already upgraded in the past. https://github.com/rubygems/rubygems/commit/ed6cc88494
2021-12-27[rubygems/rubygems] Make SpecificationPolicy autoload constantMasataka Pocke Kuwabara
It reduces memory usage about 204kb (1.4%). https://github.com/rubygems/rubygems/commit/b7d4b8c8a6 Notes: Merged: https://github.com/ruby/ruby/pull/5350
2021-12-24Merge RubyGems-3.3.2 and Bundler-2.3.2Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/5334
2021-12-23Merge RubyGems-3.3.1 and Bundler-2.3.1Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/5325
2021-12-20[rubygems/rubygems] Add support in binstubs for trampolining bundlerDavid Rodríguez
If `bundler _<version>_` is given, I guess the most reasonable approach is to completely skip version switching, because the user is technically opting out of it. But since binstubs completely remove this argument from `ARGV` after processing it, we have no way of detecting that it was actually passed in the first place in order to skip the feature. So we set `BUNDLER_VERSION` explicitly in this case. https://github.com/rubygems/rubygems/commit/e0f360d6d7
2021-12-15Merge RubyGems and Bundler masterHiroshi SHIBATA
Merge from https://github.com/rubygems/rubygems/commit/793ad95ecb40e84a1dcb4cb60f2686843ed90de5 Notes: Merged: https://github.com/ruby/ruby/pull/5265
2021-12-10[rubygems/rubygems] Properly fetch Gem#latest_spec_for with multiple sourcesKevin Logan
https://github.com/rubygems/rubygems/commit/a93ec63df3
2021-12-06[rubygems/rubygems] Allow using `Gem::Version` without loading the rest of ↵David Rodríguez
rubygems https://github.com/rubygems/rubygems/commit/1b862537a5
2021-12-06[rubygems/rubygems] add login & logout for the signin & signout commands ↵Colby Swandale
respectively https://github.com/rubygems/rubygems/commit/49b491970b
2021-12-05[rubygems/rubygems] Don't write outside of destdir when regenerating pluginsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/141ef4cb9a
2021-12-05[rubygems/rubygems] Don't write outside of destdir when installing default ↵David Rodríguez
bundler https://github.com/rubygems/rubygems/commit/a62d00c5e8
2021-12-05[rubygems/rubygems] Fold a line that got out of handDavid Rodríguez
https://github.com/rubygems/rubygems/commit/49317d8beb
2021-12-05[rubygems/rubygems] Fix binstubs and plugins regeneration with `--destdir` ↵David Rodríguez
is used https://github.com/rubygems/rubygems/commit/7079de16fa
2021-12-03[rubygems/rubygems] Move required_ruby_version gemspec attribute to ↵Josef Šimánek
recommended section. https://github.com/rubygems/rubygems/commit/de6552ac30
2021-12-02[rubygems/rubygems] Provide distinguished name which will be correctly parsed.Vít Ondruch
It seems that since ruby openssl 2.1.0 [[1]], the distinguished name submitted to `OpenSSL::X509::Name.parse` is not correctly parsed if it does not contain the first slash: ~~~ $ ruby -v ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux] $ gem list | grep openssl openssl (default: 2.2.0) $ irb -r openssl irb(main):001:0> OpenSSL::X509::Name.parse("CN=nobody/DC=example").to_s(OpenSSL::X509::Name::ONELINE) => "CN = nobody/DC=example" irb(main):002:0> OpenSSL::X509::Name.parse("/CN=nobody/DC=example").to_s(OpenSSL::X509::Name::ONELINE) => "CN = nobody, DC = example" ~~~ Instead, use `OpenSSL::X509::Name.new` directly as suggested by upstream maintainer. [1]: https://github.com/ruby/openssl/commit/19c67cd10c57f3ab7b13966c36431ebc3fdd653b https://github.com/rubygems/rubygems/commit/09ca0c2dae Co-authored-by: Kazuki Yamaguchi <k@rhe.jp>
2021-11-30[rubygems/rubygems] Fix race condition when reading & writing gemspecs ↵David Rodríguez
concurrently When bundler parallel installer installs gems concurrently, one can get confusing warnings like the following: ``` "[/home/runner/work/rubygems/rubygems/bundler/tmp/2/gems/system/specifications/zeitwerk-2.4.2.gemspec] isn't a Gem::Specification (NilClass instead). ``` I've got these warnings several times in the past, but I never managed to reproduce them, and never look deeply into the root cause, but this time a got a cause that reproduced quite frequently, so I looked into it. The problem is one thread reading a gemspec while another thread is writing it. The write of the gemspec was not protected, so `Gem::Specification.load` could end up seeing a truncated gemspec and thus throw this warning. The fix involve two changes: * Change the methods that write gemspecs to use `Gem.binary_write` which is protected by a lock. * Fix `Gem.binary_write` to create the file lock at file creation time, not when the file already exists after. The realworld user problem caused by this issue happens in bundler, but I'm fixing it in rubygems first, and then I'll backport to bundler whatever needs backporting to fix the issue on the bundler side. https://github.com/rubygems/rubygems/commit/a672e7555c
2021-11-30[rubygems/rubygems] Revert "Remove spec file before building"David Rodríguez
This reverts commit af604436d8141c34cb2e1e645b9b0d47bfd55a55. The issue that led to introducing it was never reproduced. I tried to repro with this patch and it still works just fine. Since this removal is getting in the middle for some race conditions I'm facing, I'm reverting the patch. https://github.com/rubygems/rubygems/commit/2dd267f0e4
2021-11-29[rubygems/rubygems] Deprecate typo nameNobuyoshi Nakada
https://github.com/rubygems/rubygems/commit/62d54cbf08
2021-11-19Do not document vendored files [ci skip]Nobuyoshi Nakada
Just duplications.
2021-11-18[rubygems/rubygems] Protect specs access at a finer levelDavid Rodríguez
https://github.com/rubygems/rubygems/commit/c8cc053bde
2021-11-18[rubygems/rubygems] Stop using a constant for something not constantDavid Rodríguez
https://github.com/rubygems/rubygems/commit/5cb0b9d9b8
2021-11-18[rubygems/rubygems] Extract a helper method to reset specsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/662de0c990
2021-11-18[rubygems/rubygems] Make clearing loaded spec cache really privateDavid Rodríguez
https://github.com/rubygems/rubygems/commit/19f117652b
2021-11-18[rubygems/rubygems] We can now use standard memoizationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/231be44d38
2021-11-18[rubygems/rubygems] Easier preservation of activated specsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/54e923ffc2
2021-11-18[rubygems/rubygems] Set `@@all` variable at class definition timeDavid Rodríguez
To spare the `defined?` check. https://github.com/rubygems/rubygems/commit/64d27bba01
2021-11-16Merge the master branch of rubygems repoHiroshi SHIBATA
Picked from https://github.com/rubygems/rubygems/commit/4b498709a015a94e14a3852a1841a7a3e669133d
2021-11-06[rubygems/rubygems] GNU Make needs DESTDIR on Windows environment like msys ↵Hiroshi SHIBATA
or mingw https://github.com/rubygems/rubygems/commit/7fd987d30d
2021-11-05[rubygems/rubygems] Fix `ruby setup.rb` command when `--prefix` is passedDavid Rodríguez
https://github.com/rubygems/rubygems/commit/8d04092f6e