| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If Gemfile has a lot of dependencies, we have an optimization that uses
the full index in that case, assuming it's going to be faster.
I think this is an old optimization that predates compact index API
times, I believe we no longer need it these days.
Also, since a few releases ago we check for circular dependencies when
resolving by looping through all versions of each name and removing
those that have circular dependencies that would trip up the resolver.
This loop becomes actually very slow when full indexes are used because
to find dependencies of a gemspec, we need to explicitly fetch the
marshaled gemspec (`gemspec.rz` endpoint) for it, so the optimization
has the opposite effect of making things very slow.
https://github.com/rubygems/rubygems/commit/2f46289bd3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
unrelated git sources directly
Since Bundler 2.4, we will try to checkout any branch specified in the
Gemfile, while until Bundler 2.3 we would directly checkout the locked
revision.
This should not make any difference in most situations, but in some edge
cases, like if the branch specified in the `Gemfile` has been renamed,
but the locked revision still exist, it causes an error now while before
it would update the lockfile without issues.
I debated which behavior was best, since I was not sure. But my
conclusion is that if the situation does not require expiring the
lockfile source in favor of the Gemfile source, we should use the locked
revision directly and proceed happily. So I restored Bundler 2.3
behavior.
I think this is consistent with how yanked gems are handled, for example.
Of course, if explicitly updating the git source itself, or all gems, we
will still get any errors like missing branches related to the git source.
|
|
|
|
|
| |
Just like gem sources, a "style-only" change, like adding a trailing
slash, should not expire them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the --no-install option to `bundle package` is totally
ignored for git sources. This can have very strange effects if you have:
- a git-sourced gem,
- with native extensions,
- whose extconf.rb script depends on another gem,
- which is installed from Rubygems in the gemfile.
In that circumstance, `bundle package --no-install --all` will download
the Rubygems dependencies to `vendor/cache` but NOT install them. It
will also check out the git gems to `vendor/cache` (good), and attempt
to build their native extensions (bad!).
The native extension build will fail because the extconf.rb script crashes,
since the dependency it needs is missing.
I implemented a fix for this in `source/git.rb`, since this is analogous
to what's happening in `source/rubygems.rb`. I do admit though the whole
thing is a little strange though - an "install" method that.... proceeds
to look at a global flag to not install anything.
Add test to confirm cache respects the --no-install flag
https://github.com/rubygems/rubygems/commit/5a77d1c397
Co-authored-by: KJ Tsanaktsidis <kj@kjtsanaktsidis.id.au>
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/cb4fc41cbc
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/c8e024359f
|
|
|
|
| |
Pick from https://github.com/rubygems/rubygems/commit/5ace20dbecfeaf09fba5f616193f3cfcff70ba00
|
|
|
|
| |
from https://github.com/rubygems/rubygems/commit/0635c1423db5d7c461d53bf0c3329bca75de7609
|
| |
|
| |
|
|
|
|
| |
Pick from https://github.com/rubygems/rubygems/commit/ba3adad4d80038ffd7bea015da2f11d3e8a2ff82
|
|
|
|
| |
Pick from https://github.com/rubygems/rubygems/commit/084f7d1f21f6fc3e2bb685b7bda3653fb2891c6e
|
|
|
|
| |
from https://github.com/rubygems/rubygems/commit/bfb0ae69776069155d2092702bfbb5a12617d85a
|
|
|
|
| |
Pick from https://github.com/rubygems/rubygems/commit/823c776d951f3c35094611473ec77f94e8bf6610
|
|
|
|
|
|
| |
https://github.com/rubygems/rubygems/pull/5960
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
| |
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/16c3535413afebcdbab7582c6017c27b5da8a8dc
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/446cc57a7ccdf1924deb291be9571219e7ba8523
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/b93d4de2ff
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/6aa4c422a7
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a regression from https://github.com/rubygems/rubygems/commit/cf749f8ffabd. The
funny thing is that we have a spec for this feature, so it was unclear
how we regressed here. It turns out there was a bug in one of our
negative matchers checking that gems ARE NOT included in a bundle.
This commit fixes the bug in the negative matcher and reverts
https://github.com/rubygems/rubygems/commit/cf749f8ffabd (with a slightly simpler diff).
https://github.com/rubygems/rubygems/commit/3f9a4ff32a
|
|
|
|
|
|
|
|
|
|
| |
specification
Previously we would instantiate two different packages and extract the
specification from the package twice for each gem installed. We can
reuse the installer for this so that we just need to do it once.
https://github.com/rubygems/rubygems/commit/e454f850b1
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/ba975b3b7f
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/600a9ac658
|
|
|
|
|
|
|
| |
This is the explanation of why we do the swapping, not of why we
download the gem.
https://github.com/rubygems/rubygems/commit/1a25eb7e7b
|
|
|
|
|
|
| |
installer
https://github.com/rubygems/rubygems/commit/796eebfdbf
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/9bd389e1b6
|
|
|
|
|
|
|
| |
It's only related to the `bundle cache` command, so it should be checked
there.
https://github.com/rubygems/rubygems/commit/cf749f8ffa
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/285ccbc07e
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/d86fb2c316
|
|
|
|
|
|
| |
It's checked before calling the method already.
https://github.com/rubygems/rubygems/commit/4eb00e9586
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/a00c79a4da
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If BUNDLE_PATH is configured to a symlinked path, installing gems with
symlinks would crash with an error like this:
```
Gem::Package::SymlinkError: installing symlink 'man/man0/README.markdown' pointing to parent path /usr/home/stevewi/srv/mail/lib/tools/.vendor/ruby/3.1.0/gems/binman-5.1.0/README.markdown of /srv/mail/lib/tools/.vendor/ruby/3.1.0/gems/binman-5.1.0 is not allowed
```
This commit fixes the problem by changing the bundle path to be the
realpath of the configured value, right after we're sure the path has
been created.
https://github.com/rubygems/rubygems/commit/3cd3dd142a
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/125415593ead9ab69a9f0bb5392c9d7ec61b1f51
|
|
|
|
|
|
|
|
|
| |
install output
The lockfile is completely ignored in inline mode, yet the previous
output would suggest it wasn't.
https://github.com/rubygems/rubygems/commit/763125a745
|
|
|
|
|
|
| |
The other sources use `options` which reads better.
https://github.com/rubygems/rubygems/commit/a672f9d602
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/3f7d0352e84b29d4a2d4cd93b31e5ebdb5f79cc6
|
| |
|
| |
|
|
|
|
| |
Probably `RUBY_VERSION` seems overwritten somewhere in the tests.
|
| |
|
|
|
|
|
|
|
|
|
| |
optional args
To make sure git uri's specified in Gemfile are never misinterpreted as
optional arguments, potentially allowing for local code execution.
https://github.com/rubygems/rubygems/commit/90b1ed8b9f
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We have two representations of a source. Once used for sorting, which
should not depend on the source's state, but solely on its static
information, like remotes. Another one used for error and informational
messages, which should properly inform about the exact state of the
source when the message is printed.
This commit makes the latter be the default implementation of `to_s`, so
that error and informational messages are more accurate by default.
https://github.com/rubygems/rubygems/commit/b5f2b88957
|
| |
|
|
|
|
|
|
| |
present
https://github.com/rubygems/rubygems/commit/28f4842196
|
|
|
|
|
|
|
|
| |
Rescuing all errors here might end up hiding other errors if the
deletion of the cached gem itself raises an error for some reason. Let's
be more conservative.
https://github.com/rubygems/rubygems/commit/3d80dfba08
|
|
|
|
|
|
| |
searching it
https://github.com/rubygems/rubygems/commit/d0df25bb0f
|
|
|
|
|
|
|
|
| |
Previously, it was maintained in sync with the standard cache. That was
less efficient, and it caused some error messages to point to non
existent files.
https://github.com/rubygems/rubygems/commit/931f8cb8a9
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/83b2b845b3
|