1513 Commits

Author SHA1 Message Date
David Rodríguez
30b6df4144 [rubygems/rubygems] Improve error messages in gem helpers
Previously they were printing the original command that was run, and
telling the user to rerun it. However, the command sometimes would not
match the exact command that was run (for example, when using the
`--local` flag), and in any case, it's simpler and more useful to print
the underlying error anyways.

https://github.com/rubygems/rubygems/commit/5bc0d51b58
2021-10-13 23:30:11 +09:00
David Rodríguez
853004e04d [rubygems/rubygems] Fix bundle install crash due to an incorrectly incomplete resolve
In case we have a corrupted lockfile that claims to support a platform, but
it's missing platform specific gems for it, bundler has a check that
detects the situation and forces a re-resolve. The result of this check
is kept under the `@locked_specs_incomplete_for_platformn` instance
variable in `Definition`.

The installer, however, calls `Definition#nothing_changed?` before this
instance variable has been filled, so the result of it is actually
incorrect here since it will claim that nothing has changed, but
something has changed (locked specs are incomplete for the current
platform).

The consequence of this incorrect result is that the installer thinks it
can go on without re-resolving, resulting in the incomplete resolution
from the lockfile being used, and in a crash being triggered due to
that.

The solution is to make sure the `@locked_specs_incomplete_for_platform`
instance variable is filled before `nothing_changed?` gets called.
Moving it to `initialize` makes the most sense, not because it's the
best place for it (we can refactor this later), but because all of the
other "outdated definition" checks are already set there.

https://github.com/rubygems/rubygems/commit/708afdd789
2021-10-13 21:16:40 +09:00
David Rodriguez
0f1f95a3e3 [rubygems/rubygems] Fix bundle install to force reinstallation of deleted gems
https://github.com/rubygems/rubygems/commit/8950631f02
2021-10-13 16:21:42 +09:00
David Rodríguez
bd87397f73 [rubygems/rubygems] Use correct way to detect default gems
The other way, in particular matching a substring in the gemspec
summary, is brittle and no longer used since Ruby 2.0.

This needed rewriting the specs that depended on that way.

https://github.com/rubygems/rubygems/commit/059dbfa971
2021-10-13 16:21:42 +09:00
David Rodríguez
d6627ab85c [rubygems/rubygems] Remove unnecessary code
All supported rubygems versions implement this.

https://github.com/rubygems/rubygems/commit/2130782ef6
2021-10-13 16:21:41 +09:00
David Rodriguez
ad4e7308d2 [rubygems/rubygems] Make spec more realistic
The spec was just faking an installed gemspec without any installed gem
backing it up, resulting in `bundle install` claiming that the gem was
already installed when it was not.

https://github.com/rubygems/rubygems/commit/c35531d1c7
2021-10-13 16:21:41 +09:00
Kazuhiro NISHIYAMA
5deb273a1a
Fix a typo 2021-10-13 15:04:16 +09:00
David Rodriguez
0c3ac87345 [rubygems/rubygems] Show a warning in bundle info if gem has been deleted
https://github.com/rubygems/rubygems/commit/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.

https://github.com/rubygems/rubygems/commit/831edf1edf
2021-10-11 19:13:15 +09:00
David Rodriguez
62d1deb0d1 [rubygems/rubygems] Match a more exact warning message
https://github.com/rubygems/rubygems/commit/80158e9d75
2021-10-11 19:13:15 +09:00
David Rodriguez
9072228a26 [ruby/rubygems] Get specs green on arm64-darwin-20
https://github.com/rubygems/rubygems/commit/7a0bd9801d
2021-10-11 00:23:54 +09:00
Nobuyoshi Nakada
7f3786c3e8
Use an isolated class
The number of all instances of `Class` may be affected by GC-able
anonymous classes created by other tests.
2021-10-10 01:20:40 +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
David Rodríguez
91f794b516 [rubygems/rubygems] I see no harm in this, allow it
https://github.com/rubygems/rubygems/commit/01feb40283
2021-10-09 08:05:46 +09:00
David Rodríguez
991a3aad05 [rubygems/rubygems] git commit no longer needs to be allowed to fail
https://github.com/rubygems/rubygems/commit/12af03d32f
2021-10-09 08:05:34 +09:00
David Rodríguez
a5bae843ff [rubygems/rubygems] Let update_git work with whatever branch is checkout out
Unless the `:branch` option is passed.

It's more efficient, and it results in less hardcoding of "master".

https://github.com/rubygems/rubygems/commit/aa5c3409ab
2021-10-09 08:05:23 +09:00
David Rodríguez
5a34b639fc [rubygems/rubygems] Make adding files and committing into a single command
For efficiency.

https://github.com/rubygems/rubygems/commit/979d1634dd
2021-10-09 08:05:11 +09:00
David Rodríguez
b857a87653 [rubygems/rubygems] Keep different code in custom branch in dummy repo
This doesn't affect the outcome of the test, but it makes the `git
commit` command inside `update_git` not fail because of not having
anything to commit.

https://github.com/rubygems/rubygems/commit/ad0160ed97
2021-10-09 08:04:59 +09:00
David Rodríguez
70066196a0 [rubygems/rubygems] Fix typo
We want to update the original repo, not a fresh one.

This went undetected because the `git commit` command inside the
`update_git` method ignores failures, and in this case it was failing
because all files are untracked in the new repo.

I will fix that later but for now fix the typo.

https://github.com/rubygems/rubygems/commit/c889f1d715
2021-10-09 08:04:48 +09:00
Masataka Pocke Kuwabara
d03d122ba1 [rubygems/rubygems] Improve performance of Specification#missing_extensions?
https://github.com/rubygems/rubygems/commit/90c1919f94
2021-10-09 08:04:08 +09:00
gabriele renzi
ad92651d64 [rubygems/rubygems] Add glob infomation to Bundler::Source::Git#to_s
The glob information was not specified in the string representation for
a source, which led to non-deterministic behaviour when generating the
lockfile, since sources are sorted by this value.

https://github.com/rubygems/rubygems/commit/493b880abc
2021-10-09 08:03:43 +09:00
Jeremy Evans
08759edea8
Remove autoload for constant if the autoload fails
Previously, if an autoload failed (the file was loaded, but the
constant was not defined by the autoloaded file). Ruby will try
to autoload again if you delete the autoloaded file from
$LOADED_FEATURES.  With this change, the autoload and the
constant itself are removed as soon as it fails.

To handle cases where multiple threads are autoloading, when
deleting an autoload, handle the case where another thread
already deleted it.

Fixes [Bug #15790]
2021-10-08 14:54:26 -07:00
Hiroshi SHIBATA
ae5dffd666
Followed up bd6e1a0f0883dba7b02f30cefe5ebec96d02cb90 2021-10-07 18:34:29 +09:00
Nobuyoshi Nakada
7ed1180e00
Remove the useless platform guard 2021-10-06 12:19:52 +09:00
Nobuyoshi Nakada
ddca0c6686
Fix filesystem dependent tests
Ruby cannot guarantee the resolutions of underlying filesystems.
2021-10-06 11:41:03 +09:00
Benoit Daloze
b9f34062f0 Update to ruby/spec@ccf0d85 2021-10-05 19:41:44 +02:00
Jean Boussier
afcbb501ac marshal.c Marshal.load accepts a freeze: true option.
Fixes [Feature #18148]

When set, all the loaded objects are returned as frozen.

If a proc is provided, it is called with the objects already frozen.
2021-10-05 18:34:56 +02:00
Jean byroot Boussier
529fc204af
marshal.c: don't call the proc with partially initialized objects. (#4866)
For cyclic objects, it requires to keep a st_table of the partially
initialized objects.
2021-09-30 16:50:31 +02:00
Hiroshi SHIBATA
2f19f4d1d8
Followed up behavior change of set
f360ebb306
2021-09-28 19:15:12 +09:00
Hiroshi SHIBATA
395da04aa6
Followed up ruby/spec examples for date.
f9f7f3a75e
2021-09-28 19:14:02 +09:00
Nobuyoshi Nakada
69ce154d6e
FL_USER flags on ohter than T_DATA are reserved [Misc #18059] 2021-09-25 15:38:38 +09:00
Nobuyoshi Nakada
225a29b9bc
FL_USER flags on ohter than T_DATA are reserved [Misc #18059] 2021-09-24 19:23:15 +09:00
fiveNinePlusR
105e037fe8 [rubygems/rubygems] Fix possible malicious website to example.com
example.com is the canonical stand in for domain examples and will never have a backing website.

via https://www.rfc-editor.org/rfc/rfc2606.html

https://github.com/rubygems/rubygems/commit/26622c81c2
2021-09-22 10:14:04 +09:00
Samuel Williams
4730a1e0ec Don't describe C function that does not exist in prior versions. 2021-09-20 22:07:34 +12:00
Samuel Williams
649c87bd86 Add C interface spec. 2021-09-20 18:30:51 +12:00
Jose Galisteo
b45fe48fbb
[rubygems/rubygems] Trigger install command by default on remove
Closes https://github.com/rubygems/rubygems/issues/4889

https://github.com/rubygems/rubygems/commit/2b1754479c
2021-09-17 20:46:18 +09:00
Nobuyoshi Nakada
fd918d1afa
Removed Module.allocate [Bug #17048] 2021-09-17 11:14:08 +09:00
Nobuyoshi Nakada
8f41c791b1
Add spec for MatchData#match and MatchData#match_length [Feature #18172] 2021-09-17 10:27:00 +09:00
Jean Boussier
89242279e6 Marshal.load: do not call the proc until strings have their encoding
Ref: https://bugs.ruby-lang.org/issues/18141
2021-09-15 08:00:18 +09:00
Nobuyoshi Nakada
e802587433
Add printf attribute to functions call va_list format functions 2021-09-12 14:05:52 +09:00
卜部昌平
f752382688 spec/ruby/optional/capi/ext: must support GCC 5
What a silly bug.
2021-09-10 20:00:06 +09:00
卜部昌平
b0f0120267 spec/ruby/optional/capi/ext: support ruby < 3
RBIMPL_WARNING_PUSH is a 3.0 feature.  Rubyspec OTOH has to support 2.x.
2021-09-10 20:00:06 +09:00
卜部昌平
b563b9c48f spec/ruby/optional/capi/ext: suppress warnings
These warnings are okay here.
2021-09-10 20:00:06 +09:00
Benoit Daloze
258661409e Update to ruby/spec@b1e93a2 2021-09-07 19:01:07 +02:00
Benoit Daloze
a375640ea5 Update to ruby/mspec@e768949 2021-09-07 19:01:03 +02:00
David Rodríguez
4bc87cb1fb [rubygems/rubygems] Remove syck traces from bundler
Same reason as in the previous commit.

https://github.com/rubygems/rubygems/commit/f00a6c8516
2021-08-31 19:06:14 +09:00
David Rodríguez
c119dd2b5a [rubygems/rubygems] Fix bundle plugin install misdetection of installed versions
https://github.com/rubygems/rubygems/commit/9c88db949d
2021-08-31 19:06:14 +09:00
David Rodríguez
71b937d3d7 [rubygems/rubygems] Normalize setting GEM_PATH
https://github.com/rubygems/rubygems/commit/4188ebd568
2021-08-31 19:06:14 +09:00
David Rodríguez
f934096638 [rubygems/rubygems] Make plugin installation idempotent
The error had not be caught be specs because `bundle install` was
returning a zero exit code when plugin installation errors happened. So
I fixed that issue too.

https://github.com/rubygems/rubygems/commit/90cde87856
2021-08-31 19:06:14 +09:00
Matt Larraz
2aed061384 [rubygems/rubygems] Correctly redact credentials when using x-oauth-basic
https://github.com/rubygems/rubygems/commit/290b6ab078
2021-08-31 19:06:14 +09:00