I'm trying to understand / implement dependency resolving using the pubgrub algorithm (to use in my buildsystem nitto). But I keep running into bugs; The newset one:
Suppose we have the following state:
```
root 1.0.0 -> foo ^1.0.0, bar ^1.0.0
foo 1.1.0 -> bar ^2.0.0
foo 1.0.0 -> n/a
bar 1.0.0 -> n/a
bar 1.1.0 -> n/a
bar 2.0.0 -> n/a
```
Now after avoiding a conflict and by choosing to not select `foo 1.1.0` and deriving `not foo 1.1.0` from `{foo 1.1.0, not bar ^2.0.0}`, it derives `foo ^1.0.0` from `{root 1.0.0, not foo ^1.0.0}` even tho it is already an derivation term in the assignments! Aparentily it relates `not foo ^1.0.0` as as overlapping, and wants to add it again to the partial solution...
#pubgrub #packagemanager #packagemanagement #dependencyresolution #programming #developing #coding #softwaredevelopment #foss #floss















