Run git operations in parallel (take 2):#9323
Merged
hsbt merged 1 commit intoruby:masterfrom Feb 17, 2026
Merged
Conversation
p8
reviewed
Feb 10, 2026
bundler/lib/bundler/definition.rb
Outdated
Comment on lines
1136
to
1138
| ensure | ||
| preload_git_source_worker.stop | ||
| end |
Contributor
There was a problem hiding this comment.
Not sure if this is expected but this ensure block still gets called, even with the early return.
def test
return
ensure
puts "hi there!"
end
test
=> "hi there!"
Contributor
Author
There was a problem hiding this comment.
Thanks 👍 . It's not an issue but it's also not necessary to stop the workers if they haven't started 😅 . I'll make the change
363e319 to
e201444
Compare
hsbt
approved these changes
Feb 13, 2026
Member
hsbt
left a comment
There was a problem hiding this comment.
👍
Can you rebase from the current HEAD commit?
- In ruby#9100, I opened a patch to run git operations in parallel in order to download git gems more quickly. The parallelization doesn't works when resolving is not needed due to a premature call to `source.specs` hit by this codepath. You can reproduce the problem and see that the gems aren't downloaded in parallel if you have an existing Gemfile and Gemfile.lock. (In my first patch, I forgot to try when a Gemfile.lock already existed). I'd like to introduce a new call to `prelad_git_sources`, when bundler hits the "missing specs" branch. I unforunately couldn't find a single place where we could preload git sources due to the `source.specs` that is called at different path.
e201444 to
f25b40f
Compare
hsbt
added a commit
that referenced
this pull request
Feb 24, 2026
Run git operations in parallel (take 2): (cherry picked from commit 4b62784)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What was the end-user or developer problem that led to this PR?
In #9100, I opened a patch to run git operations in parallel in order to download git gems more quickly. The parallelization doesn't work when resolving is not needed due to a premature call to
source.specshit by a different codepath.You can reproduce the problem and see that the gems aren't downloaded in parallel if you have an existing Gemfile and Gemfile.lock. (In my first patch, I forgot to try when a Gemfile.lock already existed).
What is your fix for the problem, implemented in this PR?
I'd like to introduce a new call to
preload_git_sources, when bundler hits the "missing specs" branch. I unfortunately couldn't find a single place where we could preload git sources due to thesource.specsthat is called at different path.Make sure the following tasks are checked