New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix plugin installation from gemfile #6957
base: master
Are you sure you want to change the base?
Conversation
I've confirmed this also fixes #6589 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is awesome 🎸
024ff9c
to
7122f47
Compare
@pboling anything else you wanted to see on this PR? |
Moving the ball forward on plugins is amazing. There is probably still some gap before I can do what I was hoping with plugins, but this is a great step toward making them more of a first-class citizen within bundler. |
This is indeed pretty cool! @ccutrer can you rebase this? |
There are several conflicts. I'll try to get them resolved later today. |
31d3050
to
c014b7f
Compare
Rebased and conflicts resolved; I didn't run rubocop or specs locally -- I'll let GitHub Actions handle that |
@ccutrer I assume test failures here mean this still needs some work? Happy to have a look if needed! |
Yes, this still needs attention. I'm sorry I haven't had time for it - have had other priorities at work. |
No problem at all! |
Co-authored-by: Diogo Fernandes <diogofernandesop@gmail.com>
Keep track of plugins during the main Gemfile pass, and then validate that they're installed everywhere else we validate the runtime.
9f5f8a9
to
e8f0d0a
Compare
importantly, bundler 3 automatically caches, cleans, and prunes gems by default, so need to always keep track of plugins, even for the regular gemfile run, and include plugins in the list of known gems when cleaning up
@deivid-rodriguez : this is ready for review now. I had to do significant reworking for Bundler 3, and I left the fixes as separate commits. I'd be happy to squash down as you want. |
What was the end-user or developer problem that led to this PR?
This fixes #6630 and several related issues. Related to #6643, but a very different approach. Specs were copied from that PR though.
What is your fix for the problem, implemented in this PR?
Instead of blindly calling the installer with the plugins from the gemfile, build a virtual lockfile from the plugin index. Then only call the installer if it needs to be resolved. This fixes several issues:
bundle install
is calledMake sure the following tasks are checked