| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12444
|
|
`Gem::Specification.reset` on benign cases
If `Gem::Specification.reset` is used, but there are still unresolved
dependencies, RubyGems prints a warning. There are though, certain cases
where the situation will not cause any issues.
One such case is when the unresolved dependency does not restrict any
versions (>= 0) and there's a default gem matching it.
In this situation, it doesn't matter if Gem paths change, because
default gems are still activatable, so the dependency will be properly
activated if ever needed.
https://github.com/rubygems/rubygems/commit/e5f8a3068e
|
|
https://github.com/rubygems/rubygems/commit/d8d68cc00e
|
|
sometimes
If a gem package is built from a specification whose platform has been
modified, it will include metadata using the old platform.
This change should fix the problem by making sure `original_platform` is
always properly set.
https://github.com/rubygems/rubygems/commit/ecd5cd4547
|
|
https://github.com/rubygems/rubygems/commit/fe9999f2cf
|
|
If old Bundler versions that unconditionally try to remove this method
are run with RubyGems versions _without_ this method, Bundler crashes
because it tries to remove a method that does not exist.
We need to wait until RubyGems cannot install any Bundler versions that
unconditionally remove this method.
https://github.com/rubygems/rubygems/commit/98804d261d
|
|
for some reason
https://github.com/rubygems/rubygems/commit/f8f589b1b8
|
|
This could happen when a regular gem shadows a default gem.
https://github.com/rubygems/rubygems/commit/9ef70dd1f7
|
|
`Gem::Specification.reset` warning
https://github.com/rubygems/rubygems/commit/e6e3db821f
|
|
It has been supported since RubyGems 2.2.0 via https://github.com/rubygems/rubygems/commit/4525e45a4d45
Signed-off-by: Samuel Giddins <segiddins@segiddins.me>
https://github.com/rubygems/rubygems/commit/bf39c583e8
|
|
https://github.com/rubygems/rubygems/commit/058b29fe98
|
|
https://github.com/rubygems/rubygems/commit/7cf2fdcfa1
|
|
correctly unmarshalled
https://github.com/rubygems/rubygems/commit/d6ba7ef79f
|
|
It was not properly being detected as an Array attribute, and thus not
properly validated.
Fixing this allows us to remove a strange `rescue` clause in Bundler.
https://github.com/rubygems/rubygems/commit/4121a32408
|
|
Also limit caller ranges
https://github.com/rubygems/rubygems/commit/a274b1af78
|
|
https://github.com/rubygems/rubygems/commit/0236cb6191
|
|
This method validates only what is required for resolution, skipping any
irrelevant metadata validation. This will be used by Bundler instead of
doing a full validation, allowing gem authors to use `bundle` commands
immediately in newly created gems without first having to fix invalid
metafata fields in the default gemspec.
https://github.com/rubygems/rubygems/commit/da7704cfc0
|
|
https://github.com/rubygems/rubygems/commit/7e6e7ccc58
|
|
https://github.com/rubygems/rubygems/commit/8dbe1dbdc7
Co-authored-by: MSP-Greg <Greg.mpls@gmail.com>
|
|
https://github.com/rubygems/rubygems/commit/6b70e9043d
|
|
`--destdir` is given
This was only working for gems also installed in the default gem home.
https://github.com/rubygems/rubygems/commit/47df02dbd9
|
|
So that it can also be delegated to `Gem::SpecificationRecord`.
https://github.com/rubygems/rubygems/commit/1407807a99
|
|
When `gem uninstall <gem> --install-dir <dir>` is run, if the version
removed had a plugin, and that same version happened to also be
installed globally, then the plugin stub would fail to be removed.
https://github.com/rubygems/rubygems/commit/4e2fa0be77
|
|
This class handles all logic to handle the list of specifications, given
a set of GEM_PATH directories. Makes `Gem::Specification` has less
responsibilities and will help with fixing some bugs next.
https://github.com/rubygems/rubygems/commit/df280dbbed
|
|
Other analog methods are documented, so document this one too.
https://github.com/rubygems/rubygems/commit/76da34d44d
|
|
I don't think this method is any worse than others, let's only document
what it does.
https://github.com/rubygems/rubygems/commit/dec722187f
|
|
https://github.com/rubygems/rubygems/commit/7b71965a70
|
|
This gets in the middle if we ever start allowing to build as if using a
different RubyGems version than the one being run.
This could be useful to make `gem rebuild` a little more usable, and
it's already done by Bundler specs which already make this method a noop
when they need this.
I'm not sure forcefully setting this, even if user explicitly specified
something else is helpful.
Since this could potentially prevent gems explicitly setting a constant
RubyGems version from building, I changed the error of incorrect
RubyGems version from a hard error to a warning, since it will start
happening in those cases if we stop overwriting the version.
https://github.com/rubygems/rubygems/commit/45676af80d
|
|
Nil-value keys in a mapping end with a space or not depending on
libyaml versions, and result metadata are different per platforms.
This commit makes to skip such keys to make metadata reproducible
accross platforms.
https://github.com/rubygems/rubygems/commit/74b4db8d30
|
|
https://github.com/rubygems/rubygems/commit/bcbe6f7b7a
|
|
requirements
to avoid accidentally mutating the original's state when doing:
```ruby
spec2 = spec.dup
spec2.required_rubygems_version.concat([">= 3.3.22"])
```
see https://github.com/rake-compiler/rake-compiler/pull/236 for a
real-world use case that would be made simpler with this behavior.
https://github.com/rubygems/rubygems/commit/c1d52389f0
|
|
These were introduced 13 years ago, in a documentation update. Perhaps we can let the TODOs go, without taking any action?
https://github.com/rubygems/rubygems/commit/fb23fa84f9
|
|
https://github.com/rubygems/rubygems/commit/4691b959ad
|
|
I think we can safely assume these days that all RubyGems and Bundler
versions that will ever bundle a new gem created in 2023 support
prereleases.
So this non transparent requirement is not necessary.
In my opinion, it should be the gem author to explicitly add this
constraint, not RubyGems.
https://github.com/rubygems/rubygems/commit/b165e6d725
|
|
https://github.com/rubygems/rubygems/commit/bb66253f2c
|
|
https://github.com/rubygems/rubygems/commit/56ce2a6445
|
|
https://github.com/rubygems/rubygems/commit/70243b1d72
|
|
https://github.com/rubygems/rubygems/commit/10c26a483d
|
|
https://github.com/rubygems/rubygems/commit/625b8293f7
|
|
This gets the specs passing, and handles the fact that we expect
checkums to be pinned only to a particular source
This also avoids reading in .gem files during lockfile generation,
instead allowing us to query the source for each resolved gem to grab
the checksum
Finally, this opens up a route to having user-stored checksum databases,
similar to how other package managers do this!
Add checksums to dev lockfiles
Handle full name conflicts from different original_platforms when adding checksums to store from compact index
Specs passing on Bundler 3
https://github.com/rubygems/rubygems/commit/86c7084e1c
|
|
if possible
1. Use the checksum provided by the server if provided: provides security
knowing if the gem you downloaded matches the gem on the server
2. Calculate the checksum from the gem on disk: provides security knowing
if the gem has changed between installs
3. In some cases, neither is possible in which case we don't put anything
in the checksum and we maintain functionality as it is today
Add the checksums to specs in the index if we already have them
Prior to checksums, we didn't lose any information when overwriting specs
in the index with stubs. But now when we overwrite EndpointSpecifications
or RemoteSpecifications with more generic specs, we could lose checksum
info. This manually sets checksum info so we keep it in the index.
https://github.com/rubygems/rubygems/commit/de00a4f153
|
|
https://github.com/rubygems/rubygems/commit/f9cc6fed25
|
|
Specifically, this will have frozen string literals for:
- Gem platform tuple entries
- Gem::Version strings
- Gem::Specification#installed_by_version
- Dependency requirement strings
https://github.com/rubygems/rubygems/commit/6195da5bdb
|
|
safely load permitted classes/symbols
https://github.com/rubygems/rubygems/commit/7e4478fe73
|
|
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
|
class references does not warn
Before this, you would get constant redefinition warnings on Psych::DefaultKey
Additionally, ensure the retries wont continue infinitely in the case of the ArgumentError not being caused by Marshal trying to load the undefined classes
https://github.com/rubygems/rubygems/commit/919e8c2de4
|
|
https://github.com/rubygems/rubygems/commit/31d0311258
|