Wow! Bundler just merged a PR switching it's version resolution algorithm to PubGrub, which should make "bundle update" faster and have better error messages https://github.com/rubygems/rubygems/pull/5960 ๐Ÿงต
Migrate our resolver engine to PubGrub by deivid-rodriguez ยท Pull Request #5960 ยท rubygems/rubygems

What was the end-user or developer problem that led to this PR? Our current resolve engine has performance issues where sometimes it will hang during resolution due to an excessive number of resolu...

GitHub
PubGrub is a version solving algorithm written by @nex3 based on conflict-driven clause learning for the dart package manager. It's super cool. She has an excellent write up about it at https://nex3.medium.com/pubgrub-2fb6470504f . A few years ago I wrote the Ruby port, which it's amazing to now see used by bundler
PubGrub: Next-Generation Version Solving - Natalie Weizenbaum - Medium

PubGrub is a brand new package management algorithm for selecting packages more quickly and explaining failures more clearly than ever before.

Medium
I can't wait to get these error messages from bundler in my terminal. How PubGrub works is generate a logical proof for version solving. So you get a complete explanation of why your Gemfile failed. David did a great job adjusting the language to be more bundler-applicable too.
@jhawthorn this would be awesome! Just upgraded a large Rails application with almost 400 dependencies and this is sorely needed.
@jhawthorn @halfbyte this might also be interesting for your depfu