summaryrefslogtreecommitdiff
path: root/spec/bundler/install
AgeCommit message (Collapse)Author
19 hoursSkip to Bundler 4 directlyDavid Rodríguez
19 hours[rubygems/rubygems] Normalize Bundler version spec filtersDavid Rodríguez
https://github.com/rubygems/rubygems/commit/28b6a7cf5e
19 hours[rubygems/rubygems] Never ignore gems from path sources during activationDavid Rodríguez
The "ignore" attribute is a RubyGems thing to mark when a installed gem should be ignored for activation because its extensions are not properly compiled. In the case of gems from path sources, the warning is not accurate because extensions are compiled into the local lib path, which is not where RubyGems leaves its sentinel `gem.build_complete` file. Also, there's a single version of each gem in the path source available to Bundler, so we always certainly want to consider that for activation and never makes sense to ignore it. https://github.com/rubygems/rubygems/commit/ec5d33695e
3 days[rubygems/rubygems] Reword a couple of specs to further clarify themDavid Rodríguez
https://github.com/rubygems/rubygems/commit/e28b5e306f
3 days[rubygems/rubygems] Migrate mirror probe specs to use the compact index APIDavid Rodríguez
Could potentially fix some flakies we're using and make the specs more "modern" and simplifies them because less fallbacks are involved. https://github.com/rubygems/rubygems/commit/30da9a1a93
3 days[rubygems/rubygems] Consistently use instance variables directlyDavid Rodríguez
I don't think the indirection improve things. https://github.com/rubygems/rubygems/commit/b408b28844
3 days[rubygems/rubygems] Cleanup dead code, RubyGems 3.3 is no longer supportedDavid Rodríguez
https://github.com/rubygems/rubygems/commit/945a29a477
14 days[rubygems/rubygems] Extract stdboth spec helperDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb13f4e702
2025-06-05[rubygems/rubygems] Fix git source unlocking for multi-gem repositories like ↵David Rodríguez
Rails If you have ``` gem "rails", git: "https://github.com/rails/rails" ``` and then explicitly pin to an older ref, like ``` gem "rails", git: "https://github.com/rails/rails", ref: "https://github.com/rubygems/rubygems/commit/99bacb5aa8e5" ``` Then `bundle install` fails, because locked sources fail to be updated to use the new source. This commit fixes the problem by making sure get their source properly replaced. https://github.com/rubygems/rubygems/commit/5de8c2e0cf
2025-06-03[rubygems/rubygems] Partially phase out x64-mingw32 in favour of ↵Nicholas La Roux
x64-mingw-ucrt (platforms) - the x64-mingw32 platform has been superseded by x64-mingw-ucrt - the mingw-ucrt platform is present as of Windows 10, which was released 10 years ago in 2015 and all versions prior to 10 are end-of-life and 10 will be by mid October 2025 - newer rubies use the mingw-ucrt platform instead of the mingw32 platform, meaning using the deprecated platform can cause issues during gem installation https://github.com/rubygems/rubygems/commit/b9d871022e
2025-05-19[rubygems/rubygems] Fix test warnings introduced by recent CGI changesDavid Rodríguez
They read like this: ``` /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/util.rb:13: warning: method redefined; discarding old rfc1123_date /opt/hostedtoolcache/Ruby/3.4.3/x64/lib/ruby/3.4.0/cgi/util.rb:225: warning: previous definition of rfc1123_date was here /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/util.rb:34: warning: method redefined; discarding old pretty /opt/hostedtoolcache/Ruby/3.4.3/x64/lib/ruby/3.4.0/cgi/util.rb:246: warning: previous definition of pretty was here /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/escape.rb:16: warning: method redefined; discarding old escape /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/escape.rb:29: warning: method redefined; discarding old unescape /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/util.rb:13: warning: method redefined; discarding old rfc1123_date /opt/hostedtoolcache/Ruby/3.4.3/x64/lib/ruby/3.4.0/cgi/util.rb:225: warning: previous definition of rfc1123_date was here /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/util.rb:34: warning: method redefined; discarding old pretty /opt/hostedtoolcache/Ruby/3.4.3/x64/lib/ruby/3.4.0/cgi/util.rb:246: warning: previous definition of pretty was here /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/escape.rb:16: warning: method redefined; discarding old escape /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/escape.rb:29: warning: method redefined; discarding old unescape ``` The problem is that `rspec` loads `erb` for its configuration, which loads `cgi/util` from system gems. Then our tests change the `$LOAD_PATH` to make test gems installed in tmp visible to `require`, and then they all require `cgi` as a transitive dependency of `rack-test`, this time from `tmp` gems. This causes system and test specific copies to be mixed together and these warnings to be printed, but we have also observed failures in some tests with errors like > class variable @@accept_charset of CGI::Util is overtaken by CGI::Escape This changes should also fix those failures. The fix is to require all of `rack-test` (including `cgi`) before we have changed the `$LOAD_PATH`. Because the `$LOAD_PATH` is unchanged, RubyGems respects the version of `cgi` activated by RSpec, avoiding the double loads. https://github.com/rubygems/rubygems/commit/34e75465c6
2025-05-19Rename a couple of spec filesDavid Rodríguez
Generally are "realworld" specs are the ones using VCR cassettes of real requests. These files don't use that, so I moved them to a different place.
2025-04-15[rubygems/rubygems] Fix false positive warning about insecurely materialized gemDavid Rodríguez
In frozen mode, the previous logic would not set the platform locked originally in the materialized specification, and that would trigger the warning about insecure materialization incorrectly. https://github.com/rubygems/rubygems/commit/a18001e10c
2025-04-14[rubygems/rubygems] Fix edge case making `bundle update` behave incorrectlyDavid Rodríguez
If both a native and a generic version are locked, but the native version is incompatible with the running Ruby, Bundler will still keep the native version in the lockfile, since it could be potentially useful when using other rubies. However, when `bundle update` is run, this was not the case because the locked native gems were not using the right source when materializing. They were using the lockfile source instead of the Gemfile source, and that meant they could not be found when materializing, because the lockfile source always uses local mode so does not see them. The effect of this was normally that they were incorrectly removed from the lockfile and a strange "this spec has been possibly yanked" was printed in verbose mode. However, in certain situations (i.e., when the generic gem would bring extra dependencies), it could also make `bundle update` crash. The solution is, when adding this extra locked specs to the result after resolving, maybe sure they inherit the source from the resolved specs, so they can be found when materializing. `bundle install` did not have the issue because it passes locked specs to the resolver, and assigns the right source to them in `Definition#converge_locked_specs`. https://github.com/rubygems/rubygems/commit/91ce881fda
2025-04-09[rubygems/rubygems] Follow up to removal of rubyinstaller2 workaroundDavid Rodríguez
https://github.com/rubygems/rubygems/commit/5b312fd040
2025-04-04[rubygems/rubygems] Rubyinstaller2 fixed thisDavid Rodríguez
https://github.com/rubygems/rubygems/commit/08b3c48f41
2025-04-01[rubygems/rubygems] Stay away from FileUtils.rm_rf in Bundler specsDavid Rodríguez
Instead, skip the spec when run by ruby-core. Maybe the root cause can be fixed at some point. https://github.com/rubygems/rubygems/commit/09594ae5b8
2025-04-01[rubygems/rubygems] Let compact index response parser consistently return a ↵David Rodríguez
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. https://github.com/rubygems/rubygems/commit/0427d8c983
2025-03-31[rubygems/rubygems] Allow ruby platform to be remove also when dependencies ↵David Rodríguez
have changed Since we will now add it back if the final resolution is compatible, we can also get this kind of edge case (`bundle add`) working. https://github.com/rubygems/rubygems/commit/cdc5ebec77
2025-03-24Revert "Fix broken CI. (#12963)"Hiroshi SHIBATA
This reverts commit eb91c664dc0b4d69db09ae913f2d7a5ef3490d74. Notes: Merged: https://github.com/ruby/ruby/pull/12968
2025-03-24[rubygems/rubygems] Raise an error in frozen mode if CHECKSUMS entries are ↵David Rodríguez
missing https://github.com/rubygems/rubygems/commit/054a0cd76c Notes: Merged: https://github.com/ruby/ruby/pull/12968
2025-03-24[rubygems/rubygems] Fix redundant `path` configurationsDavid Rodríguez
The deployment setting already does this implicitly. https://github.com/rubygems/rubygems/commit/402b11fa39 Notes: Merged: https://github.com/ruby/ruby/pull/12968
2025-03-24[rubygems/rubygems] Improve grammar of some error messagesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/558a4765c7 Notes: Merged: https://github.com/ruby/ruby/pull/12968
2025-03-24[rubygems/rubygems] Consistently use "lockfile" over "lock file"David Rodríguez
https://github.com/rubygems/rubygems/commit/e891be9197 Notes: Merged: https://github.com/ruby/ruby/pull/12968
2025-03-23Fix broken CI. (#12963)Samuel Williams
* Increase timeout to fix flaky tests? * Fix bundler test - wording changed. expect "fatal: Remote branch deadbeef not found in upstream origin" to include "Revision deadbeef does not exist in the repository" Notes: Merged-By: ioquatix <[email protected]>
2025-03-12Restore to use rm_rf for failing exampleHiroshi SHIBATA
https://github.com/ruby/ruby/actions/runs/13804651931/job/38616664529?pr=12911
2025-03-12[rubygems/rubygems] Fix `ENAMETOOLONG` error when creating compact index cacheDavid Rodríguez
If a custom rubygems source URI is long enough, Bundler may end up raising an `ENAMETOOLONG` error and crash. This commit fixes the problem by trimming the cache slug size to fit usual OS requirements. https://github.com/rubygems/rubygems/commit/df40ff1e14 Co-authored-by: mbclu <[email protected]> Co-authored-by: martinemde <[email protected]>
2025-03-12[rubygems/rubygems] Path helper to build paths in compact index cacheDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d28f9b8515
2025-03-12[rubygems/rubygems] Prefer `FileUtils.rm_r` to `FileUtils.rm_rf` for specsDavid Rodríguez
Because it does not swallow errors if it fails to remove the given folders, making issues easier to debug. https://github.com/rubygems/rubygems/commit/0db12d7afc
2025-03-12[rubygems/rubygems] Refactor specs to not try to remove folders that don't existDavid Rodríguez
This has the following benefits: * Avoid duplicated work in some specs that first build a repo, and then overwrite it with a completely different set of gems. * Reduce RSpec nesting and improve readability. * The change also made surfaces several specs that were incorrect since they were unintentionally not testing the right thing. https://github.com/rubygems/rubygems/commit/ed430883e0
2025-03-10[rubygems/rubygems] Don't treat a git-sourced gem install as complete if ↵Tara Bass
only the '.git' directory is present. This recovers cases where a git-sourced install can be left in a partially installed state. https://github.com/rubygems/rubygems/commit/d132b7008d Notes: Merged: https://github.com/ruby/ruby/pull/12890
2025-02-21[rubygems/rubygems] Allow noop `bundle install` to work on read-only or ↵David Rodríguez
protected folders As long as there's nothing new to install and gems are already there. If not, give a meaningful error about what happened. This was how things already worked until https://github.com/rubygems/rubygems/commit/345ec45f5a87, so this commit partially reverts that change. https://github.com/rubygems/rubygems/commit/794b0ecb39
2025-02-18[rubygems/rubygems] Add additional assertions to specDavid Rodríguez
To make it consistent with the spec above it. https://github.com/rubygems/rubygems/commit/9a00bf8db9
2025-02-18[rubygems/rubygems] Add intermediate assertion to spec to help debuggingDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ffabab65f2
2025-02-14[rubygems/rubygems] Use preferred `:windows` value for Windows exclusivelyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/aee52d2874 Co-authored-by: johnnyshields <[email protected]>
2025-02-13[rubygems/rubygems] Fix `type` and `gemfile` not getting reported as invalid ↵David Rodríguez
options https://github.com/rubygems/rubygems/commit/5b6077a1e8
2025-02-13[rubygems/rubygems] Fix spec wordingDavid Rodríguez
This feature is not really deprecated, it's removed. https://github.com/rubygems/rubygems/commit/e7f5f061f5
2025-01-28[rubygems/rubygems] Support installing arm native gems on WindowsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/96496e3f53 Co-authored-by: Johnny Shields <[email protected]>
2025-01-28[rubygems/rubygems] Remove unnecessary platform helpersDavid Rodríguez
I think they add unnecessary indirection and inconsistency to the specs. https://github.com/rubygems/rubygems/commit/609924d985
2025-01-28[rubygems/rubygems] Refactor specs to use platform strings directlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d24c0c20e3
2025-01-20[rubygems/rubygems] Consistently assert command failureDavid Rodríguez
https://github.com/rubygems/rubygems/commit/faaa594a4a
2025-01-14Remove test dependency on loggerDavid Rodríguez
I think logger is only used to figure out which methods need to be made noops in order to silence webrick during tests. However, it seems possible to do the same using webrick's builtin logger and the current method does not seem even correct since it's not guaranteed that the logger gem and webrick's logger will use the same methods. Notes: Merged: https://github.com/ruby/ruby/pull/12568
2025-01-14[rubygems/rubygems] Don't remove platform specific variants from the ↵David Rodríguez
lockfile unless necessary Even if they don't match the current Ruby version, they could still work in other rubies. So it's better to keep them. https://github.com/rubygems/rubygems/commit/9a3e583b0c Notes: Merged: https://github.com/ruby/ruby/pull/12568
2024-11-26[rubygems/rubygems] Allow some materialized specs to be missingDavid Rodríguez
As long as some spec in the materialization is complete. https://github.com/rubygems/rubygems/commit/9a673b0bbb
2024-11-26[rubygems/rubygems] Remove unnecessary `verbose` parameterDavid Rodríguez
For consistency with other specs. https://github.com/rubygems/rubygems/commit/a5b2449896
2024-11-26[rubygems/rubygems] Remove unnecessary `let` and nestingDavid Rodríguez
https://github.com/rubygems/rubygems/commit/c519830d4d
2024-11-19Test with sinatra to 4.1.0David Rodríguez
2024-11-14[rubygems/rubygems] Revert "mustermann depends on URI::RFC2396_PARSER behavior"Hiroshi SHIBATA
This reverts commit https://github.com/rubygems/rubygems/commit/82b25dd75afd. https://github.com/rubygems/rubygems/commit/16adf53f23
2024-11-13[rubygems/rubygems] Include original error when openssl fails to loadDavid Rodríguez
https://github.com/rubygems/rubygems/commit/440343b791
2024-11-08[rubygems/rubygems] Warn on insecure materializationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bc2537de71