Commit graph

126 commits

Author SHA1 Message Date
Victor Gama
bc6c1e0e25 [rubygems/rubygems] Copy template contents instead of file and perms
This allows the file to be created without copying permissions
from Bundler's installation source. The previous behaviour was
noticed after installing Ruby through brew, and using bundle
init, which yielded a read-only Gemfile.

839a06851d
2022-10-03 20:41:45 +09:00
David Rodríguez
24fd2f73d0 Resync Bundler & RubyGems 2022-09-08 11:25:03 +09:00
Hiroshi SHIBATA
3eca1e438d Merge 16c3535413 2022-09-05 14:37:12 +09:00
David Rodríguez
b87ddd7538 [rubygems/rubygems] Fix bundle platform crash when there's a lockfile with no Ruby locked
49fc54e87d
2022-08-21 17:53:40 +09:00
David Rodríguez
35c65e7ba6 [rubygems/rubygems] Fix conservative updates regardless of --strict
c9a1d69a8d
2022-08-03 16:33:52 +09:00
Hiroshi SHIBATA
71794a75db Merge rubygems/bundler HEAD
Pick from 8331e63263
2022-08-03 13:14:10 +09:00
David Rodríguez
13305bf0c9 [rubygems/rubygems] Fix crash when running bundle outdated in debug mode
Previously it would crash like this:

````
$ /Users/deivid/.asdf/installs/ruby/3.1.2/bin/ruby -I/Users/deivid/Code/rubygems/rubygems/bundler/spec -r/Users/deivid/Code/rubygems/rubygems/bundler/spec/support/artifice/fail.rb -r/Users/deivid/Code/rubygems/rubygems/bundler/spec/support/hax.rb /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle outdated --patch --strict --filter-patch
Running `bundle outdated --filter-patch --patch --strict` with bundler 2.4.0.dev
Found changes from the lockfile, re-resolving dependencies because bundler is unlocking Using a local server, bundler won't use the CompactIndex API
Fetching source index from file:///Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/remote4/
Resolving dependencies...
--- ERROR REPORT TEMPLATE -------------------------------------------------------

```
RuntimeError: LazySpecification has not been materialized yet (calling :loaded_from [])
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/lazy_specification.rb:147:in `method_missing'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:214:in `gem_column_for'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:174:in `block in print_gems_table'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:173:in `map'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:173:in `print_gems_table'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:123:in `run'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:420:in `outdated'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:31:in `dispatch'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:25:in `start'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/exe/bundle:48:in `block in <top (required)>'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/exe/bundle:36:in `<top (required)>'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:25:in `load'
  /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:25:in `<main>'
```
````

23c46f3b57
2022-08-01 23:14:23 +09:00
David Rodríguez
030050cdfa [rubygems/rubygems] Make --standalone play nice with --local
I'm not sure if using relative paths in the generated script is best for
this case, since it makes the script not movable, but that can be
improved later.

7f5bdbb842
2022-07-30 04:24:25 +09:00
David Rodríguez
b515fdcc32 [rubygems/rubygems] No need to set anything at all unless standalone is given
d695c8da3e
2022-07-30 04:24:24 +09:00
moe
c3d9849df9 [rubygems/rubygems] Add ignore_funding_requests config flag
ab302f72c9
2022-07-27 05:39:40 +09:00
David Rodríguez
4f5eb48dea [rubygems/rubygems] Fix bundle package --no-install no longer skipping install
This is a regression from cf749f8ffa. The
funny thing is that we have a spec for this feature, so it was unclear
how we regressed here. It turns out there was a bug in one of our
negative matchers checking that gems ARE NOT included in a bundle.

This commit fixes the bug in the negative matcher and reverts
cf749f8ffa (with a slightly simpler diff).

3f9a4ff32a
2022-06-23 18:17:08 +09:00
David Rodríguez
95f5194b3c [rubygems/rubygems] Move no_install setting check to a more sensible place
It's only related to the `bundle cache` command, so it should be checked
there.

cf749f8ffa
2022-06-11 18:43:25 +09:00
Hiroshi SHIBATA
aeea88174d
Merge RubyGems and Bundler HEAD
125415593e
2022-05-20 17:32:19 +09:00
Hiroshi SHIBATA
678d58c850 Merge rubygems master 1e4eda741d732ca1bd7031aef0a16c7348adf7a5 2022-04-28 19:08:49 +09:00
David Rodríguez
156079a85d [rubygems/rubygems] Make --strict flag of update and outdated commands consistent
Previously they had slightly different behavior when combined with
conservative updating flags.

The correct behavior is the `--update-strict` option, so `--script` now
does that, The `--update-strict` option is left there for now but I will
deprecate it later.

ab42046229
2022-03-06 22:17:00 +09:00
Hiroshi SHIBATA
ff3d7b720e Merge RubyGems and Bundler master 2022-02-28 11:39:20 +09:00
Dan Jensen
0b2f6b942b [rubygems/rubygems] Skip "seller shipped" notification after delivery
If a Shipment has been delivered, there is no point in notifying the
buyer that the seller shipped. Instead, we should simply notify the
buyer that the shipment was delivered. This is relevant in cases where
the seller is late to mark a Shipment as shipped, so the first EasyPost
Tracker update marks it as delivered, or in cases where the seller
fails to mark as shipped and the buyer marks it as delivered.

This fixes a Shipment event handler so the buyer notification for
shipment is no longer invoked if the Shipment is already delivered.

09c2cadc86
2022-02-01 20:07:18 +09:00
Ngan Pham
42ef3fcaef [rubygems/rubygems] Use Gem::Platform.local instead of RUBY_PLATFORM
In certain places, we want to display the platform name with
`Gem::Platform.local` instead of `RUBY_PLATFORM`.

Fixes https://github.com/rubygems/rubygems/issues/5264

bdd1848ae8
2022-01-26 02:24:30 +09:00
Yusuke Nakamura
7353f950c3 [rubygems/rubygems] Change generated namespaced test class name in minitest
* `foo` => `TestFoo`
* `foo_bar` => `TestFooBar`
* `foo-bar` => `Foo::TestBar`

353cdd61c3
2022-01-20 01:04:53 +09:00
Yusuke Nakamura
4451313252 [rubygems/rubygems] Update generated minitest file style
foo     => test/test_foo.rb
foo-bar => test/foo/test_bar.rb
foo_bar => test/test_foo_bar.rb

c795e5d40d
2022-01-20 01:04:52 +09:00
Yusuke Nakamura
4e955b2e37 [rubygems/rubygems] Create minitest file to underscored path in "bundle gem" command
...with dashed gem name

In "bundle gem" command with dashed name gem (e.g. foo-bar) generates
`test/test_foo/bar.rb`, but this file contains undefined class `TestFoo`
and moreover, does not include in "bundle exec rake test" target.

Therefore, intentially the first test after gem created is fail, but in
case of gem name contains dash character is not.

The change doings...
(when "bundle gem foo-bar" called)

* create `test/test_foo_bar.rb`
* define `TestFooBar` class in `test/test_foo_bar.rb`

5d9a69fc0f
2022-01-20 01:04:52 +09:00
Hiroshi SHIBATA
d22511fd75 Merge rubygems/rubygems HEAD.
Picked at 12aeef6ba9a3be0022be9934c1a3e4c46a03ed3a
2022-01-19 15:01:44 +09:00
Vyacheslav Alexeev
d0a0637948 [rubygems/rubygems] Use Fiddle in bundle doctor to check for dynamic library presence
ecd495ce1b
2022-01-13 18:16:05 +09:00
Hiroshi SHIBATA
da6a5e3ed1 Merge RubyGems-3.3.3 and Bundler-2.3.3 2021-12-25 07:40:52 +09:00
Hiroshi SHIBATA
69dc2ea465 Merge RubyGems-3.3.0 and Bundler-2.3.0 2021-12-21 15:27:05 +09:00
Josef Šimánek
25423f0918 [rubygems/rubygems] Add --version parameter to bundle info command.
7d9fdd908d
2021-12-06 18:03:54 +09:00
David Rodríguez
248fae0ec4 [rubygems/rubygems] Improve sources representation
We have two representations of a source. Once used for sorting, which
should not depend on the source's state, but solely on its static
information, like remotes. Another one used for error and informational
messages, which should properly inform about the exact state of the
source when the message is printed.

This commit makes the latter be the default implementation of `to_s`, so
that error and informational messages are more accurate by default.

b5f2b88957
2021-12-03 20:00:50 +09:00
Hiroshi SHIBATA
0b53a8895f
Merge rubygems master fd676ac464491afaa0baf5435cb11b3f86229cbd 2021-12-01 11:00:10 +09:00
ooooooo-q
af59d35570 [rubygems/rubygems] Fix escape of filenames in bundle doctor
3ede1435ea
2021-11-30 01:29:34 +09:00
David Rodríguez
f3320f164f [rubygems/rubygems] Fix bundle info sometimes claiming that bundler has been deleted
fe1a31db31
2021-11-26 08:50:52 +09:00
David Rodriguez
9fbf3a1f6f
Unify issue template and ISSUES.md document
Some crucial information to ease maintainers work, like the advice of
upgrading rubygems and bundler, was one step away from the issue
template, making it easier for some users to miss.

Now all relevant information is written directly in the bug report
template.
2021-10-25 20:48:51 +09:00
David Rodriguez
0f1f95a3e3 [rubygems/rubygems] Fix bundle install to force reinstallation of deleted gems
8950631f02
2021-10-13 16:21:42 +09:00
David Rodriguez
0c3ac87345 [rubygems/rubygems] Show a warning in bundle info if gem has been deleted
ff86cd7dd2
2021-10-11 19:13:16 +09:00
David Rodriguez
607efe9154 [rubygems/rubygems] Show the exact name of the gem that was deleted
If a non exact name (matched as a regexp) is passed to `bundle info`,
these strings might not match.

831edf1edf
2021-10-11 19:13:15 +09:00
OKURA Masafumi
7e506716d2
Newly generated gems require Ruby 2.6.0
In 2021, Ruby 2.5 and older are EOL.
We can set the default required Ruby version to 2.6.0 to
encourage people to use newer Ruby.
If the command is executed with old Ruby, it falls back to 2.3.0.
It's still possible to create a gem for older Ruby just by changing
two lines of code (one in gemspec and another is in rubocop.yml).
2021-10-09 09:07:47 +09:00
Jose Galisteo
b45fe48fbb
[rubygems/rubygems] Trigger install command by default on remove
Closes https://github.com/rubygems/rubygems/issues/4889

2b1754479c
2021-09-17 20:46:18 +09:00
David Rodríguez
3683781f53 [rubygems/rubygems] Restore working bundle check behaviour
As part of a recent bug fix where bundler was accidentally hitting the
network when not supposed to, I made some refactoring, and the commit I'm
reverting here
(d74830d00b)
was some cleanup that those refactorings allowed according to "past me".

That was completely wrong, `bundle check` should never consider cached
gems, only installed gems, so the code that was removed was necessary.

5483e98305
2021-08-31 19:06:14 +09:00
David Rodríguez
a3b3fdc3cd [rubygems/rubygems] Take advantage of target being a Pathname
c31b8cd232
2021-08-31 19:06:14 +09:00
David Rodríguez
8adc606271 [rubygems/rubygems] Fix git repo initialization on a path with spaces
a2d6e10192
2021-08-31 19:06:14 +09:00
David Rodríguez
8c1b31f7b3 [rubygems/rubygems] Don't warn default behaviour
ed845d861c
2021-08-31 19:06:14 +09:00
David Rodríguez
97de4c02ad [rubygems/rubygems] Remove now unnecessary code
d74830d00b
2021-08-31 19:06:14 +09:00
David Rodríguez
570167eaa9 [rubygems/rubygems] Give a bundle install hint when bundle list fails
98f5087e34
2021-08-31 19:06:14 +09:00
David Rodríguez
8116b7fef7 [rubygems/rubygems] Move rescue block around the code that can raise it
310937a546
2021-08-31 19:06:14 +09:00
David Rodríguez
c6e5267a77 [rubygems/rubygems] Remove unnecessary check
This error can only be raised when loading the cache, and we only load
the cache if this condition is met.

86d692edb8
2021-08-31 19:06:14 +09:00
David Rodríguez
dd22549e07 [rubygems/rubygems] Let original exception be re-raised
a669401a5a
2021-08-31 19:06:14 +09:00
Daniel Niknam
bd8daa8523
[rubygems/rubygems] Remove the warning for not defining a gem server source
Bundler has deprecated gemfiles without a global source and this feature
is now obsolete. `Bundler::Definition#has_rubygems_remotes?` is removed
because it's not used anymore.

d29dd2cb7b
2021-07-27 09:25:57 +09:00
David Rodríguez
095b5bbcc1
[rubygems/rubygems] Lazily load shellwords
ef6388656a
2021-07-27 09:25:56 +09:00
David Rodríguez
9ac89fe35e
[rubygems/rubygems] The --quiet should still display warnings
The is the previous intentional behaviour until
ca0676cb1c.

In my opinion, that previous behaviour was better and should be
restored, because we want our users to always see warnings and fix them.
And the original issue that motivated the change is fixable by other
means, namely through `BUNDLE_SILENCE_ROOT_WARNING`, or through
`BUNDLE_SILENCE_DEPRECATIONS` in general. Finally, the --quiet option is
still documented as "only print errors and warnings".

So this PR essentially reverts
ca0676cb1c
for the above reasons.

35f2254dfc
2021-07-27 09:25:56 +09:00
Hiroshi SHIBATA
c082c6eb7c Sync RubyGems and Bundler with upstream 2021-07-07 15:31:52 +09:00
David Rodríguez
6e2240a2f9 Sync latest bundler & rubygems development version 2021-07-07 13:30:20 +09:00