Граф коммитов

2172 Коммитов

Автор SHA1 Сообщение Дата
Samuel Giddins e9ed0b3068 [rubygems/rubygems] Stop bundler eagerly loading all specs with exts
We were setting the wrong `extension_dir` for git specs stubs

Additionally, the call to `self.extension_dir` was loading the
remote spec, which was avoidable since the stub had an extension dir
(and in fact its #gem_build_complete_path does exactly what we want
anyway)

Finally, now set the base_dir when loading the remote_spec from a
stub specification, since the git source sets the base dir for stubs
based on where the spec _will_ be installed to, and we want to preserve
that so the base_dir for the loaded spec & the stub are the same

https://github.com/rubygems/rubygems/commit/a94acb465b
2023-09-21 18:28:54 +00:00
Samuel Giddins e52f9bd41e [rubygems/rubygems] Bundler error handling
https://github.com/rubygems/rubygems/commit/63b422b71a
2023-09-20 02:03:02 +00:00
Samuel Giddins 7c6b500d8d [rubygems/rubygems] Fix bundler specs using safe_load
https://github.com/rubygems/rubygems/commit/ccb1bb5d3a
2023-09-20 02:03:00 +00:00
Martin Emde 66ffa15ce0 [rubygems/rubygems] Gemfile ruby file: covers more version formats
Increase test coverage and be explicit about what is and is not supported.

https://github.com/rubygems/rubygems/commit/a096397a00
2023-09-14 19:43:21 +00:00
Alan Wu 11c32e33eb Adjust CGI spec to pass when ran in isolation
It failed with `NameError` because `Html3` is defined in the file that
`CGI::HtmlExtension` autoloads.
2023-09-12 16:33:18 -04:00
Martin Emde d43765c3a9 [rubygems/rubygems] Unify LockfileParser loading of SPECS section
Ensure unrecognized SPECS types are ignored

https://github.com/rubygems/rubygems/commit/5b33e91075
2023-09-12 19:42:46 +00:00
Alan Wu 39ee3e22bd Make Kernel#lambda raise when given non-literal block
Previously, Kernel#lambda returned a non-lambda proc when given a
non-literal block and issued a warning under the `:deprecated` category.
With this change, Kernel#lambda will always return a lambda proc, if it
returns without raising.

Due to interactions with block passing optimizations, we previously had
two separate code paths for detecting whether Kernel#lambda got a
literal block. This change allows us to remove one path, the hack done
with rb_control_frame_t::block_code introduced in 85a337f for supporting
situations where Kernel#lambda returned a non-lambda proc.

[Feature #19777]

Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
2023-09-12 11:25:07 -04:00
Benoit Daloze 0b5c61494e Update to ruby/spec@96d1072 2023-09-04 16:07:46 +02:00
Benoit Daloze 3504f928df Update to ruby/mspec@55d1a62 2023-09-04 16:07:44 +02:00
Hiroshi SHIBATA 2efd59e2eb [rubygems/rubygems] Use assertion message strictly
https://github.com/rubygems/rubygems/commit/98da5b9826
2023-09-01 07:04:43 +00:00
Jean Boussier bcc905100f BasicSocket#recv* return `nil` rather than an empty packet
[Bug #19012]

man recvmsg(2) states:

> Return Value
> These calls return the number of bytes received, or -1 if an error occurred.
> The return value will be 0 when the peer has performed an orderly shutdown.

Not too sure how one is supposed to make the difference between a packet of
size 0 and a closed connection.
2023-08-30 10:07:18 +02:00
Samuel Giddins 7a5df9d0ed [rubygems/rubygems] Fix bundle update --redownload
It now does the redownloading/installing just like bundle install --redownload

https://github.com/rubygems/rubygems/commit/3b058e5eca
2023-08-29 19:31:36 +00:00
Imir Kiyamov 23eb13d49d [rubygems/rubygems] Fixed malformed lockfile version on installing
https://github.com/rubygems/rubygems/commit/c969a192bf
2023-08-28 07:41:51 +00:00
David Rodríguez 80f35d96ae [rubygems/rubygems] Don't check for circular deps on full index sources
https://github.com/rubygems/rubygems/commit/d275cdccb1
2023-08-28 11:15:34 +09:00
David Rodríguez 279dcfab7a [rubygems/rubygems] Fix standalone install crashing when using legacy multi remote gemfiles
If a legacy multi remote Gemfile depends transitively on a default gem,
then in standalone mode we'd fail to fetch the proper version from the
source that includes it, since we were adding it to `specs` (instead of
`remote_specs`), which was already including the default version of the
gem, and thus preventing the remote version from "overwriting that" and
being added to the index. We should add it to the `remote_specs` index
directly instead.

https://github.com/rubygems/rubygems/commit/05f4f9dfc0
2023-08-28 11:15:33 +09:00
Martin Emde 7bf5f78028 [rubygems/rubygems] Refactor Fetcher#api_fetcher? and fetcher loading logic
https://github.com/rubygems/rubygems/commit/f664d60114
2023-08-28 11:15:32 +09:00
Nobuyoshi Nakada b054c2fe06 [Bug #19784] Fix behaviors against prefix with broken encoding
- String#start_with?
- String#delete_prefix
- String#delete_prefix!
2023-08-26 08:58:02 +09:00
David Rodríguez 023b8ddd22
[rubygems/rubygems] Don't use full indexes unnecessarily on legacy Gemfiles
On legacy Gemfiles with multiple remote sources, where all of them
support the compact index API, we were still falling back to full
indexes.

Fixing this also allows to simplifying the code.

https://github.com/rubygems/rubygems/commit/b1357c8e72
2023-08-25 18:34:47 +09:00
Samuel Williams d4c720a91b
Fix support for dynamic keys. (#8273)
* Skip RBS test.
2023-08-24 15:19:33 +12:00
Takashi Kokubun d7f1ea7155 Quarantine a very flaky spec
https://github.com/ruby/ruby/actions/runs/5956398507/job/16157091112

This has been extremely flaky on macOS GitHub Actions.
Benoit suggested to quarantine it if it's too problematic (it is) and
there's no reasonable fix in a short time (it already took too long).
So this commit follows the suggestion.

We should remove revert this once rb_cloexec_open() is fixed.
2023-08-23 14:32:26 -07:00
Gaurav Khanna b9ef819116 [rubygems/rubygems] Support `ruby file: ".tool-versions"` in Gemfile
(https://github.com/rubygems/rubygems/pull/6898)

Supports .tool-versions (ASDF) by checking for a line starting with "ruby"
before falling back to reading the entire file, as in .ruby-version.

https://github.com/rubygems/rubygems/commit/6c0a3e793a
2023-08-21 20:14:35 +00:00
Ngan Pham 3d7a030112 [rubygems/rubygems] Resolve ruby version file relative to bundle root
This is a follow up to https://github.com/rubygems/rubygems/issues/6742.
This change makes it so that the version file is resolved relative to
the Bundle root instead of the working directory.

Why is this useful?

If you run a commnad (eg `rails`) from the `app/` directory, your bundle
would fail to load.

https://github.com/rubygems/rubygems/commit/6d47ee98b9
2023-08-18 19:14:14 +00:00
Ngan Pham 75a4767525 [rubygems/rubygems] Add `file` option to `ruby` method in Gemfile
https://github.com/rubygems/rubygems/commit/fb9354b7bf
2023-08-17 16:07:54 +00:00
David Rodríguez fe240b672b
[rubygems/rubygems] Show better error when PAT can't authenticate to a private server
Before:

```
Fetching gem metadata from https://rubygems.org/........
Fetching source index from https://rubygems.pkg.github.com/my-org/

Bad username or password for https://x-access-token@rubygems.pkg.github.com/my-org/.
Please double-check your credentials and correct them.
```

After:

```
Fetching gem metadata from https://rubygems.org/........
Fetching source index from https://rubygems.pkg.github.com/my-org/

Access token could not be authenticated for https://x-access-token@rubygems.pkg.github.com/my-org/.
Make sure it's valid and has the necessary scopes configured.
```

https://github.com/rubygems/rubygems/commit/2ae69c964a
2023-08-16 15:03:38 +09:00
David Rodríguez e678affe70
[rubygems/rubygems] Bad auth should not fallback either
https://github.com/rubygems/rubygems/commit/ba3ea27869
2023-08-16 15:03:38 +09:00
David Rodríguez c076ac8a5f
[rubygems/rubygems] Use better status for authentication failures
https://github.com/rubygems/rubygems/commit/ffa395411f
2023-08-16 15:03:38 +09:00
David Rodríguez 2e04336b67
[rubygems/rubygems] Fix git source conservativeness
https://github.com/rubygems/rubygems/commit/9a0e0dfd5b
2023-08-16 15:03:38 +09:00
Nobuyoshi Nakada 6ebde04202
[DOC] Update to use `SPECOPTS` instead of `MSPECOPT` 2023-08-12 12:33:05 +09:00
Nobuyoshi Nakada 2c9fbc5100
Add dotted counts 2023-08-12 11:19:10 +09:00
Nobuyoshi Nakada 2373feade5
For parallel test 2023-08-12 11:19:10 +09:00
Nobuyoshi Nakada b377793b6e
Fold dotted outputs from test-spec 2023-08-12 11:19:09 +09:00
Mike Dalessio d2343368ab Deprecate Kernel#open and IO support for subprocess creation/forking
Deprecate Kernel#open and IO support for subprocess creation and
forking. This deprecates subprocess creation and forking in

- Kernel#open
- URI.open
- IO.binread
- IO.foreach
- IO.readlines
- IO.read
- IO.write

This behavior is slated to be removed in Ruby 4.0

[Feature #19630]
2023-08-10 09:38:11 +09:00
Benoit Daloze dc54574ade Update to ruby/spec@9e278f5 2023-08-02 18:53:03 +02:00
Benoit Daloze 3c41a04b6c Fix encoding switches when RUBYOPT is empty or only spaces
* Follow-up of dbbc3583ba which broke this.
2023-08-02 17:13:38 +02:00
Nobuyoshi Nakada 1bda22f5fe
`Refinement#refined_class` is now deprecated 2023-07-31 23:23:30 +09:00
Nobuyoshi Nakada 0d86cc4caf [rubygems/rubygems] Use the dedicated method to convert file path
The dedicated method `File.path` to deal with pathname-like objects
has been provided since ruby 1.9.0.
Also adds a test for rubygems/rubygems#6837.

https://github.com/rubygems/rubygems/commit/258c6eda80
2023-07-30 01:36:23 +00:00
Nobuyoshi Nakada 3d87eec94a Add examples of `return` in `eval` 2023-07-30 00:44:13 +09:00
Hiroshi SHIBATA 35517baae5 Use Gem::BUNDLED_GEMS::SINCE 2023-07-28 14:57:10 +09:00
Jeremy Evans 786a864900 Make {Nil,True,False}Class#singleton_method always raise NameError
{Nil,True,False}Class#singleton_methods always returns [] indicating
that there are no singleton methods defined, so #singleton_method
should be consistent with that.

Fixes [Bug #11064]
2023-07-26 07:27:15 -07:00
Hiroshi SHIBATA cf1f2e9d06 [rubygems/rubygems] bin/rubocop -A
https://github.com/rubygems/rubygems/commit/e8a4184429
2023-07-25 06:23:29 +00:00
Hiroshi SHIBATA 979d1fa5fe [rubygems/rubygems] Extract Gem::BUNDLED_GEMS from Bundler
https://github.com/rubygems/rubygems/commit/e30e86aa60
2023-07-25 06:23:28 +00:00
Hiroshi SHIBATA 8fbe7d0295 [rubygems/rubygems] Skip warnings if bundled gems is already loaded
https://github.com/rubygems/rubygems/commit/9583a7eb82
2023-07-25 06:23:28 +00:00
Hiroshi SHIBATA 64530b545f [rubygems/rubygems] Added warnings targets for old version of Ruby
https://github.com/rubygems/rubygems/commit/d0c1d97105
2023-07-25 06:23:26 +00:00
Hiroshi SHIBATA fc5dbea4c3 [rubygems/rubygems] Added Ruby version for bundled gems to warnings
https://github.com/rubygems/rubygems/commit/d61c1362e7
2023-07-25 06:23:26 +00:00
Hiroshi SHIBATA cc2617ae3f [rubygems/rubygems] Added csv as stub gem to build_repo1
https://github.com/rubygems/rubygems/commit/d2f2597c31
2023-07-25 06:23:24 +00:00
Hiroshi SHIBATA df4ac25bd9 [rubygems/rubygems] Added examples for warnings feature
https://github.com/rubygems/rubygems/commit/78807add23
2023-07-25 06:23:24 +00:00
Jean Boussier 43a5c19135 Use the caller location as default filename for eval family of methods
[Feature #19755]

Before (in /tmp/test.rb):

```ruby
Object.class_eval("p __FILE__") # => "(eval)"
```

After:

```ruby
Object.class_eval("p __FILE__") # => "(eval at /tmp/test.rb:1)"
```

This makes it much easier to track down generated code in case
the author forgot to provide a filename argument.
2023-07-24 14:51:20 +02:00
Hiroshi SHIBATA dd1af4b22d
[rubygems/rubygems] Rename local to lockfile and global to system
https://github.com/rubygems/rubygems/commit/456fd05d3a
2023-07-24 15:04:24 +09:00
David Rodríguez 0b0df03b0d
[rubygems/rubygems] Avoid printing using messages when version has not changed
https://github.com/rubygems/rubygems/commit/9635a2fd74
2023-07-24 15:03:15 +09:00
David Rodríguez 8c82b35791
[rubygems/rubygems] Exclude Bundler from missing locked dependencies check
Bundler is special since it's not actually locked in the lockfile as a
regular gem (only via `BUNDLED WITH`). So exclude it from that check.

https://github.com/rubygems/rubygems/commit/9f1756ec47
2023-07-24 15:03:15 +09:00