@@ -435,9 +435,9 @@ solution or by adding an incompatibility to the incompatibility set.
435
435
| Step | Value | Type | Where it was added | Cause | Decision level |
436
436
| ---- | ----- | ---- | ------------------ | ----- | -------------- |
437
437
| 1 | ` root 1.0.0 ` | decision | top level | | 0 |
438
- | 2 | ` {root 1.0.0, not foo ^1.0.0} ` | incompatibility | top level | | |
438
+ | 2 | ` {root 1.0.0, not foo ^1.0.0} ` | incompatibility | top level | | |
439
439
| 3 | ` foo ^1.0.0 ` | derivation | unit propagation | step 2 | 0 |
440
- | 4 | ` {foo any, not bar ^1.0.0} ` | incompatibility | decision making | | |
440
+ | 4 | ` {foo any, not bar ^1.0.0} ` | incompatibility | decision making | | |
441
441
| 5 | ` foo 1.0.0 ` | decision | decision making | | 1 |
442
442
| 6 | ` bar ^1.0.0 ` | derivation | unit propagation | step 4 | 1 |
443
443
| 7 | ` bar 1.0.0 ` | decision | decision making | | 2 |
@@ -471,11 +471,11 @@ Pubgrub goes through the following steps:
471
471
| Step | Value | Type | Where it was added | Cause | Decision level |
472
472
| ---- | ----- | ---- | ------------------ | ----- | -------------- |
473
473
| 1 | ` root 1.0.0 ` | decision | top level | | 0 |
474
- | 2 | ` {root 1.0.0, not foo ^1.0.0} ` | incompatibility | top level | | |
475
- | 3 | ` {root 1.0.0, not bar ^1.0.0} ` | incompatibility | top level | | |
474
+ | 2 | ` {root 1.0.0, not foo ^1.0.0} ` | incompatibility | top level | | |
475
+ | 3 | ` {root 1.0.0, not bar ^1.0.0} ` | incompatibility | top level | | |
476
476
| 4 | ` foo ^1.0.0 ` | derivation | unit propagation | step 2 | 0 |
477
477
| 5 | ` bar ^1.0.0 ` | derivation | unit propagation | step 3 | 0 |
478
- | 6 | ` {foo >=1.1.0, not bar ^2.0.0} ` | incompatibility | decision making | | |
478
+ | 6 | ` {foo >=1.1.0, not bar ^2.0.0} ` | incompatibility | decision making | | |
479
479
| 7 | ` not foo >=1.1.0 ` | derivation | unit propagation | step 6 | 0 |
480
480
| 8 | ` foo 1.0.0 ` | decision | decision making | | 1 |
481
481
| 9 | ` bar 1.1.0 ` | decision | decision making | | 2 |
@@ -508,12 +508,12 @@ Pubgrub goes through the following steps:
508
508
| Step | Value | Type | Where it was added | Cause | Decision level |
509
509
| ---- | ----- | ---- | ------------------ | ----- | -------------- |
510
510
| 1 | ` root 1.0.0 ` | decision | top level | | 0 |
511
- | 2 | ` {root 1.0.0, not foo >=1.0.0} ` | incompatibility | top level | | |
511
+ | 2 | ` {root 1.0.0, not foo >=1.0.0} ` | incompatibility | top level | | |
512
512
| 3 | ` foo >=1.0.0 ` | derivation | unit propagation | step 2 | 0 |
513
- | 4 | ` {foo >=2.0.0, not bar ^1.0.0} ` | incompatibility | decision making | | |
513
+ | 4 | ` {foo >=2.0.0, not bar ^1.0.0} ` | incompatibility | decision making | | |
514
514
| 5 | ` foo 2.0.0 ` | decision | decision making | | 1 |
515
515
| 6 | ` bar ^1.0.0 ` | derivation | unit propagation | step 4 | 1 |
516
- | 7 | ` {bar any, not foo ^1.0.0} ` | incompatibility | decision making | | |
516
+ | 7 | ` {bar any, not foo ^1.0.0} ` | incompatibility | decision making | | |
517
517
518
518
The incompatibility added at step 7 is satisfied by the partial assignment: `bar
519
519
any` is satisfied by ` bar ^1.0.0` from step 6, and ` not foo ^1.0.0` is satisfied
@@ -522,7 +522,7 @@ where it iteratively works towards the root cause of the conflict:
522
522
523
523
| Step | Incompatibility | Term | Satisfier | Cause | Previous Satisfier |
524
524
| ---- | --------------- | ---- | --------- | ----- | ------------------ |
525
- | 8 | ` {bar any, not foo ^1.0.0} ` | ` bar any ` | ` bar ^1.0.0 ` from step 6 | ` {foo >=2.0.0, not bar ^1.0.0} ` | ` foo 2.0.0 ` from step 5 |
525
+ | 8 | ` {bar any, not foo ^1.0.0} ` | ` bar any ` | ` bar ^1.0.0 ` from step 6 | ` {foo >=2.0.0, not bar ^1.0.0} ` | ` foo 2.0.0 ` from step 5 |
526
526
| 9 | ` {foo >=2.0.0} ` | ` foo >=1.0.0 ` | ` foo 2.0.0 ` from step 5 | | |
527
527
528
528
In step 9, we merge the two incompatibilities ` {bar any, not foo ^1.0.0} ` and
@@ -575,23 +575,23 @@ Pubgrub goes through the following steps:
575
575
| Step | Value | Type | Where it was added | Cause | Decision level |
576
576
| ---- | ----- | ---- | ------------------ | ----- | -------------- |
577
577
| 1 | ` root 1.0.0 ` | decision | top level | | 0 |
578
- | 2 | ` {root 1.0.0, not foo ^1.0.0} ` | incompatibility | top level | | |
579
- | 3 | ` {root 1.0.0, not target ^2.0.0} ` | incompatibility | top level | | |
578
+ | 2 | ` {root 1.0.0, not foo ^1.0.0} ` | incompatibility | top level | | |
579
+ | 3 | ` {root 1.0.0, not target ^2.0.0} ` | incompatibility | top level | | |
580
580
| 4 | ` foo ^1.0.0 ` | derivation | unit propagation | step 2 | 0 |
581
581
| 5 | ` target ^2.0.0 ` | derivation | unit propagation | step 3 | 0 |
582
582
| 6 | ` target 2.0.0 ` | decision | decision making | | 1 |
583
- | 7 | ` {foo >=1.1.0, not left ^1.0.0} ` | incompatibility | decision making | | |
584
- | 8 | ` {foo >=1.1.0, not right ^1.0.0} ` | incompatibility | decision making | | |
583
+ | 7 | ` {foo >=1.1.0, not left ^1.0.0} ` | incompatibility | decision making | | |
584
+ | 8 | ` {foo >=1.1.0, not right ^1.0.0} ` | incompatibility | decision making | | |
585
585
| 9 | ` foo 1.1.0 ` | decision | decision making | | 2 |
586
586
| 10 | ` left ^1.0.0 ` | derivation | unit propagation | step 7 | 2 |
587
587
| 11 | ` right ^1.0.0 ` | derivation | unit propagation | step 8 | 2 |
588
- | 12 | ` {right any, not shared <2.0.0} ` | incompatibility | decision making | | |
588
+ | 12 | ` {right any, not shared <2.0.0} ` | incompatibility | decision making | | |
589
589
| 13 | ` right 1.0.0 ` | decision | decision making | | 3 |
590
590
| 14 | ` shared <2.0.0 ` | derivation | unit propagation | step 12 | 3 |
591
- | 15 | ` {left any, not shared >=1.0.0} ` | incompatibility | decision making | | |
591
+ | 15 | ` {left any, not shared >=1.0.0} ` | incompatibility | decision making | | |
592
592
| 16 | ` left 1.0.0 ` | decision | decision making | | 4 |
593
593
| 17 | ` shared >=1.0.0 ` | derivation | unit propagation | step 15 | 4 |
594
- | 18 | ` {shared ^1.0.0, not target ^1.0.0} ` | incompatibility | decision making | | |
594
+ | 18 | ` {shared ^1.0.0, not target ^1.0.0} ` | incompatibility | decision making | | |
595
595
596
596
The incompatibility at step 18 is in conflict: ` not target ^1.0.0 ` is satisfied
597
597
by ` target ^2.0.0 ` from step 5, and ` shared ^1.0.0 ` is * jointly* satisfied by
@@ -608,8 +608,8 @@ But this derivation causes a new conflict, which needs to be resolved:
608
608
609
609
| Step | Incompatibility | Term | Satisfier | Cause | Previous Satisfier |
610
610
| ---- | --------------- | ---- | --------- | ----- | ------------------ |
611
- | 20 | ` {left any, not shared >=1.0.0} ` | ` not shared >=1.0.0 ` | ` not shared ^1.0.0 ` from step 19 | ` {shared ^1.0.0, not target ^1.0.0} ` | ` shared <2.0.0 ` from step 14 |
612
- | 21 | ` {left any, not target ^1.0.0, not shared >=2.0.0} ` | ` not shared >=2.0.0 ` | ` shared <2.0.0 ` from step 14 | ` {right any, not shared <2.0.0} ` | ` left ^1.0.0 ` from step 10 |
611
+ | 20 | ` {left any, not shared >=1.0.0} ` | ` not shared >=1.0.0 ` | ` not shared ^1.0.0 ` from step 19 | ` {shared ^1.0.0, not target ^1.0.0} ` | ` shared <2.0.0 ` from step 14 |
612
+ | 21 | ` {left any, not target ^1.0.0, not shared >=2.0.0} ` | ` not shared >=2.0.0 ` | ` shared <2.0.0 ` from step 14 | ` {right any, not shared <2.0.0} ` | ` left ^1.0.0 ` from step 10 |
613
613
614
614
Once again, we merge two incompatibilities, but this time we aren't able to
615
615
simplify the result.
@@ -626,17 +626,17 @@ where `left ^1.0.0` was derived:
626
626
627
627
| Step | Value | Type | Where it was added | Cause | Decision level |
628
628
| ---- | ----- | ---- | ------------------ | ----- | -------------- |
629
- | 22 | ` {left any, not target ^1.0.0, not shared >=2.0.0} ` | incompatibility | conflict resolution | | |
629
+ | 22 | ` {left any, not target ^1.0.0, not shared >=2.0.0} ` | incompatibility | conflict resolution | | |
630
630
| 23 | ` shared >=2.0.0 ` | derivation | unit propagation | step 22 | 2 |
631
631
632
632
And we re-enter conflict resolution:
633
633
634
634
| Step | Incompatibility | Term | Satisfier | Cause | Previous Satisfier |
635
635
| ---- | --------------- | ---- | --------- | ----- | ------------------ |
636
- | 24 | ` {right any, not shared <2.0.0} ` | ` not shared <2.0.0 ` | ` shared >=2.0.0 ` from step 23 | ` {left any, not target ^1.0.0, not shared >=2.0.0} ` | ` right ^1.0.0 ` from step 11 |
637
- | 25 | ` {left any, right any, not target ^1.0.0} ` | ` right any ` | ` right ^1.0.0 ` from step 11 | ` {foo >=1.1.0, not right ^1.0.0} ` | ` left ^1.0.0 ` from step 10 |
638
- | 26 | ` {left any, foo >=1.1.0, not target ^1.0.0} ` | ` left any ` | ` left ^1.0.0 ` from step 10 | ` {foo >=1.1.0, not left ^1.0.0} ` | ` foo 1.1.0 ` from step 9 |
639
- | 27 | ` {foo >=1.1.0, not target ^1.0.0} ` | ` foo >=1.1.0 ` | ` foo 1.1.0 ` from step 9 | | ` target ^2.0.0 ` from step 5 |
636
+ | 24 | ` {right any, not shared <2.0.0} ` | ` not shared <2.0.0 ` | ` shared >=2.0.0 ` from step 23 | ` {left any, not target ^1.0.0, not shared >=2.0.0} ` | ` right ^1.0.0 ` from step 11 |
637
+ | 25 | ` {left any, right any, not target ^1.0.0} ` | ` right any ` | ` right ^1.0.0 ` from step 11 | ` {foo >=1.1.0, not right ^1.0.0} ` | ` left ^1.0.0 ` from step 10 |
638
+ | 26 | ` {left any, foo >=1.1.0, not target ^1.0.0} ` | ` left any ` | ` left ^1.0.0 ` from step 10 | ` {foo >=1.1.0, not left ^1.0.0} ` | ` foo 1.1.0 ` from step 9 |
639
+ | 27 | ` {foo >=1.1.0, not target ^1.0.0} ` | ` foo >=1.1.0 ` | ` foo 1.1.0 ` from step 9 | | ` target ^2.0.0 ` from step 5 |
640
640
641
641
Pubgrub has figured out that ` foo 1.1.0 ` transitively depends on `target
642
642
^1.0.0` , even though that dependency goes through ` left` , ` right` , and ` shared`.
@@ -645,7 +645,7 @@ and quickly finds the correct solution:
645
645
646
646
| Step | Value | Type | Where it was added | Cause | Decision level |
647
647
| ---- | ----- | ---- | ------------------ | ----- | -------------- |
648
- | 28 | ` {foo >=1.1.0, not target ^1.0.0} ` | incompatibility | conflict resolution | | |
648
+ | 28 | ` {foo >=1.1.0, not target ^1.0.0} ` | incompatibility | conflict resolution | | |
649
649
| 29 | ` not foo >=1.1.0 ` | derivation | unit propagation | step 28 | 0 |
650
650
| 30 | ` foo 1.0.0 ` | decision | decision making | | 1 |
651
651
| 31 | ` target 2.0.0 ` | decision | decision making | | 2 |
0 commit comments