Creating as a draft PR because it currently causes a lot of test failures. I don't understand yet if that's because this approach is ultimately unsound or just that some of the assumptions about how resolvelib works are broken, but resolvelib still always finds a correct resolution. If anyone has time to assist in understanding these test failures or explaining what they mean that would help, but otherwise I will figure them out.
Fixes https://github.com/sarugaku/resolvelib/issues/147
Creating as a draft PR because it currently causes a lot of test failures. I don't understand yet if that's because this approach is ultimately unsound or just that some of the assumptions about how resolvelib works are broken, but resolvelib still always finds a correct resolution. If anyone has time to assist in understanding these test failures or explaining what they mean that would help, but otherwise I will figure them out.
Using @pradyunsg's https://github.com/pradyunsg/pip-resolver-benchmarks I see a significant resolution time improve of ~5.5x in the pyrax_198 scenario.