View on GitHub

Pip and Pubgrub

Modify Pip's resolvelib to Pubgrub algorithm

Profile Articles References

Welcome to our independent study project.

We are students from NCTU that work on our project about implement version solving algorithm - Pubgrub into python's package installer - pip.

The problem we want to resolve

In this issue - https://github.com/pypa/pip/issues/7406, pip's team want to improve the efficiency about package resolving process by a new algorithm *Pubgrub*. It's an algorithm to solve the sat problem faster than before. After we implement it, the version solver can use less steps to finish computing the result.

What we do

First we read some documents about pubgrub like article in medium and solver.md file in github (you can click Reference on top to see what we read) to know how pubgrub work. We also read the source code of pubgrub implementation on github (pub and mixology)

And then we want to compare pubgrub and the origin algorithm uesd in pip, so we read pip's source code.

After reading, we know more about pubgrub and pip origin algorithm, and we made a slide to show an example to elaborate the difference between these two algorithm
Next .....

Current progress

Now we forked pip to replace the algorithm by pubgrub, and we start to code. We want to end this project in the end of 2020.
Besides that, we also read the tests code in pip to know how the resolver work, and we classify them and make some commets on each test to show what situation it want to test. (you can check in Articles)

more detail

As we mentained above, all document and resource that we read, you can find it in Reference, and you can see more detail about what you do in Articles