summaryrefslogtreecommitdiff
path: root/lib/bundler/dependency.rb
AgeCommit message (Collapse)Author
2025-06-06Move most of Bundler::GemHelpers to Gem::PlatformSamuel Giddins
This will help centralize wheel platform selection logic eventually Signed-off-by: Samuel Giddins <segiddins@segiddins.me>
2025-02-17[rubygems/rubygems] Make Bundler never instantiate development dependenciesDavid Rodríguez
Bundler does not really have a concept of "development dependencies", like RubyGems has. Bundler has the more generic concept of "groups". Under the hood, the `gemspec` DSL will put gemspec development dependencies under a `:development` Gemfile group, but there's no reason to instantiate these as development dependencies, they are regular runtime dependencies, except that they belong in a group named :development. By never instantiating development dependencies at all, we avoid having to introduce hacks to "undo" the type Bundler does not know about, and I also think the error messages read better. https://github.com/rubygems/rubygems/commit/9a06fa5bda
2025-02-06[rubygems/rubygems] Make `Bundler::Dependency` more memory efficientDavid Rodríguez
When resolving from scratch a Gemfile including only `"gem "rails", "~> 8.0.1"`, I get the following results: ### Before Total allocated: 288.21 MB (3498515 objects) Total retained: 119.10 MB (1357976 objects) ### After Total allocated: 277.44 MB (3383182 objects) Total retained: 117.55 MB (1338622 objects) https://github.com/rubygems/rubygems/commit/2d3d6e5015
2025-01-31[rubygems/rubygems] Consolidate the platform into a single list:Edouard CHIN
- Similar change than https://github.com/rubygems/rubygems/commit/29a1be0008e6, keep a single source of truth where we store the platform. The only change worth highlighing is the platform "maglev". It was not part of the supported platform of dependencies, so calling `gem 'foo', plaftorm: 'maglev'` would not work. However, it was supposed to according to https://github.com/rubygems/rubygems/commit/45ec86e2e528. That's why it was possible to do `Bundler.current_ruby.maglev?` or `Bundler.current_ruby.maglev_30?`. I didn't change the current behaviour and maglev is not supported, though I kept the `*maglev` methods as I believe CurrentRuby is public API. https://github.com/rubygems/rubygems/commit/29e219ebcf
2025-01-31[rubygems/rubygems] Consolidated the Ruby version list:Edouard CHIN
- We keep 2 list of supported ruby versions and each time a new ruby version is released we need to maintain both list. Forgetting to update one would prevent users from adding gem for a specific plaftorm (i.e. https://github.com/rubygems/rubygems/commit/7cd19d824d17 and https://github.com/rubygems/rubygems/commit/5462322f8f0c). Extracted the list from the Dependency class and moved it to the CurrentRuby class (which I believe was originally added for that reason). https://github.com/rubygems/rubygems/commit/a91edd6c1f
2025-01-28[rubygems/rubygems] Remove unnecessary `@autorequire` initializationDavid Rodríguez
It's initialized again later on. https://github.com/rubygems/rubygems/commit/c3ddc81659
2024-12-25Support Ruby 3.5 for bundler platformsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12452
2024-11-26[rubygems/rubygems] Enable `Performance/MapCompact` copDavid Rodríguez
https://github.com/rubygems/rubygems/commit/0c3a65871a
2024-04-12[rubygems/rubygems] bundler CLI option for add gem --glob=David Marshall
Bundler online documentation says that if the gem is located within a subdirectory of a git repository, you can use the `:glob` option to specify the location of its .gemspec `gem 'cf-copilot', git: 'https://github.com/cloudfoundry/copilot', glob: 'sdk/ruby/*.gemspec'` This change allows for equivalent functionality from the bundler CLI `bundle add cf-copilot --git=https://github.com/cloudfoundry/copilot --glob=sdk/ruby/*.gemspec` https://github.com/rubygems/rubygems/commit/91052e5868
2023-12-23Merge RubyGems-3.5.3 and Bundler-2.5.3Hiroshi SHIBATA
2023-12-13[rubygems/rubygems] Add 3.4 as a supported ruby versionSamuel Giddins
Since ruby trunk will be 3.4 very soon https://github.com/rubygems/rubygems/commit/36dd9a35dc
2023-12-07[rubygems/rubygems] Use modern hashes consistentlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb66253f2c
2023-12-01[rubygems/rubygems] Reduce array allocations when loading definitionSamuel Giddins
The same array was being re-created in a loop (as well as the `generic_local_platform`), which is avoidable by hoisting it to a frozen array created once https://github.com/rubygems/rubygems/commit/009a3c6d0d
2023-03-03[rubygems/rubygems] Alias CurrentRuby#mswin?, mswin64?, mingw?, x64_mingw? ↵johnnyshields
to #windows?. (This is done instead of logging a deprecation warning.) https://github.com/rubygems/rubygems/commit/b9fcc7c0ab
2023-02-07[rubygems/rubygems] Add Ruby 3.2 and 3.3 platforms to Gemfile DSLDaniel Colson
Along the same lines as https://github.com/rubygems/rubygems/pull/5469, this adds support for Ruby 3.2 and 3.3 platforms: `:ruby_32`, `mri_32`, etc. It also includes a spec that should help catch this earlier in the future, failing if we don't support platforms for the version of Ruby that is running the tests. https://github.com/rubygems/rubygems/commit/7cd19d824d
2022-12-24Merge RubyGems-3.4.0 and Bundler-2.4.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6987
2022-11-12Migrate our resolver engine to PubGrubHiroshi SHIBATA
https://github.com/rubygems/rubygems/pull/5960 Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
2022-09-08Resync Bundler & RubyGemsDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/6330
2022-09-05[rubygems/rubygems] Feature: `bundle add` supports `--path` optionMike Dalessio
https://github.com/rubygems/rubygems/commit/32bee01fbe
2022-08-29[rubygems/rubygems] Add platform :windows as a shortcut for all Windows ↵shields
platforms https://github.com/rubygems/rubygems/commit/f3c49ad3f7
2022-08-28[rubygems/rubygems] Bundler: make to_lock consistent between ↵Aleksandr Varnin
Gem::Dependency and Bundler::Dependency https://github.com/rubygems/rubygems/commit/971d57cf5a
2022-07-26Merge rubygems/bundler HEADHiroshi SHIBATA
Merge from https://github.com/rubygems/rubygems/commit/2af2520b4a7ab1c6eb1fdc3d2ef4d8c062d96ad7 Notes: Merged: https://github.com/ruby/ruby/pull/6184
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-04-16[rubygems/rubygems] Add modern rubies to the platformsBobby McDonald
https://github.com/rubygems/rubygems/commit/5462322f8f
2021-12-11[rubygems/rubygems] Add `github` and `ref` options to `bundle add`Vyacheslav Alexeev
https://github.com/rubygems/rubygems/commit/c3e54acab0
2021-05-11Sync bundler & rubygemsDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/4367
2020-12-15Prepare to release rubygems-3.2.1 and bundler-2.2.1Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3901
2020-05-13Update the bundler version with master branchHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3086
2019-08-03[bundler/bundler] Extract `expanded_platforms`David Rodríguez
https://github.com/bundler/bundler/commit/60d720eb06
2019-08-03[bundler/bundler] Added Ruby 2.6 to dsl.Hiroshi SHIBATA
https://github.com/bundler/bundler/commit/1892626858
2019-06-09Merge bundler master from upstream.Hiroshi SHIBATA
Pick from 8dd59e3ba97eb80a599f8149f31bf40773b69dc0
2018-11-02Added bundler as default gems. Revisit [Feature #12733]hsbt
* bin/*, lib/bundler/*, lib/bundler.rb, spec/bundler, man/*: Merge from latest stable branch of bundler/bundler repository and added workaround patches. I will backport them into upstream. * common.mk, defs/gmake.mk: Added `test-bundler` task for test suite of bundler. * tool/sync_default_gems.rb: Added sync task for bundler. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-22Postponing the Bundler merge.hsbt
I faced a big issue about Bundler with ruby core. I have no time to resolve it issue before 2.5 final release. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-01Update bundled bundler to 1.16.0.hsbt
* lib/bundler, spec/bundler: Merge bundler-1.16.0. * common.mk: rspec examples of bundler-1.16.0 needs require option. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-08Merge bundler to standard libraries.hsbt
rubygems 2.7.x depends bundler-1.15.x. This is preparation for rubygems and bundler migration. * lib/bundler.rb, lib/bundler/*: files of bundler-1.15.4 * spec/bundler/*: rspec examples of bundler-1.15.4. I applied patches. * https://github.com/bundler/bundler/pull/6007 * Exclude not working examples on ruby repository. * Fake ruby interpriter instead of installed ruby. * Makefile.in: Added test task named `test-bundler`. This task is only working macOS/linux yet. I'm going to support Windows environment later. * tool/sync_default_gems.rb: Added sync task for bundler. [Feature #12733][ruby-core:77172] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e