summaryrefslogtreecommitdiff
path: root/lib/bundler
AgeCommit message (Collapse)Author
2023-03-15[rubygems/rubygems] Don't use full_required_path and extension_dir under the ↵Hiroshi SHIBATA
bundler https://github.com/rubygems/rubygems/commit/72169288ff
2023-03-15[rubygems/rubygems] Removed test forHiroshi SHIBATA
https://github.com/rubygems/rubygems/pull/6444, I have no idea to migrate this test to bundler example yet https://github.com/rubygems/rubygems/commit/0d869019bf
2023-03-15[rubygems/rubygems] Move build artifact detection logic for root gemspec to ↵Hiroshi SHIBATA
bundler from Gem::Specification. Gem::Specification#missing_extension? is heavily called from RubyGems. We should reduce extra method call from this place. https://github.com/rubygems/rubygems/commit/e24e59d44d
2023-03-10[rubygems/rubygems] Use `RbSys::ExtensionTask` when creating new rust gemsIan Ker-Seymer
https://github.com/rubygems/rubygems/commit/125f9fece9
2023-03-07[rubygems/rubygems] Respect --no-install option for git: sourcesJulie Haehn
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>
2023-03-07[rubygems/rubygems] Fix gemspec file filterDavid Rodríguez
Explicitly match directory separator to not match files in repo root accidentally. https://github.com/rubygems/rubygems/commit/b936805ea9 Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2023-03-07[rubygems/rubygems] Better suggestion when `bundler/setup` fails due to ↵David Rodríguez
missing gems If the original `BUNDLE_GEMFILE` is different from the default, then the suggestion wouldn't work as is. Before: ``` $ util/rubocop Could not find rubocop-1.30.1 in locally installed gems Run `bundle install` to install missing gems. $ rubygems git:(better-cmd-suggestion) ✗ bundle install Could not locate Gemfile ``` After: ``` $ util/rubocop Could not find rubocop-1.30.1 in locally installed gems Run `bundle install --gemfile /path/to/rubygems/bundler/tool/bundler/lint_gems.rb` to install missing gems. $ bundle install --gemfile /path/to/rubygems/bundler/tool/bundler/lint_gems.rb Fetching gem metadata from https://rubygems.org/......... Using ast 2.4.2 Using bundler 2.4.7 Using parser 3.1.2.0 Using rainbow 3.1.1 Using parallel 1.22.1 Using regexp_parser 2.5.0 Using rubocop-ast 1.18.0 Using rexml 3.2.5 Using ruby-progressbar 1.11.0 Using unicode-display_width 2.1.0 Fetching rubocop 1.30.1 Installing rubocop 1.30.1 Using rubocop-performance 1.14.2 Bundle complete! 2 Gemfile dependencies, 12 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. $ util/rubocop Inspecting 345 files ......................................................................................................................................................................................................................................................................................................................................................... 345 files inspected, no offenses detected ``` https://github.com/rubygems/rubygems/commit/bf1320d805
2023-03-06s/mjit/rjit/Takashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/7462
2023-03-03[rubygems/rubygems] Update current_ruby.rbJohnny Shields
https://github.com/rubygems/rubygems/commit/8755ca959e
2023-03-03[rubygems/rubygems] Alias CurrentRuby#mswin?, mswin64?, mingw?, x64_mingw? ↵johnnyshields
to #windows?. (This is done instead of logging a deprecation warning.) https://github.com/rubygems/rubygems/commit/b9fcc7c0ab
2023-03-02[rubygems/rubygems] Simplify the gem package file filter in the gemspec templateOrien Madgwick
The regular expression is difficult to understand at a glance. Let's replace it with a much simpler string comparison. https://github.com/rubygems/rubygems/commit/a3745aa03f
2023-03-02[rubygems/rubygems] Replace lockfile with `.locked`Tony Hsu
https://github.com/rubygems/rubygems/commit/203f3e3802
2023-03-02[rubygems/rubygems] Regenerate lockfile if spec list is invalid/empty.Ellen Marie Dash
https://github.com/rubygems/rubygems/commit/d2c56315e2
2023-03-01[rubygems/rubygems] Auto-heal on corrupted lockfile with missing depsDaniel Colson
Following up on https://github.com/rubygems/rubygems/pull/6355, which turned a crash into a nicer error message, this commit auto-heals the corrupt lockfile instead. In this particular case (a corrupt Gemfile.lock with missing dependencies) the LazySpecification will not have accurate dependency information, we have to materialize the SpecSet to determine there are missing dependencies. We've already got a way to handle this, via `SpecSet#incomplete_specs`, but it wasn't quite working for this case because we'd get to `@incomplete_specs += lookup[name]` and `lookup[name]` would be empty for the dependency. With this commit we catch it a bit earlier, marking the parent spec containing the missing dependency as incomplete. https://github.com/rubygems/rubygems/commit/486ecb8f20
2023-02-23[rubygems/rubygems] safe marshal gem specs when inflatingMercedes Bernard
https://github.com/rubygems/rubygems/commit/5c5d0c5350
2023-02-23[rubygems/rubygems] safe marshal gem versions when fetching Marshal.specs.4.8.gzMercedes Bernard
https://github.com/rubygems/rubygems/commit/23880353c1
2023-02-21Merge rubygems/bundler masterHiroshi SHIBATA
Pick from https://github.com/rubygems/rubygems/commit/e9304aed7e43308b99e70c2f7b92028315fee8a5 Notes: Merged: https://github.com/ruby/ruby/pull/7345
2023-02-21[rubygems/rubygems] Give a better message when Gemfile branch does not existDavid Rodríguez
https://github.com/rubygems/rubygems/commit/cb4fc41cbc Notes: Merged: https://github.com/ruby/ruby/pull/7345
2023-02-21[rubygems/rubygems] Update pub_grubJohn Hawthorn
* Replaces the wording of "is forbidden" with "cannot be used" * Fixes the method signature of VersionRange::Empty#eql? https://github.com/rubygems/rubygems/commit/8c6b3f130b Co-authored-by: Daniel Colson <danieljamescolson@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/7345
2023-02-21[rubygems/rubygems] Sync with pub_grub main branchDavid Rodríguez
We became a bit out of sync lately. https://github.com/rubygems/rubygems/commit/6161a2610a Notes: Merged: https://github.com/ruby/ruby/pull/7345
2023-02-21[rubygems/rubygems] Restore better error message when locked ref does not existDavid Rodríguez
https://github.com/rubygems/rubygems/commit/c8e024359f Notes: Merged: https://github.com/ruby/ruby/pull/7345
2023-02-09[rubygems/rubygems] Avoid crashing with a corrupted lockfileDaniel Colson
I did a bad thing (script that edits the Gemfile.lock directly) and ended up with a Gemfile.lock that was completely missing some indirect dependencies. While this is my fault and an error is reasonable, I noticed that the error got progressively less friendly in recent versions of bundler. Something similar came up in https://github.com/rubygems/rubygems/issues/6210, and this commit would have helped with that case as well (although we've already handled this a different way with #6219). Details: --- Back on Bundler 2.2.23, a corrupt lockfile like this would cause a helpful error: ``` Unable to find a spec satisfying minitest (>= 5.1) in the set. Perhaps the lockfile is corrupted? ``` Bundler 2.3.26 gave a helpful warning: ``` Warning: Your lockfile was created by an old Bundler that left some things out. Because of the missing DEPENDENCIES, we can only install gems one at a time, instead of installing 16 at a time. You can fix this by adding the missing gems to your Gemfile, running bundle install, and then removing the gems from your Gemfile. The missing gems are: * minitest depended upon by activesupport ``` But then continued on and crashed while trying to report the unmet dependency: ``` --- ERROR REPORT TEMPLATE ------------------------------------------------------- NoMethodError: undefined method `full_name' for nil:NilClass lib/bundler/installer/parallel_installer.rb:127:in `block (2 levels) in check_for_unmet_dependencies' ... ``` Bundler 2.4.0 and up crash as above when jobs=1, but crash even harder when run in parallel: ``` --- ERROR REPORT TEMPLATE ------------------------------------------------------- fatal: No live threads left. Deadlock? 3 threads, 3 sleeps current:0x00007fa6b6704660 main thread:0x00007fa6b6704660 * #<Thread:0x000000010833b130 sleep_forever> rb_thread_t:0x00007fa6b6704660 native:0x0000000108985600 int:0 * #<Thread:0x0000000108dea630@Parallel Installer Worker #0 tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:90 sleep_forever> rb_thread_t:0x00007fa6b67f67c0 native:0x0000700009a62000 int:0 * #<Thread:0x0000000108dea4a0@Parallel Installer Worker #1 tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:90 sleep_forever> rb_thread_t:0x00007fa6b67f63c0 native:0x0000700009c65000 int:0 <internal:thread_sync>:18:in `pop' tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:42:in `deq' ... ``` Changes --- This commit fixes the confusing thread deadlock crash by detecting if dependencies are missing such that we'll never be able to enqueue. When that happens we treat it as a failure so the install can finish. That gets us back to the `NoMethodError`, which this commit fixes by using a different warning in the case where no spec is found. https://github.com/rubygems/rubygems/commit/d73001a21d
2023-02-08[rubygems/rubygems] Improve wording of unmet dependencies warningDaniel Colson
`trying to manually editing` doesn't seem quite grammatically correct. We could change it to `trying to manually edit` (is that a split infinitive?), but I don't think `trying to` adds much here so I've removed it instead so `editing` is the verb. For the list of dependencies, the wording before this commit seemed to reverse the dependency. "B, depended on A" sounds like B depends on A (or did in the past but doesn't anymore?), but that's not correct. I think there's a missing word: "B, depended on by A", but I find "B, dependency of A" a bit nicer. https://github.com/rubygems/rubygems/commit/49a31257e3
2023-02-07[rubygems/rubygems] Add Ruby 3.2 and 3.3 platforms to Gemfile DSLDaniel Colson
Along the same lines as https://github.com/rubygems/rubygems/pull/5469, this adds support for Ruby 3.2 and 3.3 platforms: `:ruby_32`, `mri_32`, etc. It also includes a spec that should help catch this earlier in the future, failing if we don't support platforms for the version of Ruby that is running the tests. https://github.com/rubygems/rubygems/commit/7cd19d824d
2023-02-06[rubygems/rubygems] Properly exclude gemspec file itself from gemAkira Matsuda
by comparing the file names with full path. Follows up https://github.com/rubygems/rubygems/commit/f444478eaccf https://github.com/rubygems/rubygems/commit/9637a82d2e
2023-02-05[rubygems/rubygems] Replace "prior to" with "immediately after"Sam Bostock
Currently, the instructions and placeholder contradict each other. The commit that introduced this placeholder (42bc4715d920e836c8499883d) makes it clear that the placeholder should be replaced AFTER publishing (i.e. once the author successfully claims the gem name on Rubygems), so the placeholder should match. https://github.com/rubygems/rubygems/commit/23e2dea828
2023-01-31Merge RubyGems/Bundler master.Hiroshi SHIBATA
Pick from https://github.com/rubygems/rubygems/commit/5ace20dbecfeaf09fba5f616193f3cfcff70ba00 Notes: Merged: https://github.com/ruby/ruby/pull/7203
2023-01-31[rubygems/rubygems] Fix issue with extensions not compiling properly using ↵Tim Bates
inline gemfile https://github.com/rubygems/rubygems/commit/fa6e6ea95c Notes: Merged: https://github.com/ruby/ruby/pull/7203
2023-01-27[rubygems/rubygems] Don't warn on bundler binstubs --standalone --allDaniel Colson
Prior to this commit `bundle binstubs --standalone --all` would output a warning about not being able to generate a standalone binstub for bundler. This warning predates the `--all` option, and I don't think it makes sense in this context. The warning makes good sense when explicitly trying to generate a bundler standalone binstub with `bundle binstubs bundler --standalone`, since that command won't do what the user might have expected. But `--all` is not specifically asking for bundler, and having it report each time that the bundler binstubs could not be generated does not seem particularly helpful. The only way to make that warning go away would be to stop using `--standalone --all`. This commit skips the warning when running with the `--all` option. https://github.com/rubygems/rubygems/commit/e6a72e19eb
2023-01-20[rubygems/rubygems] Update bundle-exec man page for with_unbundled_envJosh Nichols
`with_clean_env` has been deprecated in `with_unbundled_env`. It already generates a deprecation warning when it uses, but this man page was still referring to it.
2023-01-10Merge RubyGems and Bundler masterHiroshi SHIBATA
from https://github.com/rubygems/rubygems/commit/0635c1423db5d7c461d53bf0c3329bca75de7609 Notes: Merged: https://github.com/ruby/ruby/pull/7094
2023-01-10Removed vendored LICENSE file.Hiroshi SHIBATA
2023-01-10[rubygems/rubygems] Fix resolver edge caseDavid Rodríguez
Let it deal with legacy gems with equivalent version and different dependencies. https://github.com/rubygems/rubygems/commit/b430babe97
2023-01-04[rubygems/rubygems] Raise invalid option when bundle open --path is called ↵yoka
without a value https://github.com/rubygems/rubygems/commit/c242311158
2023-01-04[rubygems/rubygems] Enhance bundle open with --path optionyoka
https://github.com/rubygems/rubygems/commit/3bf8e59304
2023-01-01[rubygems/rubygems] Remove stray word in bundle config man page.Mark Doliner
There was an extra word ("with") in this sentence. https://github.com/rubygems/rubygems/commit/ad3de5126c
2022-12-26Merge RubyGems/Bundler masterHiroshi SHIBATA
from https://github.com/rubygems/rubygems/commit/72fd3dd2096af16d797ad0cd8e0d2a8869e240b3 Notes: Merged: https://github.com/ruby/ruby/pull/7025
2022-12-25Update Bundler to 2.4.1 & and RubyGems to 3.4.1David Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/7020
2022-12-24Merge RubyGems-3.4.0 and Bundler-2.4.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6987
2022-12-20Merge RubyGems/Bundler masterHiroshi SHIBATA
Pick from https://github.com/rubygems/rubygems/commit/ba3adad4d80038ffd7bea015da2f11d3e8a2ff82 Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] fixMark Burns
https://github.com/rubygems/rubygems/pull/6147 when --parseable and --groups used together https://github.com/rubygems/rubygems/commit/3b0b95c509 Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] Turn `--ext` option into string. Deprecate usage without ↵Josef Šimánek
explicit value. - this is preparation for onboarding Rust based extension gem generator https://github.com/rubygems/rubygems/commit/d32801bdbc Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] Regenerate bundler man pages for December 2022.Josef Šimánek
https://github.com/rubygems/rubygems/commit/17037fe32c Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] Use safe Marshal deserialization for dependency API ↵Josef Šimánek
response. - adds Bundler#safe_load_marshal and Bundler::SAFE_MARSHAL_CLASSES listing safe classes to deserialize https://github.com/rubygems/rubygems/commit/e947c608cc Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] Fix crash when showing some resolution errorsDavid Rodríguez
If the conflict explanation includes empty ranges and version unions, Pub Grub was crashing. https://github.com/rubygems/rubygems/commit/eb360b77a2 Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] Fix crash when building resolution errors with OR ↵David Rodríguez
requirements https://github.com/rubygems/rubygems/commit/8f287479bc Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] Slight tweak to error message buildingDavid Rodríguez
Let Pub Grub decide how the constraint should be displayed. https://github.com/rubygems/rubygems/commit/4f651b6429 Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] Clarify flag descriptionMichael Siegfried
Prerelease versions are already considered in a certain circumstance, and the 'if updating' is redundant in the update case anyway. https://github.com/rubygems/rubygems/commit/8d68635f8c Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] Fix tiny typoMichael Siegfried
https://github.com/rubygems/rubygems/commit/390e3e1ebd Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-20[rubygems/rubygems] Support for pre flag in `bundle update`Michael Siegfried
Passing this flag allows bumping to the current version, even if that version is prerelease. This works in concert with the current flags. https://github.com/rubygems/rubygems/commit/a6409e3509 Notes: Merged: https://github.com/ruby/ruby/pull/6966