summaryrefslogtreecommitdiff
path: root/lib/bundler/rubygems_ext.rb
AgeCommit message (Collapse)Author
2025-08-18[rubygems/rubygems] Use spaces around optional parameter valuesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/b58829a868
2025-06-19[rubygems/rubygems] Never ignore gems from path sources during activationDavid Rodríguez
The "ignore" attribute is a RubyGems thing to mark when a installed gem should be ignored for activation because its extensions are not properly compiled. In the case of gems from path sources, the warning is not accurate because extensions are compiled into the local lib path, which is not where RubyGems leaves its sentinel `gem.build_complete` file. Also, there's a single version of each gem in the path source available to Bundler, so we always certainly want to consider that for activation and never makes sense to ignore it. https://github.com/rubygems/rubygems/commit/ec5d33695e
2025-06-06Move most of Bundler::GemHelpers to Gem::PlatformSamuel Giddins
This will help centralize wheel platform selection logic eventually Signed-off-by: Samuel Giddins <segiddins@segiddins.me>
2025-06-05[rubygems/rubygems] Deprecate x64-mingw32 legacy Windows platform in favor ↵Nicholas La Roux
of x64-mingw-ucrt https://github.com/rubygems/rubygems/commit/71c969be44
2025-05-26[rubygems/rubygems] Remove backport of LATEST_RUBY_WITHOUT_PATCH_VERSIONSSamuel Giddins
Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/24c8073b24
2025-05-26[rubygems/rubygems] Remove platform backports from bundlerSamuel Giddins
Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/9336d3811c
2025-05-26[rubygems/rubygems] Bump required_ruby_version to 3.2Samuel Giddins
Ruby 3.1 was EOL March 2025 Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/29c21b1e78
2025-04-01[rubygems/rubygems] Let compact index response parser consistently return a ↵David Rodríguez
mutable dependencies array That restores support for compact index dummy implementations that only lists versions, without checksums or dependencies. This format is undocumented, so we may want to get rid of it in the future. However, some of our tests rely on it, and some implementations did use it (gems.mutant.dev at least). And the way the code was written suggest that support was intentional. So for now, we should restore it. https://github.com/rubygems/rubygems/commit/0427d8c983
2025-03-24[rubygems/rubygems] Add `Specification#lock_name` and use that when dealing ↵David Rodríguez
with checksums https://github.com/rubygems/rubygems/commit/8e2c5748d9 Notes: Merged: https://github.com/ruby/ruby/pull/12968
2025-02-19[rubygems/rubygems] Make sure empty gems are not reinstalled every timeDavid Rodríguez
Unfortunately this requires reverting a previous enhancement of reinstalling gems if they incorrectly ship with an empty installation dir. However, there's no way to distinguish this kind of bad state from a gem that's empty for real, for example, sorbet-static-and-runtime. This reverts commit https://github.com/rubygems/rubygems/commit/9720a9b980d2, and adds a spec to make sure empty gems are not reinstalled every time. https://github.com/rubygems/rubygems/commit/7c102394af
2025-02-06[rubygems/rubygems] Auto-heal empty installation directoryDavid Rodríguez
https://github.com/rubygems/rubygems/commit/9720a9b980
2025-02-06[rubygems/rubygems] Refine messages about gem installations being missingDavid Rodríguez
The previous wording was too specific, there may be situations when the gem has actually never installed (so never deleted either). https://github.com/rubygems/rubygems/commit/e4a0d71fbe
2025-01-28[rubygems/rubygems] Support installing arm native gems on WindowsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/96496e3f53 Co-authored-by: Johnny Shields <johnny.shields@gmail.com>
2025-01-28[rubygems/rubygems] Reuse platform constantsDavid Rodríguez
We need to move platform monkeypatching to happen earlier because otherwise `Bundler::GemHelpers` will use the constants before they have actually been defined. https://github.com/rubygems/rubygems/commit/086c3438dc
2024-12-17[rubygems/rubygems] Fix missing `Gem::Uri.redact` on some Ruby 3.1 versionsDavid Rodríguez
Our CI did not catch this because it was testing with Ruby 3.1 patch levels that include a RubyGems version that already has `Gem::Uri.redact`. We should make sure the system-rubygems workflow always tests against the oldest supportted Ruby/RubyGems combination. https://github.com/rubygems/rubygems/commit/3b695e3be1
2024-11-28[rubygems/rubygems] Test with Ruby 3.4David Rodríguez
https://github.com/rubygems/rubygems/commit/23d06195fa
2024-11-08[rubygems/rubygems] Warn on insecure materializationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bc2537de71
2024-11-08[rubygems/rubygems] Cleaner extension of `Gem::Specification` to be able to ↵David Rodríguez
set source https://github.com/rubygems/rubygems/commit/3749273ec6
2024-11-08[rubygems/rubygems] Remove accessor that's been unused for yearsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ffd2fbaf6c
2024-11-04[rubygems/rubygems] Fix incompatible encodings errorDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d478ec403f
2024-10-22[rubygems/rubygems] Remove patches for old TruffleRuby versionsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/264c61eb8e
2024-10-14[rubygems/rubygems] Prevent some test suite warnings about missing extensionsDavid Rodríguez
We fixed some issues recently where Bundler would try to activate a pysch spec with missing extensions and crash. However, as a side effect, we started printing warnings about missing extensions in situations where we did not warn before. It may be interesting to warn on these new situations too, but in order to minimize changes for now, I'm reverting to printing warnings in the same situations as before. https://github.com/rubygems/rubygems/commit/51ebff6982
2024-10-11[rubygems/rubygems] Fix `gem install` on NFS sharesDavid Rodríguez
NFS shares seem to support flock these days, but they need read-write permissions. https://github.com/rubygems/rubygems/commit/1c492804cd
2024-10-10[rubygems/rubygems] Fix specs with missing extensions getting activatedDavid Rodríguez
https://github.com/rubygems/rubygems/commit/c80998a22a
2024-10-09[rubygems/rubygems] Fix `Gem::Specification#gem_dir` losing custom source ↵David Rodríguez
for some reason https://github.com/rubygems/rubygems/commit/f8f589b1b8
2024-10-04[rubygems/rubygems] Remove CorrectHashForLambdaOperator monkey patchSamuel Giddins
Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/085bafd8d4
2024-09-18[rubygems/rubygems] Stop fighting with ourselvesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/7cf2fdcfa1
2024-09-16[rubygems/rubygems] Remove temporary `.lock` files left around by gem installerDavid Rodríguez
https://github.com/rubygems/rubygems/commit/edbb2e3475
2024-09-16[rubygems/rubygems] Make sure implementations of `Gem.open_file_with_flock` ↵David Rodríguez
match https://github.com/rubygems/rubygems/commit/174a8e5284
2024-09-11[rubygems/rubygems] Fix `bundle exec rake install` failing when local gem ↵David Rodríguez
has extensions and `gemspec` DSL is being used In a `bundle exec` context, the local specification will actually be part of the known specifications, so RubyGems will assume it has already been installed, which is not actually true. This will cause `RequestSet` to rebuild extensions for a gem that's not actually installed, causing errors. The fix is to make sure detection of installed activation requests considers not only that there's a known spec with the same full name as the one being installed, but also that this spec is installed in the same gem_home were pretend to install the new gem. https://github.com/rubygems/rubygems/commit/a8ef1286a6
2024-08-05Fix truffleruby removing gems from lockfileDavid Rodríguez
When resolving on truffleruby, and multiple platforms are included in the lockfile, Bundler will not respect existing platforms, but always force ruby variants. That means removal of existing version specific variants, introducing lockfile churn between implementations. To prevent this, we introduce the distinction between `Dependency#force_ruby_platform`, only settable via Gemfile, and `Dependency#default_force_ruby_platform`, which is always true on truffleruby for certain dependency names. This way, when resolving lockfile gems for other platforms on truffleruby, we keep platform specific variants in the lockfile. However, that introduces the problem that if only platform specific variants are locked in the lockfile, Bundler won't be able to materialize on truffleruby because the generic variant will be missing. To fix this additional problem, we make sure the generic "ruby" platform is always added when resolving on truffleruby.
2024-07-23[rubygems/rubygems] Explicitly encode Gem::Dependency to yamlSamuel Giddins
This ensures that instance variable ordering cannot cause non-determinism in serialized gems https://github.com/rubygems/rubygems/commit/0e912704f7
2024-07-18[rubygems/rubygems] Fix gemspec `require_paths` type validationDavid Rodríguez
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
2024-07-18[rubygems/rubygems] Warn non flattened require paths in old RubyGems ↵David Rodríguez
versions too https://github.com/rubygems/rubygems/commit/b3cdccc6fb
2024-07-08[rubygems/rubygems] Fix wrong version is commentDavid Rodríguez
This RubyGems feature is being released as 3.5.15, so we can stop monkeypatching RubyGems once support for the previous version is dropped. https://github.com/rubygems/rubygems/commit/36f146840d
2024-07-08[rubygems/rubygems] Backport binstub race condition fix to BundlerDavid Rodríguez
https://github.com/rubygems/rubygems/commit/b07e46820d
2024-07-05[rubygems/rubygems] Restrict generic `arm` to only match 32-bit armなつき
https://github.com/rubygems/rubygems/commit/14c4c16e96
2024-06-25[rubygems/rubygems] Add Specification#validate_for_resolutionThomas Marshall
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
2024-05-16[rubygems/rubygems] Use RubyGems freebsd helperDavid Rodriguez
https://github.com/rubygems/rubygems/commit/5d03a346ab
2024-05-13[rubygems/rubygems] Don't load `SharedHelpers` unnecessarilyDavid Rodriguez
https://github.com/rubygems/rubygems/commit/de4650f629
2024-05-13[rubygems/rubygems] Don't depend on Pathname unnecessarilyDavid Rodriguez
https://github.com/rubygems/rubygems/commit/8c8aaecc48
2024-05-13[rubygems/rubygems] Require things right before they're neededDavid Rodriguez
https://github.com/rubygems/rubygems/commit/07022e3f2f
2024-04-29[rubygems/rubygems] Show better error when installed gemspecs are unreadableDavid Rodríguez
https://github.com/rubygems/rubygems/commit/924f87c8a9
2024-02-08[rubygems/rubygems] Removed unnecessary disabling of Style/RedundantParenthesesHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/2361527c45
2024-01-11[rubygems/rubygems] Disable false positive correctionHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/e75cca9496
2024-01-11[rubygems/rubygems] bin/rubocop -A --only Style/RedundantParenthesesHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/7cc647c8f3
2023-12-14[rubygems/rubygems] This patch should be no longer neededDavid Rodríguez
https://github.com/rubygems/rubygems/commit/1139e90931
2023-12-12Sync with upstream rubygems (#9206)David Rodríguez
2023-12-12[rubygems/rubygems] Revert missing extensions patchDavid Rodríguez
https://github.com/rubygems/rubygems/commit/4016c6c024
2023-12-11[rubygems/rubygems] Override initialize in bundle rubygems_ext for NameTupleMartin Emde
https://github.com/rubygems/rubygems/commit/f63ce682d2