Ludovic Courtès writes: > Hi! > > Pierre Neidhardt skribis: > >> Shall we start a work group to fix the issue? >> >> - Write a blog article to explain the issue and a detailed process on >> how to fix it. (Embed it to the manual.) > > The “Submitting Patches” section mentions closure size specifically. Is > there anything you think we should add there? It does not give much details, e.g. the ones that Julien mentioned. Also I don't think `guix size' is enough, see below. >> - Improve the tooling. In my experience, guix graph is quickly unusable >> with a high number of nodes. Maybe d3.js could be leveraged to add a >> filtering system, or a way to click on nodes to hide them and all >> their children. > > ‘guix size’ is key here: it’s a profiler, exactly what we need IMO. > WDYT? Maybe I'm missing something, but in general I think that guix size only gives a birds eye view and does not allow for closer inspection. Say FOO has BAR in its closure, but not in the explicit inputs, how can I figure out which of the indirect inputs drags BAR in? With an extensive guix graph, it quickly becomes impossible to follow the millions of arrows. What I'd like to have is an interactive graph that I can trim to links between given nodes. This would allow me to ask "give me the dependency chain that links FOO and BAR". > The thing is, I think it’s something that requires constant care, every > time we add a package or modify an existing one. It’s very easy to lose > benefits that had been previously obtained through hard work! This is a good point. "Adding" a package is less critical since it does not impact the closure size of the rest. For "updates" maybe we could leverage the continuous integration to flag a warning when a new build has increased the size of the package compared to a previous build by some threshold. Cheers! -- Pierre Neidhardt https://ambrevar.xyz/