summaryrefslogtreecommitdiff
path: root/lib/rubygems/specification.rb
AgeCommit message (Collapse)Author
2023-08-29Merge RubyGems-3.4.19 and Bundler-2.4.19Hiroshi SHIBATA
2023-08-29Merge RubyGems-3.4.18 and Bundler-2.4.18Hiroshi SHIBATA
2023-08-29Merge RubyGems-3.4.11 and Bundler-2.4.11Hiroshi SHIBATA
2023-03-28Merge RubyGems-3.4.10 and Bundler-2.4.10 (#7479)Hiroshi SHIBATA
* Merge RubyGems-3.4.7 and Bundler-2.4.7 * Merge RubyGems-3.4.8 and Bundler-2.4.8 * Skip failing test on MSWin * Merge RubyGems-3.4.9 and Bundler-2.4.9 * Merge RubyGems-3.4.10 and Bundler-2.4.10 --------- Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2022-09-08Resync Bundler & RubyGemsDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/6330
2022-08-09Merge rubygems/bundler HEAD.Hiroshi SHIBATA
Pick from https://github.com/rubygems/rubygems/commit/dfbb5a38114640e0d8d616861607f3de73ee0199 Notes: Merged: https://github.com/ruby/ruby/pull/6224
2022-08-03[rubygems/rubygems] Warn (rather than crash) when setting `nil` ↵David Rodríguez
specification versions https://github.com/rubygems/rubygems/commit/a4ba1a4d97
2022-07-22RubyGems: Enable Style/StringLiterals copTakuya Noguchi
Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
2022-07-16[rubygems/rubygems] Drop support for old `Gem::Specification` versionsNobuyoshi Nakada
`specification_version` method was added before RubyGems 1.0, and `add_runtime_dependency` method was before 1.2. These seem aged enough to remove. https://github.com/rubygems/rubygems/commit/92770c5cd9
2022-07-14[rubygems/rubygems] Fix `gem update --system` crash while regenerating binstubsDavid Rodríguez
Since a few commits ago, we no longer call `Gem::Specification.reset` after each invocation of `Gem::Installer#install`. This means we don't call it when the default Bundler is installed during `gem update --system`. This causes no issues until the end of the upgrade process when: * The previous default Bundler spec is removed from disk. * All specification stubs are turned into real specifications by loading them from disk. But the one for Bundler no longer exists so materializes to `nil` and regenerating binstubs crashes like this: ``` Bundler 2.4.0.dev installed RubyGems 3.4.0.dev installed Regenerating binstubs ERROR: While executing gem ... (NoMethodError) undefined method `platform' for nil:NilClass /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/pristine_command.rb:116:in `block in execute' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/specification.rb:981:in `block in each' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/specification.rb:980:in `each' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/specification.rb:980:in `each' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/pristine_command.rb:116:in `map' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/pristine_command.rb:116:in `each' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/pristine_command.rb:116:in `select' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/pristine_command.rb:116:in `execute' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/command.rb:323:in `invoke_with_build_args' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/command.rb:301:in `invoke' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/setup_command.rb:604:in `regenerate_binstubs' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/setup_command.rb:183:in `execute' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/command.rb:323:in `invoke_with_build_args' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/command_manager.rb:185:in `process_args' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/command_manager.rb:149:in `run' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/gem_runner.rb:51:in `run' setup.rb:33:in `<main>' ``` We fix it by more carefully managing the removal of the previous default Bundler gem. https://github.com/rubygems/rubygems/commit/9989f6d5af
2022-07-13Merge RubyGems and Bundler masterHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6124
2022-06-24Sync RubyGems & Bundler with upstream repoDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/6054
2022-06-12[rubygems/rubygems] Don't on gemspecs with invalid `require_paths`, just warnDavid Rodríguez
These gemspecs already work most of the times. When they are installed normally, the require_paths in the gemspec stub line becomes actually correct, and the incorrect value in the real gemspec is ignored. It only becomes an issue in standalone mode. In Ruby 3.2, `Kernel#=~` has been removed, and that means that it becomes harder for us to gracefully deal with this error in standalone mode, because it now happens earlier due to calling `Array#=~` for this invalid gemspec (since require_paths is incorrectly an array of arrays). The easiest way to fix this is to actually make this just work instead by automatically fixing the issue when reading the packaged gemspec. https://github.com/rubygems/rubygems/commit/d3f2fe6d26
2022-06-07[rubygems/rubygems] Remove unnecessary string concatenationDaniel Berger
https://github.com/rubygems/rubygems/commit/81ccb3ab89
2022-06-06[rubygems/rubygems] Unify loading `Gem::Requirement`David Rodríguez
It was being explicitly required from `Gem::Specification` but also a strange autoload was set for it at `Gem::Version`. The autoload was non standard because it should've been done in the `Gem` module, not in `Gem::Specification`, since that's where the constant is expected to get defined. Doing this might get deprecated in the future, and it was not being effective anyways due to the explicit require. Unify everything with an `autoload` at the right place. https://github.com/rubygems/rubygems/commit/174ea3e24c
2022-06-01[rubygems/rubygems] Restore ability to load old marshalled gemspec that use ↵David Rodríguez
`YAML::PrivateType` This issue was not detected because when all traces of old YAML parser and emitter `Syck` were removed, this null-type.gemspec.rz marshalled gemspec was updated to no longer load `YAML::Syck::PrivateType` but load `Psych::PrivateType` instead. However, realworld old marshalled gemspecs still use the `YAML::PrivateType` constant, so this commit replaces the gemspec to be the real pry-0.4.7 marshalled gemspec, so that it catches this issue. https://github.com/rubygems/rubygems/commit/51b330b8d2
2022-06-01[rubygems/rubygems] Remove no longer needed `Psych::PrivateType` cleanupDavid Rodríguez
This old bug used to affect the `rubyforge_project` field in serialized gemspecs. However, this field has been removed and it's no longer present in marshaled loaded gemspecs. So, while the constant is still present in these marshalled gemspecs and we still need to make sure it exists, we no longer need to clean it up from the loaded data. https://github.com/rubygems/rubygems/commit/09df18e522
2022-05-20Merge RubyGems and Bundler HEADHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/125415593ead9ab69a9f0bb5392c9d7ec61b1f51
2022-04-28Merge ↵Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/3f7d0352e84b29d4a2d4cd93b31e5ebdb5f79cc6 Notes: Merged: https://github.com/ruby/ruby/pull/5669
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-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-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-11[rubygems/rubygems] Markup code with RDoc notationsNobuyoshi Nakada
https://github.com/rubygems/rubygems/commit/c29cd23826
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-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-03[rubygems/rubygems] Move required_ruby_version gemspec attribute to ↵Josef Šimánek
recommended section. https://github.com/rubygems/rubygems/commit/de6552ac30
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-02Update licenses= documentationCarlos Palhares
2021-10-09[rubygems/rubygems] Improve performance of Specification#missing_extensions?Masataka Pocke Kuwabara
https://github.com/rubygems/rubygems/commit/90c1919f94
2021-08-31[rubygems/rubygems] Refactor Ruby platform priority condition to its own methodDaniel Niknam
The `Gem::Platform::RUBY ? -1 : 1` has been used multiple times in different places and could be refactored to a method (DRY). https://github.com/rubygems/rubygems/commit/9d43ca8f0c Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Prefer `require_relative` to `require` for internal requiresDavid Rodríguez
https://github.com/rubygems/rubygems/commit/c74fc58695 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-07-27[rubygems/rubygems] Remove all `syck` traces from `rubygems`David Rodríguez
After reading [this blog post](https://blog.rubygems.org/2011/08/31/shaving-the-yaml-yak.html), published almost 10 years ago already, my understanding is that this problem could come up in two ways: * Rubygems.org serving corrupted gemspecs". As far as I understand this was fixed in rubygems.org a lot time ago, since https://github.com/rubygems/rubygems.org/pull/331. * Clients having a ten years old gemspec cache with some of these bad gemspecs. In this case, there's no easy solution but I think ten years is enough and rebuilding the cache should do the trick. So, I think it's time we remove this. https://github.com/rubygems/rubygems/commit/afcb15d556
2021-07-07Sync RubyGems and Bundler with upstreamHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/4634
2021-07-07Sync latest bundler & rubygems development versionDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/4533
2021-03-08Sync latest development version of bundler & rubygemsDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/4143
2020-12-08Merge prepare version of RubyGems 3.2.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3864
2020-09-28[rubygems/rubygems] Eval defaults with frozen_string_literal: trueJean Boussier
https://github.com/rubygems/rubygems/commit/d498ae3d62 Notes: Merged: https://github.com/ruby/ruby/pull/3599
2020-09-28Added `--platform` option to `build` commandNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3599
2020-09-23Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636"Hiroshi SHIBATA
31a6eaabc165d8a222e176f2c809d90622d88ec2 is obsoleted with https://github.com/rubygems/rubygems/pull/3820
2020-09-23Manually merged from https://github.com/rubygems/rubygems/pull/2636Hiroshi SHIBATA
Enable Style/EmptyLinesAroundClassBody rubocop cop.
2020-07-31[rubygems/rubygems] Gem::Specification#to_ruby doesn't need `openssl`David Rodríguez
The `openssl` require when openssl not present was having the side-effect the our custom require fallbacks would end up loading `Gem::Specification.stubs`. Co-authored-by: Alyssa Ross <hi@alyssa.is> https://github.com/rubygems/rubygems/commit/22c4ded4ad Notes: Merged: https://github.com/ruby/ruby/pull/3379