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

9365 Коммитов

Автор SHA1 Сообщение Дата
Daniel Niknam d73dc8e937 [rubygems/rubygems] Remove unused method
https://github.com/rubygems/rubygems/commit/3a8486794e
2021-08-31 19:06:14 +09:00
Daniel Niknam 6d883b33ae [rubygems/rubygems] Remove `ruby/uri` requirement
For the purpose of this class, we need to make sure the return object by `Gem::UriParser.parse_uri` method will have the following method:
- user
- user=
- password
- password=
So we  can remove the the `uri` dependency and just look for the methods to exist.

https://github.com/rubygems/rubygems/commit/241e093597
2021-08-31 19:06:14 +09:00
Daniel Niknam 589377fbdc [rubygems/rubygems] Refactor `Gem::RemoteFetcher::FetchError.build` back to its initialize method
https://github.com/rubygems/rubygems/commit/21dcdd2dc5
2021-08-31 19:06:14 +09:00
Daniel Niknam a508693f06 [rubygems/rubygems] Remove defensive guards
https://github.com/rubygems/rubygems/commit/dba130cd80
2021-08-31 19:06:14 +09:00
Daniel Niknam fafd9d280a [rubygems/rubygems] Rename `Gem::PrintableUri#parsed_uri?` to `Gem::PrintableUri#valid_uri?`
https://github.com/rubygems/rubygems/commit/a5177709c9
2021-08-31 19:06:14 +09:00
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
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
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 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 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 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 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 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
David Rodríguez 19d77a1cfc [rubygems/rubygems] Remove unnecessary spec manipulation
https://github.com/rubygems/rubygems/commit/c7c00c280f
2021-08-31 19:06:14 +09:00
David Rodríguez 10dcd0eb5b [rubygems/rubygems] Deprecate `bundle exec --no-keep-file-descriptors`
https://github.com/rubygems/rubygems/commit/591466d512
2021-08-31 19:06:14 +09:00
David Rodríguez 8c1b31f7b3 [rubygems/rubygems] Don't warn default behaviour
https://github.com/rubygems/rubygems/commit/ed845d861c
2021-08-31 19:06:14 +09:00
David Rodríguez 58635d4ff7 [rubygems/rubygems] Keep file descriptors by default
https://github.com/rubygems/rubygems/commit/88b7a3e7e2
2021-08-31 19:06:14 +09:00