1427 Commits

Author SHA1 Message Date
Benoit Daloze
ff6c176028 Tweak rb_str_modify_expand() + read() spec to try to find out why it fails on some platforms
* Use a longer string as <= 23 characters it's embedded on CRuby and
  the value of rb_str_capacity() is implementation-specific.
2021-07-30 11:36:20 +02:00
Jeremy Evans
64ac984129 Make RubyVM::AbstractSyntaxTree.of raise for method/proc created in eval
This changes Thread::Location::Backtrace#absolute_path to return
nil for methods/procs defined in eval.  If the realpath of an iseq
is nil, that indicates it was defined in eval, in which case you
cannot use RubyVM::AbstractSyntaxTree.of.

Fixes [Bug #16983]

Co-authored-by: Koichi Sasada <ko1@atdot.net>
2021-07-29 13:51:03 -07:00
Benoit Daloze
6998d75824 Update to ruby/spec@b65d01f 2021-07-29 22:11:21 +02:00
Benoit Daloze
15d05f8120 Update to ruby/mspec@9542a88 2021-07-29 22:11:19 +02:00
Hiroshi SHIBATA
c3d31377b3
Bump unicode version for Ruby 3.1 2021-07-27 18:00:32 +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.

https://github.com/rubygems/rubygems/commit/d29dd2cb7b
2021-07-27 09:25:57 +09:00
Daniel Niknam
49176e8c8c
[rubygems/rubygems] Refactor Bundler::Dsl#check_rubygems_source_safety to improve readability
`check_rubygems_source_safety` is responsible for:

1. if there are multiple global sources
  - for bundle 3.x raise an error
  - for bundle 2.x print a warning
2. print a warning if there is no explicit global source

The second responsibility was added recently and now the logic could be
extracted to improve readability. Conditions are still live in the `check_rubygems_source_safety` method
since we don't want to call both functions always and that would help us achieve that.

https://github.com/rubygems/rubygems/commit/f3d7e946ee
2021-07-27 09:25:57 +09:00
Daniel Niknam
1ef360230e
[rubygems/rubygems] Deprecate Gemfile without an explicit global source
Raise a warning when parsing a Gemfile and it doesn't have a global source. Gemfiles like this, specially now that rubygems sources are are no longer merged into a single source for security, are very confusing because they generate a different lockfile depending on the gems you have locally installed. This is because bundler always use an implicit global source that defaults to locally installed gems.

https://github.com/rubygems/rubygems/commit/b7523ad21c
2021-07-27 09:25:57 +09:00
Daniel Niknam
2f9e0cf181
[rubygems/rubygems] Explicitly define a global source for tests
This is in preparation for deprecating source-less gemfiles.

https://github.com/rubygems/rubygems/commit/d6493fa3e2
2021-07-27 09:25:57 +09:00
Daniel Niknam
b500e8fab4
[rubygems/rubygems] Implement Bundler::SourceList#implicit_global_source?
This method is created to tell whether any global source exist in the object or not and it will be used by `Bundler:Dsl` to print a warning if no global source has been defined in the Gemfile.

https://github.com/rubygems/rubygems/commit/422fec4438
2021-07-27 09:25:57 +09:00
Daniel Niknam
91a3f06e98
[rubygems/rubygems] Implement Bundler::Source::Rubygems#no_remotes?
This method is created to tell whether any remote exist in the object or not and it will be used by `Bundler:SourceList` to tell if a global source has been defined implicitly or not.

https://github.com/rubygems/rubygems/commit/47e3ff0e47
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.

https://github.com/rubygems/rubygems/commit/35f2254dfc
2021-07-27 09:25:56 +09:00
David Rodríguez
24aca87def
[rubygems/rubygems] Make --quiet spec independent on the specific warning
We'll be removing the warning about no gem sources, so this spec will no
longer test that warnings are hidden by `--quiet`.

Test that in another way so that we don't lose the coverage when we
drop the specific warning about no gem server sources.

https://github.com/rubygems/rubygems/commit/cce4f86d28
2021-07-27 09:25:56 +09:00
David Rodríguez
6bcedabfdd
[rubygems/rubygems] Remove gem install hint when installing a gem fails
A fresh `gem install` might not reproduce the exact `bundle install`
environment that originally caused the error. It also makes it harder
for the user to troubleshoot the error since she needs to run a separate
command.

Instead, show the original error and backtrace directly.

https://github.com/rubygems/rubygems/commit/49c2abfec6
2021-07-27 09:25:55 +09:00
David Rodríguez
4271f4aea5
[rubygems/rubygems] Fix bundler binstub version selection
To mimic built-in rubygems behaviour, only thing that should be
approximated is the lockfile version. Other alternatives like
`BUNDLER_VERSION` should be respected exactly.

https://github.com/rubygems/rubygems/commit/dbd667d4bc
2021-07-27 09:25:55 +09:00
Daniel Niknam
90899c50c2
[rubygems/rubygems] Remove LoadError message in regards to requiring a relative file
Ruby 1.9.2 removed "." from LOAD_PATH for robustness and security reasons.
This code was introduced by 56fc830e19 commit
to helping users understand the issue and had a guard condition to include the message for `RUBY_VERSION >= "1.9"`.
However, the guard condition was removed as part of the "Ruby version leftover" cleanup by
8c9cf76e41

Ruby 1.9 development was ended a long time ago and this message is not useful anymore.

https://github.com/rubygems/rubygems/commit/a23609b15a
2021-07-27 09:25:55 +09:00
Andrew Haines
705b1bdef2
[rubygems/rubygems] Fix interrupt handling in Bundler workers
The existing interrupt handling using `SharedHelpers.trap` fails when the previous
handler for a signal is not callable (for example, when it is the string "DEFAULT").

Instead, we now handle interrupts by aborting the process when worker threads are
running, and restore the previous handler after worker threads are finished.

Fixes #4764.

https://github.com/rubygems/rubygems/commit/b9f455d487
2021-07-27 09:25:55 +09:00
Benoit Daloze
c8172d0b96 rb_iterate is no longer used in ruby/spec 2021-07-26 13:24:38 +02:00
Nobuyoshi Nakada
42745ecae3
Remove meaningless IO#close_on_exec= spec [Feature #17745] 2021-07-20 21:45:11 +09:00
Nobuyoshi Nakada
e0e12202c7
Use rb_block_call() instead of the deprecated rb_iterate() 2021-07-18 11:40:21 +09:00
Kazuhiro NISHIYAMA
f11f9fc921
Disable spec of pattern matching is experimental since 3.1 2021-07-17 13:24:23 +09:00
Kazuhiro NISHIYAMA
2a5b5ff49a
Fix a spec failure
```
1)
Warning.[]= :experimental emits and suppresses warnings for :experimental FAILED
Expected "" =~ /is experimental/
to be truthy but was nil
```
2021-07-17 13:24:08 +09:00
Kazuhiro NISHIYAMA
503fa1620c
Fix a spec failure
```
1)
The -W command line option with :no-experimental suppresses experimental warnings FAILED
Expected "" =~ /is experimental/
to be truthy but was nil
```
2021-07-17 13:16:48 +09:00
Nobuyoshi Nakada
301d194ee3 Add Integer.try_convert [Feature #15211] 2021-07-16 17:49:53 +09:00
David Rodríguez
71d3c9bbfa
[rubygems/rubygems] Fix bundle plugin install --help showing bundle install's help
https://github.com/rubygems/rubygems/commit/b7b7d16aa8
2021-07-16 15:40:08 +09:00
Andre Arko
c5f78ade5a
[rubygems/rubygems] fix dangling empty hooks
it turns out that running `bundle plugin uninstall some-plugin` would remove that plugin from the list of hooks, but if the list of hooks for an event was now empty, we would serialize the empty array into yaml as an empty single bullet item. which would then get unserialized as a plugin with the name empty string. which we would then try to load and explode. 😬

https://github.com/rubygems/rubygems/commit/545ebba9a5
2021-07-16 15:40:08 +09:00
Andre Arko
a3d2200b2a
[rubygems/rubygems] test loading bad plugins with nil/empty names
https://github.com/rubygems/rubygems/commit/e64b1f3497
2021-07-16 15:40:07 +09:00
Andre Arko
5cce96891e
[rubygems/rubygems] remove focus
https://github.com/rubygems/rubygems/commit/584a393812
2021-07-16 15:40:07 +09:00
David Rodríguez
227c2deff4
[rubygems/rubygems] Fix development gem unintentionally removed on an edge case
When a development dependency was duplicated inside the gemspec and
Gemfile with the same requirements, we went from printing a warning to
removing the gem altogether.

This change makes it not print a warning, but don't remove the gem
either.

https://github.com/rubygems/rubygems/commit/8bb2488131
2021-07-16 15:40:07 +09:00
Hiroshi SHIBATA
896bbb9fad Merge RubyGems/Bundler master from 8459ebd6ad65ce3397233416dc64083ae7572bb9 2021-07-14 10:48:07 +09:00
Martin Dürst
146a943d9a Fix ruby_version guards in Unicode/Emoji version specs
Correct version guards in ruby_version in Unicode/Emoji version
specs to correctly use exclusive range endings.
2021-07-08 14:45:03 +09:00
Martin Dürst
ba357bace2 Add new Unicode/Emoji version checks to spec/ruby/library/rbconfig
- Limit Unicode version 12.1.0 to Ruby versions 2.6.3 - 3.0
- Check that Ruby version 3.1 has Unicode version 13.0.0
- Limit Unicode Emoji version 12.1 to Ruby versions 2.7 - 3.0
- Check that Ruby version 3.1 has Unicode Emoji version 13.0
2021-07-08 14:45:03 +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
Yusuke Endoh
e946049665 [WIP] add error_squiggle gem
```
$ ./local/bin/ruby -e '1.time {}'
-e:1:in `<main>': undefined method `time' for 1:Integer (NoMethodError)

1.time {}
 ^^^^^
Did you mean?  times
```

https://bugs.ruby-lang.org/issues/17930
2021-06-29 23:45:49 +09:00
Benoit Daloze
750f807575 Update to ruby/spec@c6e9285 2021-06-02 15:54:38 +02:00
Benoit Daloze
22e2a6a999 Update to ruby/spec@a0b7d0d 2021-06-02 14:34:07 +02:00
Benoit Daloze
a4fbc7e288 Update to ruby/mspec@0091e8a 2021-06-02 14:34:01 +02:00
Jun Aruga
2048dfc5d3 Skip a File.atime test randomly failing on Travis ppc64le.
See <https://bugs.ruby-lang.org/issues/17926>.
2021-06-02 12:38:27 +02:00
Jeremy Evans
f516379853 Fix Enumerator::ArithmeticSequence handling of float ranges
Depending on the float range, there could be an off-by-one error,
where the last result that should be in the range was missed. Fix
this by checking if the computed value for the expected value
outside the range is still inside the range, and if so, increment
the step size.

Fixes [Bug #16612]
2021-05-29 08:56:15 -07:00
Hiroshi SHIBATA
835a495608 Guard ruby/spec with spec/mspec/tool/wrap_with_guard.rb 2021-05-27 14:42:11 +09:00
Benoit Daloze
725b666076 Use a shared spec for YAML.load and YAML.unsafe_load 2021-05-17 20:17:52 +02:00
Benoit Daloze
2321ade41d Prefer respond_to? to defined? in MSpec 2021-05-17 20:12:39 +02:00
Yusuke Endoh
93fb186dd0 spec/ruby/library/yaml: Test YAML.unsafe_load instead of YAML.load in 3.1 2021-05-17 15:42:22 +09:00
Yusuke Endoh
008a63c477 Revert "Use YAML.unsafe_load instead of YAML.load."
This reverts commit a0e97b0e2e4314a0815d09beb825e38f234778da.
2021-05-17 15:32:41 +09:00
Hiroshi SHIBATA
a0e97b0e2e
Use YAML.unsafe_load instead of YAML.load.
This is a temporary workaround. We should rewrite the examples with
  permitted_classes.
2021-05-17 13:36:55 +09:00
Jeremy Evans
11ae581a4a Fix handling of control/meta escapes in literal regexps
Ruby uses a recursive algorithm for handling control/meta escapes
in strings (read_escape).  However, the equivalent code for regexps
(tokadd_escape) in did not use a recursive algorithm.  Due to this,
Handling of control/meta escapes in regexp did not have the same
behavior as in strings, leading to behavior such as the following
returning nil:

```ruby
/\c\xFF/ =~ "\c\xFF"
```

Switch the code for handling \c, \C and \M in literal regexps to
use the same code as for strings (read_escape), to keep behavior
consistent between the two.

Fixes [Bug #14367]
2021-05-12 18:55:43 -07:00
Takashi Kokubun
cc1ea6e023
Run nmake check on Actions (#4487)
* Run nmake check on Actions

* Skip tests not working in mswin GitHub Actions

* Override TEMP

* Revert "Skip tests not working in mswin GitHub Actions"

This reverts commit 544d2575fcdf23ae63cd25aa03fce10c28b259f2.

* Revert "Revert "Skip tests not working in mswin GitHub Actions""

This reverts commit e1f8ad7862c9c4be52dc6e1031a004621eb07e6e.

* Fix timeouts

* Skip some more broken tests

* Update windows.yml

* Add a guard for rbasic_spec

* Revert "Update windows.yml"

This reverts commit bc9694b6b3b9594d406378d15ca11723fb052bc8.

* Skip the ensure clause

* Simplify the ensure
2021-05-11 15:18:44 -07:00
David Rodríguez
5b0abba931 Sync bundler & rubygems 2021-05-11 11:29:41 +09:00
Nobuyoshi Nakada
ddc29e2989
net-http no longer requires stringio 2021-05-06 22:04:14 +09:00