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

67476 Коммитов

Автор SHA1 Сообщение Дата
Daniel Niknam e3c319ad53 [rubygems/rubygems] Remove trailing `if`
https://github.com/rubygems/rubygems/commit/5b6b649bba
2021-08-31 19:06:14 +09:00
Daniel Niknam 3adc141a79 [rubygems/rubygems] Refactor `Gem::RemoteFetcher::FetchError` initializer to `build` method
The `initialize` method is already doing a lot and by adding the `Gem::PrintableUri` to redact sensitive information, things are getting complicated and hard to read here. For the start, I have refactored the `initialize` method into a class method called `build`.

https://github.com/rubygems/rubygems/commit/4312e8fdf5
2021-08-31 19:06:14 +09:00
Daniel Niknam 19e1d3cdce [rubygems/rubygems] Using `Gem::PrintableUri` in `Gem::Request` class
The `@uri` variable could be a source URI with a credential. Using `Gem::PrintableUri` to make sure we are redacting sensitive information from it when logging on verbose mode.

https://github.com/rubygems/rubygems/commit/f566787211
2021-08-31 19:06:14 +09:00
Daniel Niknam 31c2e6c08e [rubygems/rubygems] Using `Gem::PrintableUri` in `Gem::Commands::InstallCommand` class
The `x.source.uri` could be a source URI with a credential. Using `Gem::PrintableUri` to make sure we are redacting sensitive information from it.

https://github.com/rubygems/rubygems/commit/8755ee0aaa
2021-08-31 19:06:14 +09:00
Daniel Niknam b41802421a [rubygems/rubygems] Introduce `Gem::PrintableUri` that would redact URIs to be used on outputs
We need to redact URI credential in several places and copy pasting the code into each part of it is not ideal. This class is responsible for parsing URI strings and redacting credential from it. Also, it will handle URI object in the same manner. We will be reusing this class whenever we need to print/display a URI to users.
URI with the following format will be redacted:
- Token: `http://my-secure-token@example.com` => `http://REDACTED@example.com`
- Username & Password: `http://my-username:my-secure-password@example.com` => `http://my-username:REDACTED@example.com`
- x-oauth-basic: `http://my-secure-token:x-oauth-basic@example.com` => `http://REDACTED:x-oauth-basic@example.com`

https://github.com/rubygems/rubygems/commit/f1e45d3a89
2021-08-31 19:06:14 +09:00
Daniel Niknam 14a9e24f7e [rubygems/rubygems] Add a few tests for `Gem::UriParser.parse_uri`
https://github.com/rubygems/rubygems/commit/1ea73df161
2021-08-31 19:06:14 +09:00
Matt Larraz 5f205073d2 [rubygems/rubygems] Pass second argument to Array#split to ensure only two values returned
https://github.com/rubygems/rubygems/commit/601b5553bb
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 c044f818ca [rubygems/rubygems] Move `Bundler.rubygems.clear_paths` to a better place
Since it clears both home and path.

https://github.com/rubygems/rubygems/commit/fadf5e03ea
2021-08-31 19:06:14 +09:00
David Rodríguez 8c79486e7e [rubygems/rubygems] Bundle path is already expanded
https://github.com/rubygems/rubygems/commit/a296052670
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 d0da3a2a7f [rubygems/rubygems] Remove more unused code
https://github.com/rubygems/rubygems/commit/986e889a79
2021-08-31 19:06:14 +09:00
David Rodríguez 8d32f46d04 [rubygems/rubygems] Remove unnecessary line
https://github.com/rubygems/rubygems/commit/a7023c6c21
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
David Rodríguez 3a9dd795a7 [rubygems/rubygems] Move some logic to a `save_plugin` method
https://github.com/rubygems/rubygems/commit/9620bee2a5
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
Daniel Niknam f212b9d4f2 [rubygems/rubygems] Refactor Ruby platform priority condition to its own method
The `Gem::Platform::RUBY ? -1 : 1` has been used multiple times in different places and could be refactored to a method (DRY).

https://github.com/rubygems/rubygems/commit/9d43ca8f0c
2021-08-31 19:06:14 +09:00
Daniel Niknam c71d1a26ef [rubygems/rubygems] Pick the last founded gems when fetching metadata
https://github.com/rubygems/rubygems/commit/e3d150d822

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
2021-08-31 19:06:14 +09:00
David Rodríguez 54ae3f587e [rubygems/rubygems] Prefer `require_relative` to `require` for internal requires
https://github.com/rubygems/rubygems/commit/c74fc58695
2021-08-31 19:06:14 +09:00
David Rodríguez f6803d2411 [rubygems/rubygems] Fix `bundle check` showing duplicated gems
If the lockfile contains multiple platforms, `bundle check` would show
duplicated missing gems.

https://github.com/rubygems/rubygems/commit/6ac5931783
2021-08-31 19:06:14 +09:00
David Rodríguez e70419d608 [rubygems/rubygems] Explicitly set `allow_cached` to false when setting local mode
https://github.com/rubygems/rubygems/commit/1b8139e9d3
2021-08-31 19:06:14 +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.

https://github.com/rubygems/rubygems/commit/5483e98305
2021-08-31 19:06:14 +09:00
Jun Aruga 71f6711351 [rubygems/rubygems] Fix some failing Bundler tests with old Git.
Use the `git branch --list` rather than the `git branch -l` for better
compatibility. Because the `git branch -l` is used to create a new branch in
Git version < 2.20.0.

https://github.com/rubygems/rubygems/commit/eac5be7d06
2021-08-31 19:06:14 +09:00
David Rodríguez 907fa88a76 [rubygems/rubygems] Remove unused file
No longer used since
b7f6270b9e.

https://github.com/rubygems/rubygems/commit/76803894a0
2021-08-31 19:06:14 +09:00
David Rodríguez 590d2222a0 [rubygems/rubygems] Remove helper method not buying us much
https://github.com/rubygems/rubygems/commit/81dc685d20
2021-08-31 19:06:14 +09:00
David Rodríguez d01c3111c2 [rubygems/rubygems] Remove MacOS specific extra GEM_PATH
They should properly configure `GEM_PATH` instead.

https://github.com/rubygems/rubygems/commit/3bd9ae33ca
2021-08-31 19:06:14 +09:00
David Rodríguez afabef5a5a [rubygems/rubygems] Remove MacOS specific gem layout
MacOS should properly configure Ruby. They should not expect us to
maintain a different layout just for them.

https://github.com/rubygems/rubygems/commit/ecad900925
2021-08-31 19:06:14 +09:00
Daniel Niknam 717ad64f41 [rubygems/rubygems] Replace StandardError with Exception
We think it's unlikely that `rubygems/defaults/operating_system` could be shipped with a SyntaxError so StandardError could be better choice to prevent "false positives" errors.

https://github.com/rubygems/rubygems/commit/1f73e784dd
2021-08-31 19:06:14 +09:00
Daniel Niknam 34e073c0ca [rubygems/rubygems] Reword the message
For errors that could happened while loading `rubygems/defaults/operating_system`

https://github.com/rubygems/rubygems/commit/6e1e2141f8
2021-08-31 19:06:14 +09:00
David Rodríguez 7d859489e1 [rubygems/rubygems] Bring `--jobs` documentation up to date
https://github.com/rubygems/rubygems/commit/58da501e5d
2021-08-31 19:06:14 +09:00
David Rodríguez 890b261154 [rubygems/rubygems] See if parallel installation on Windows works better now
https://github.com/rubygems/rubygems/commit/0822e1c260
2021-08-31 19:06:14 +09:00
Daniel Niknam 744e128ed9 [rubygems/rubygems] Exclude truffleruby from the test for failure of operating_system.rb
truffleruby does not raise any error when requiring `rubygems`.

https://github.com/rubygems/rubygems/commit/21e2fcd0b2
2021-08-31 19:06:14 +09:00
Daniel Niknam aafc615b4a [rubygems/rubygems] Enhance error handling when loading the rubygems/defaults/operating_system file
When loading `rubygems/defaults/operating_system`
- we want to keep it silent if the raised exception is a LoadError
- we want to print a message in other cases and ask users to report the issue to their OS support.

Ruby 3 comes with special error handling for loading `rubygems` and it will show a warning when LoadError exception raised for requiring 'rubygem'.
Because of that, we decided to leave the LoadError scenario as it is.
Reference: d1998d8767/gem_prelude.rb (L1-L5)

https://github.com/rubygems/rubygems/commit/0a97e12fe1
2021-08-31 19:06:14 +09:00
David Rodríguez 9fa5c4cd07 [rubygems/rubygems] Also load user installed rubygems plugins
https://github.com/rubygems/rubygems/commit/82960c262f
2021-08-31 19:06:14 +09:00
David Rodríguez 21db5876ca [rubygems/rubygems] Respect `BUNDLE_USER_HOME` for global config location
https://github.com/rubygems/rubygems/commit/58fc31442f
2021-08-31 19:06:14 +09:00
David Rodríguez ea16a0df80 [rubygems/rubygems] Disable `RUBYGEMS_GEMDEPS` for bundler spec run
Running `bundler` specs using `bundler` is not supported.

https://github.com/rubygems/rubygems/commit/cc97b6773d
2021-08-31 19:06:14 +09:00
David Rodríguez 5aee962fe3 [rubygems/rubygems] Remove `RUBYGEMS_GEMDEPS` warning
When setting the `RUBYGEMS_GEMDEPS` environment variable to allow
skipping `bundle exec`, `bundler` will print a warning about potential
incompatibility.

Initially the `RUBYGEMS_GEMDEPS` variable used a completely different
(re)implementation of `bundler` functionality. That implementation was
not battle tested and could potentially differ in behaviour from what
`bundler` does. That's why print a warning.

However, these days, all `rubygems` does when `RUBYGEMS_GEMDEPS` is set
is to require `bundler/setup`, so there's no risk of any
incompatibility, since that's just plain `bundler`.

https://github.com/rubygems/rubygems/commit/bbddc27016
2021-08-31 19:06:14 +09:00
David Rodríguez ab1edc75f8 [rubygems/rubygems] Expect the right permissions on Windows
Given Windows doesn't have executable bit.

https://github.com/rubygems/rubygems/commit/35dc3fa845
2021-08-31 19:06:14 +09:00
David Rodríguez 2d0d1c339a [rubygems/rubygems] Recommend `bundle install` rather than `gem install -g`
https://github.com/rubygems/rubygems/commit/4028cbc408
2021-08-31 19:06:14 +09:00
David Rodríguez 76b77d9275 [rubygems/rubygems] Refactor reseting `RUBYGEMS_GEMDEPS` in tests
https://github.com/rubygems/rubygems/commit/91dca11112
2021-08-31 19:06:14 +09:00
David Rodríguez 43aecf216e [rubygems/rubygems] Get a CI matrix configured in default Github Actions generated config
Even if it only has one entry at the moment, it makes it easier to add
new entries by doing it this way.

https://github.com/rubygems/rubygems/commit/46232fe265

Co-authored-by: NeimadTL <damientalbot26@gmail.com>
2021-08-31 19:06:14 +09:00
David Rodríguez 2e30d9ab42 [rubygems/rubygems] Avoid double CI runs in default Github Actions generated config
Otherwise CI will run once for every pull request update and once for
every push.

The disavantage is that people working on a non default branch without
creating pull requests won't get CI run at all.

I think the advantages are greater than the disadvantages, it's also my
personal workflow, and it's something desired enough so that someone
opened an issue about it.

So let's do it!

https://github.com/rubygems/rubygems/commit/924d916a73

Co-authored-by: NeimadTL <damientalbot26@gmail.com>
2021-08-31 19:06:14 +09:00
David Rodríguez 553ee573d4 [rubygems/rubygems] Don't use gemdeps on bundler binstub
https://github.com/rubygems/rubygems/commit/320fdc1513
2021-08-31 19:06:14 +09:00
David Rodríguez 1663dd5f73 [rubygems/rubygems] Simplify rescue of bundler errors
As far as I understand, this block should only be run when
`bundler/setup` fails. The only other case where these errors could be
run is when bundler itself is required.

If bundler itself fails to be required or activated (like in old rubies
where it was not a default gem, for example), the raw error is much more
helpful than this message.

So we can move the rescue after bundler is succesfully required, and
that simplifies the list of exceptions that we need to track to just
`Bundler::Error`.

https://github.com/rubygems/rubygems/commit/3663c11e93
2021-08-31 19:06:14 +09:00
David Rodríguez 0aa9eb9eed [rubygems/rubygems] Move list of exceptions to the `rescue` clause
Instead of having to match classes and re-raise in the exception body.

https://github.com/rubygems/rubygems/commit/5edf74b781
2021-08-31 19:06:14 +09:00
David Rodríguez 87dfb55c16 [rubygems/rubygems] Use `Gem.use_gemdeps` only from binstubs
The previous behavior was to automatically require `bundler/setup`
everytime `rubygems` was required, which I think was too much.

https://github.com/rubygems/rubygems/commit/b25379a295
2021-08-31 19:06:14 +09:00
David Rodríguez a3b3fdc3cd [rubygems/rubygems] Take advantage of `target` being a `Pathname`
https://github.com/rubygems/rubygems/commit/c31b8cd232
2021-08-31 19:06:14 +09:00
David Rodríguez 8adc606271 [rubygems/rubygems] Fix git repo initialization on a path with spaces
https://github.com/rubygems/rubygems/commit/a2d6e10192
2021-08-31 19:06:14 +09:00
David Rodríguez b6c082fd09 [rubygems/rubygems] Remove misleading comment
When I read, I thought the assertion was incorrect. It's doing the right
thing, though.

https://github.com/rubygems/rubygems/commit/e72c27367a
2021-08-31 19:06:14 +09:00
David Rodríguez d9ecc97f33 [rubygems/rubygems] Remove bad TODO
The commented out code causes failing tests because it's not correct.

https://github.com/rubygems/rubygems/commit/38f0eca91a
2021-08-31 19:06:14 +09:00