Hi ! Ludovic Courtès writes: > Hi Edouard, > > Edouard Klein skribis: > >> Because of the subtle consequences of editing a package are hard to keep >> track of, I wrote the attached script (you need sharness to run it, but >> with slight modification it can become a standalone script). >> >> This script goes beyond the instructions of the manual on two fronts: >> - First, it not only tries to build the packages, but also to install >> them, > > I think this is probably the first time we have this problem (that I > remember of), probably because the Jupyter dependency graph has so many > propagated inputs. > > However, this is definitely something ‘guix lint’ could check with > something along the lines of the patch below. Thank you for pushing profile-collisions, it certainly is helpful for finding such problems, and it perfectly integrates within guix. > >> - Secondly, it does not limit itself to the dependents (as listed by >> guix refresh --list-dependents) of the packages one is meddling with, >> but to the whole reverse bags (as listed by guix graph >> --type=reverse-bag). > > I think it’s equivalent: ‘guix refresh -l’ simply shows the contour of > the graph whereas ‘guix graph’ lists every node. The problem lies when the leafs are OK but the nodes in the middle are not. See for example in the attached image, the failure of jupyter is masked by r-irkernel being both buildable and installable. Now, the new tool you added to guix lint solves the discoverability problem. It is now indeed reported that jupyter has a problem. Still, it takes around 10 minutes to run on my (admittedly underpowered) machine, and one has to rummage to the output (or diff with a previous run) to see if a specific action caused or solved problems. gpwc.sh has a real time visual output that is specific to current modifications (it could even be paired with Ricardo's automatic commit message writer to automatically guess which root packages to start with) that allows the developer to start investing a problem quicker, without having to wait for the end of the run. Also, the visual output makes seeing who depends on whom easier, the same information in text form makes my head hurt. Provided I rewrite it in scheme, do you think gpwc could make it into guix/etc ?