| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These hashes are actually modified. For example, to exclude some
dependencies under jruby.
So they should not be frozen.
Without this, running `bin/rake spec:deps` from jruby crashes with:
```
rake aborted!
FrozenError: can't modify frozen Hash
/path/to/bundler/spec/support/rubygems_ext.rb:36:in `dev_setup'
/path/to/bundler/Rakefile:29:in `block in <main>'
/path/to/bundler/Rakefile:14:in `block in invoke'
/path/to/bundler/Rakefile:13:in `invoke'
/path/to/bundler/spec/support/rubygems_ext.rb:98:in `gem_load_and_activate'
/path/to/bundler/spec/support/rubygems_ext.rb:45:in `gem_load'
Tasks: TOP => spec:deps
(See full trace by running task with --trace)
```
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
7646: Pin jruby-jars in warbler test r=deivid-rodriguez a=deivid-rodriguez
<!--
Thanks so much for the contribution!
If you're updating documentation, make sure you run `bin/rake man:build` and
squash the result into your changes, so that all documentation formats are
updated.
To make reviewing this PR a bit easier, please fill out answers to the following questions.
-->
### What was the end-user or developer problem that led to this PR?
<!-- Write a clear and complete description of the problem -->
The problem is that our CI is broken after the jruby-9.2.10.0 release.
### What is your fix for the problem, implemented in this PR?
My workaround is to pin the jruby-jars dependency of the warbler test to 9.2.9.0.
<!-- Explain the fix being implemented. Include any diagnosis you run to
determine the cause of the issue and your conclusions. If you considered other
alternatives, explain why you end up choosing the current implementation -->
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
|/
|
|
| |
It no longer works with jruby-jars 9.2.10.0.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
7635: Update code of conduct template to CC2.0 r=colby-swandale a=CoralineAda
### What was the end-user or developer problem that led to this PR?
The Contributor Covenant was updated to version 2.0 last year, but bundler was still using the old version.
### What is your fix for the problem, implemented in this PR?
I updated the `.md.tt` file containing the template, careful to preserve the interpolation of the email address.
Co-authored-by: Coraline Ada Ehmke <coraline@idolhands.com>
|
| | |
|
| | |
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
7633: Use `bundle config` instead of a deprecated flag in an error message. r=colby-swandale a=tatsuyafw
### What was the end-user or developer problem that led to this PR?
When trying to install gems to the system RubyGems and it fails, bundler shows a message as follows:
```
$ bundle install
# snip
Your user account isn't allowed to install to the system RubyGems.
You can cancel this installation and run:
bundle install --path vendor/bundle
to install the gems into ./vendor/bundle/, or you can enter your password
and install the bundled gems to RubyGems using sudo.
```
But the `--path` flag is deprecated, `bundle install --path vendor/bundle` shows:
```
$ bundle install --path vendor/bundle
[DEPRECATED] The `--path` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set path 'vendor/bundle'`, and stop using this flag
# snip
```
### What is your fix for the problem, implemented in this PR?
This PR changes the message to show `bundle config set --local path` instead of the deprecated `--path` flag.
Co-authored-by: Tatsuya Hoshino <tatsuya7.hoshino7@gmail.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When trying to install gems to the system RubyGems and it fails,
bundler shows the message as follows:
```
Your user account isn't allowed to install to the system RubyGems.
You can cancel this installation and run:
bundle install --path vendor/bundle
to install the gems into ./vendor/bundle/, or you can enter your password
and install the bundled gems to RubyGems using sudo.
```
But the `--path` flag is deprecated.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
7622: Fix config location edge case r=deivid-rodriguez a=deivid-rodriguez
<!--
Thanks so much for the contribution!
If you're updating documentation, make sure you run `bin/rake man:build` and
squash the result into your changes, so that all documentation formats are
updated.
To make reviewing this PR a bit easier, please fill out answers to the following questions.
-->
### What was the end-user or developer problem that led to this PR?
<!-- Write a clear and complete description of the problem -->
The problem was that if `BUNDLE_APP_CONFIG` is set to an absolute path, and there's no Gemfile up in the directory hierarchy, bundler would end up using the default config location instead of the customized one.
### What is your fix for the problem, implemented in this PR?
My fix is to completely avoid bundler's root resolution for resolving the config path in this case, since `BUNDLE_APP_CONFIG` includes all the information we need to know.
<!-- Explain the fix being implemented. Include any diagnosis you run to
determine the cause of the issue and your conclusions. If you considered other
alternatives, explain why you end up choosing the current implementation -->
Fixes #7610.
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
| |
| |
| |
| |
| |
| |
| |
| | |
If `BUNDLE_APP_CONFIG` is set to an absolute path, and there's no
Gemfile up in the directory hierarchy, bundler would end up using the
default config location instead of the customized one.
This commit fixes that.
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
7630: More paralelization improvements r=deivid-rodriguez a=deivid-rodriguez
<!--
Thanks so much for the contribution!
If you're updating documentation, make sure you run `bin/rake man:build` and
squash the result into your changes, so that all documentation formats are
updated.
To make reviewing this PR a bit easier, please fill out answers to the following questions.
-->
### What was the end-user or developer problem that led to this PR?
The developer problem is that CI is still failing sometimes. The reason is most likely due to side effects when parallelizing specs, since specs still change the current folder globally sometimes.
### What is your fix for the problem, implemented in this PR?
My changes stop changing folders globally in more places, to try to alleviate these issues.
<!-- Explain the fix being implemented. Include any diagnosis you run to
determine the cause of the issue and your conclusions. If you considered other
alternatives, explain why you end up choosing the current implementation -->
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
7614: Workaround jruby issue r=deivid-rodriguez a=deivid-rodriguez
<!--
Thanks so much for the contribution!
If you're updating documentation, make sure you run `bin/rake man:build` and
squash the result into your changes, so that all documentation formats are
updated.
To make reviewing this PR a bit easier, please fill out answers to the following questions.
-->
### What was the end-user or developer problem that led to this PR?
The problem is that if a Gemfile contains `:path` gem with a relative path, the bundler environment no longer works when the app is packaged as a `jar` with [warbler](https://github.com/jruby/warbler).
### What is your fix for the problem, implemented in this PR?
<!-- Explain the fix being implemented. Include any diagnosis you run to
determine the cause of the issue and your conclusions. If you considered other
alternatives, explain why you end up choosing the current implementation -->
Issue was introduced https://github.com/rubygems/bundler/commit/c7532ced89bbc8ddc7296c56391c1c3cc981c54a, since when `jruby` deals with urls of the form "uri:classloader", it has a weird inconsistency where `Pathname#expand_path` with an argument always returns `uri:classloader://` (double slash) as the canonical version of the path, while `Pathname#expand_path` without an argument always returns `uri:classloader/` (single slash) as the canonical version of it.
```
Pathname.new("uri:classloader://foo/bar").expand_path
# => <Pathname:uri:classloader:/foo/bar>
Pathname.new("uri:classloader:/foo/bar").expand_path
# => <Pathname:uri:classloader:/foo/bar>
Pathname.new("foo/bar").expand_path("uri:classloader://")
# => <Pathname:uri:classloader://foo/bar>
Pathname.new("foo/bar").expand_path("uri:classloader:/")
# => <Pathname:uri:classloader://foo/bar>
```
That makes `Pathname#relative_path_from` (introduced with the offending commit) explode because we end up passing to different "uri:classloader" kind of paths to it.
I believe this should be fixed in `jruby` be doing either or both of the following things:
* Make `Pathname#expand_path` return consistent versions of "uri:classpath" paths.
* Make `Pathname#relative_path_from` support different versions of "uri:classpath" paths, since they are both absolute paths after all.
But I'm workarounding the issue in `bundler` by adding an extra `expand_path` call at an appropriate place to make sure that the URLs we pass to `Pathname#relative_path_from` have a consistent shape.
Fixes #7598.
NOTE: We currently don't have the ability to run a full test suite for every PR on jruby because it's too slow (#4796 attempted to improve that but it was never completed), and it doesn't even fully pass (#7603). As an alternative, I'm adding some realworld bare tests to be run under jruby, just to make sure common tasks like this one work.
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
7619: [docs] Update CodeClimate link. r=deivid-rodriguez a=duckinator
This PR updates the CodeClimate link in `doc/contributing/HOW_YOU_CAN_HELP.md`, now that #7581 ("Update CodeClimate to use correct repository") is resolved.
Co-authored-by: Ellen Marie Dash <me@duckie.co>
|
| | | |
|
|\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | | |
7621: Update GitHub URLs in error messages. r=colby-swandale a=duckinator
This PR updates URLs pointing to the old repo in various error messages.
Co-authored-by: Ellen Marie Dash <me@duckie.co>
|
| |/ |
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
7620: February man pages r=deivid-rodriguez a=deivid-rodriguez
<!--
Thanks so much for the contribution!
If you're updating documentation, make sure you run `bin/rake man:build` and
squash the result into your changes, so that all documentation formats are
updated.
To make reviewing this PR a bit easier, please fill out answers to the following questions.
-->
### What was the end-user or developer problem that led to this PR?
No actual issue, just keeping the man pages current because the `build:check` task is failing.
### What is your fix for the problem, implemented in this PR?
Run `bin/rake man:build`.
<!-- Explain the fix being implemented. Include any diagnosis you run to
determine the cause of the issue and your conclusions. If you considered other
alternatives, explain why you end up choosing the current implementation -->
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
7609: Simplify arguments to `sh` r=deivid-rodriguez a=nobu
Get rid of escaping and splitting shell code repeatedly.
### What was the end-user or developer problem that led to this PR?
No changes for the end-users.
### What is your fix for the problem, implemented in this PR?
As `built_gem_path` in `install_gems` is not escaped, this may fix a trouble in the case the argument have shell special characters.
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
|/
|
|
| |
Get rid of escaping and splitting shell code repeatedly.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
7608: Merge 2.1.4 changelog r=deivid-rodriguez a=deivid-rodriguez
<!--
Thanks so much for the contribution!
If you're updating documentation, make sure you run `bin/rake man:build` and
squash the result into your changes, so that all documentation formats are
updated.
To make reviewing this PR a bit easier, please fill out answers to the following questions.
-->
### What was the end-user or developer problem that led to this PR?
The problem is that the changelog is up to date on 2-1-stable, but not in master.
### What is your fix for the problem, implemented in this PR?
My fix is to bring it up to date.
Closes #7607.
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
7597: Don't call Warn on LoadError r=deivid-rodriguez a=egiurleo
Related to #7192 and #7527. When trying to run bundler without OpenSSL, the resulting warning recommends recompiling Ruby, changing the Gemfile sources to http, and then gives an RVM-specific link that won't be helpful for everyone.
I think the error message is now specific enough to stand on its own and help people debug, so we should remove the warning entirely. (Open to other opinions, though.)
Co-authored-by: Emily Giurleo <e.m.giurleo@gmail.com>
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
7591: Revise compatibility policies r=indirect a=indirect
### What was the end-user problem that led to this PR?
The POLICIES file was a bit contradictory, saying in one place that Ruby versions would be dropped in minor releases, and in another place that Ruby versions would be dropped in major releases.
### What was your diagnosis of the problem?
The POLICIES file was not fully updated after several Bundler and RubyGems team discussions, agreements, and public statements during 2019.
### What is your fix for the problem, implemented in this PR?
This PR updates the POLICIES file to be consistent both with itself and with my understanding of the agreements and statements made by the Bundler and RubyGems teams in 2019.
/cc @deivid-rodriguez @colby-swandale
Co-authored-by: André Arko <andre@arko.net>
|
| | |
| | |
| | | |
keep editing, add tldr, mention man pages
|
| | | |
|
| | |
| | |
| | | |
removes trailing whitespace (I hope)
|
| | |
| | |
| | | |
I didn't actually mean to delete this paragraph, whoops
|
| | |
| | |
| | | |
This updates the written policies to reflect discussions, agreements, and public statements during 2019.
|
|\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
7600: Improve cache specs r=deivid-rodriguez a=deivid-rodriguez
<!--
Thanks so much for the contribution!
If you're updating documentation, make sure you run `bin/rake man:build` and
squash the result into your changes, so that all documentation formats are
updated.
To make reviewing this PR a bit easier, please fill out answers to the following questions.
-->
### What was the end-user or developer problem that led to this PR?
I noticed that when running specs on Windows, sometime I got a `_gem` leftover folder in the root of the repo.
### What is your fix for the problem, implemented in this PR?
My fix is to run the particular spec creating this test folder in `tmp`, just like the rest of the specs.
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
| | |
| | |
| | |
| | |
| | | |
Everything in this tests happens inside `tmp/` and `tmp/` is cleaned up
after each spec.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
So it runs in the isolated tmp as expected. Also, as it is written, this
spec would leave a leftover `_gem` folder in the root of the repo in
case it fails, since the root of the repo is obviously not cleaned up
after each test.
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
7527: Report original exception when failing to load openssl r=deivid-rodriguez a=p-mongo
### What was the end-user problem that led to this PR?
See #7192.
### What was your diagnosis of the problem?
Bundler discards `LoadError` class and message when reporting it.
### What is your fix for the problem, implemented in this PR?
Report class and message of the original exception when reporting `LoadError`.
Fixes #7192
Co-authored-by: Oleg Pudeyev <oleg@bsdpower.com>
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
Co-authored-by: Emily Giurleo <e.m.giurleo@gmail.com>
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
7594: Fix flaky spec failure r=deivid-rodriguez a=deivid-rodriguez
<!--
Thanks so much for the contribution!
If you're updating documentation, make sure you run `bin/rake man:build` and
squash the result into your changes, so that all documentation formats are
updated.
To make reviewing this PR a bit easier, please fill out answers to the following questions.
-->
### What was the end-user or developer problem that led to this PR?
The problem was flaky tests: https://www.travis-ci.org/rubygems/bundler/jobs/639403049.
### What is your fix for the problem, implemented in this PR?
My diagnosis was that if our test code happens to run `Gem.configuration` before `ENV["HOME"]` is changed for our tests, this test starts failing because the test first writes to the global `~/.gemrc` file (not in `tmp/`), because `Gem.config_file` has that value memoized. Then, however, the `bundle install` subprocess infers `Gem.config_file` from the modified `ENV["HOME"]` and tries to read `tmp/home/.gemrc`. However, that file doesn't exist, so rubygems configuration is ignored and doesn't print an error like the test expects.
My fix is to make this test independent from the specific rubygems configuration in the main test process.
<!-- Explain the fix being implemented. Include any diagnosis you run to
determine the cause of the issue and your conclusions. If you considered other
alternatives, explain why you end up choosing the current implementation -->
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If our test code happens to run `Gem.configuration` before `ENV["HOME"]`
is changed for our tests, this test starts failing because the test
first writes to the global `~/.gemrc` file (not in `tmp/`), because
`Gem.config_file` has that value memoized. Then, however, the `bundle
install` subprocess infers `Gem.config_file` from the modified
`ENV["HOME"]` and tries to read `tmp/home/.gemrc`. However, that file
doesn't exist, so rubygems configuration is ignored and doesn't print an
error like the test expects.
The error looks like this:
```
Failures:
1) Bundler friendly errors with invalid YAML in .gemrc reports a relevant friendly error message
Failure/Error: expect(err).to include("Failed to load #{home(".gemrc")}")
expected "" to include "Failed to load /home/travis/build/rubygems/bundler/tmp/1/home/.gemrc"
Commands:
$ /home/travis/.rvm/rubies/ruby-2.6.5/bin/ruby -I/home/travis/build/rubygems/bundler/lib:/home/travis/build/rubygems/bundler/spec -rsupport/hax -rsupport/artifice/fail /home/travis/build/rubygems/bundler/exe/bundle install
Running `bundle install` with bundler 3.0.0
Found changes from the lockfile, re-resolving dependencies because the list of sources changed, the dependencies in your gemfile changed, you added a new platform to your gemfile
Fetching source index from file:///home/travis/build/rubygems/bundler/tmp/1/gems/remote1/
Resolving dependencies...
Using bundler 3.0.0
0: bundler (3.0.0) from /home/travis/build/rubygems/bundler/lib/bundler/source
Fetching rack 1.0.0
Installing rack 1.0.0
Rack's post install message
0: rack (1.0.0) from /home/travis/build/rubygems/bundler/tmp/1/bundled_app/.bundle/ruby/2.6.0/specifications/rack-1.0.0.gemspec
Bundle complete! 1 Gemfile dependency, 2 gems now installed.
Bundled gems are installed into `./.bundle`
Post-install message from rack:
Rack's post install message
# $? => 0
# ./spec/bundler/friendly_errors_spec.rb:27:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:109:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:109:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:76:in `block (2 levels) in <top (required)>'
# ./spec/support/rubygems_ext.rb:98:in `load'
# ./spec/support/rubygems_ext.rb:98:in `gem_load_and_activate'
# ./spec/support/rubygems_ext.rb:45:in `gem_load'
```
My fix is to make this test independent from the specific rubygems
configuration in the main test process.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
7592: Fix running compact client updater spec in isolation r=deivid-rodriguez a=deivid-rodriguez
<!--
Thanks so much for the contribution!
If you're updating documentation, make sure you run `bin/rake man:build` and
squash the result into your changes, so that all documentation formats are
updated.
To make reviewing this PR a bit easier, please fill out answers to the following questions.
-->
### What was the end-user or developer problem that led to this PR?
The problem is the following error when running tests:
```
$ bin/rspec ./spec/bundler/compact_index_client/updater_spec.rb:47
Randomized with seed 40401
/home/deivid/.rbenv/versions/2.7.0/lib/ruby/2.7.0/tmpdir.rb:81: warning: method redefined; discarding old mktmpdir
/home/deivid/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/method_double.rb:63: warning: previous definition of mktmpdir was here
F
Retried examples: 0
Failures:
1) Bundler::CompactIndexClient::Updater when bundler doesn't have permissions on Dir.tmpdir Errno::EACCES is raised
Failure/Error:
expect do
updater.update(local_path, remote_path)
end.to raise_error(Bundler::PermissionError)
expected Bundler::PermissionError, got #<RSpec::Mocks::MockExpectationError: #<Double :fetcher> received unexpected message :call with (#<Double :remote_path>, {"Accept-Encoding"=>"gzip"})> with backtrace:
# ./spec/bundler/compact_index_client/updater_spec.rb:51:in `block (4 levels) in <top (required)>'
# ./spec/bundler/compact_index_client/updater_spec.rb:50:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:109:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:109:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:76:in `block (2 levels) in <top (required)>'
# ./spec/support/rubygems_ext.rb:98:in `load'
# ./spec/support/rubygems_ext.rb:98:in `gem_load_and_activate'
# ./spec/support/rubygems_ext.rb:45:in `gem_load'
# ./spec/bundler/compact_index_client/updater_spec.rb:50:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:109:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:109:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:76:in `block (2 levels) in <top (required)>'
# ./spec/support/rubygems_ext.rb:98:in `load'
# ./spec/support/rubygems_ext.rb:98:in `gem_load_and_activate'
# ./spec/support/rubygems_ext.rb:45:in `gem_load'
Finished in 0.24158 seconds (files took 0.21522 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/bundler/compact_index_client/updater_spec.rb:47 # Bundler::CompactIndexClient::Updater when bundler doesn't have permissions on Dir.tmpdir Errno::EACCES is raised
Randomized with seed 40401
```
### What is your fix for the problem, implemented in this PR?
My diagnosis was that it's the `Updater#initialize` method that requires `tmpdir` making `Dir.mktmpdir` available. In the offending spec, first we stub `Dir.mktmpdir`, and then we initialize the updater, requiring `tmpdir`, and "undoing the stub". That means the test no longer does what it's supposed to.
So, my fix is to early instantiate the update, so that by the time we stub `Dir.mktmpdir`, `tmpdir` has already been required, so the stub is not reverted.
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In particular,
```
$ bin/rspec ./spec/bundler/compact_index_client/updater_spec.rb:47
Randomized with seed 40401
/home/deivid/.rbenv/versions/2.7.0/lib/ruby/2.7.0/tmpdir.rb:81: warning: method redefined; discarding old mktmpdir
/home/deivid/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/rspec-mocks-3.9.1/lib/rspec/mocks/method_double.rb:63: warning: previous definition of mktmpdir was here
F
Retried examples: 0
Failures:
1) Bundler::CompactIndexClient::Updater when bundler doesn't have permissions on Dir.tmpdir Errno::EACCES is raised
Failure/Error:
expect do
updater.update(local_path, remote_path)
end.to raise_error(Bundler::PermissionError)
expected Bundler::PermissionError, got #<RSpec::Mocks::MockExpectationError: #<Double :fetcher> received unexpected message :call with (#<Double :remote_path>, {"Accept-Encoding"=>"gzip"})> with backtrace:
# ./spec/bundler/compact_index_client/updater_spec.rb:51:in `block (4 levels) in <top (required)>'
# ./spec/bundler/compact_index_client/updater_spec.rb:50:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:109:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:109:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:76:in `block (2 levels) in <top (required)>'
# ./spec/support/rubygems_ext.rb:98:in `load'
# ./spec/support/rubygems_ext.rb:98:in `gem_load_and_activate'
# ./spec/support/rubygems_ext.rb:45:in `gem_load'
# ./spec/bundler/compact_index_client/updater_spec.rb:50:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:109:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:109:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:76:in `block (2 levels) in <top (required)>'
# ./spec/support/rubygems_ext.rb:98:in `load'
# ./spec/support/rubygems_ext.rb:98:in `gem_load_and_activate'
# ./spec/support/rubygems_ext.rb:45:in `gem_load'
Finished in 0.24158 seconds (files took 0.21522 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/bundler/compact_index_client/updater_spec.rb:47 # Bundler::CompactIndexClient::Updater when bundler doesn't have permissions on Dir.tmpdir Errno::EACCES is raised
Randomized with seed 40401
```
It's the `Updater#initialize` method that requires `tmpdir` making
`Dir.mktmpdir` available. In the offending spec, first we stub
`Dir.mktmpdir`, and then we initialize the updater, requiring `tmpdir`,
and "undoing the stub". That means the test no longer does what it's
supposed to.
So, my fix is to early instantiate the update, so that by the time we
stub `Dir.mktmpdir`, `tmpdir` has already been required, so the stub is
not reverted.
|