Hi, On 11/28/21 14:59, Timothy Sample wrote: > Pierre Langlois writes: >> The overall approach looks good to me, it's better than what I >> originally proposed for sure :-). That being said, I'm not very >> familiar with the Node.js ecosystem so I don't know if it's necessarily >> the right way, but I suspect the correct way for node isn't very Guix-y >> so I'm not too worried about that. > > The whole Node.js bundles NPM, which bundles node-gyp, which bundles a > fork of GYP [1] is not very Guix-y at all, no. :/ This is one of those > problems (like bootstrapping GCC) that will take years of incremental > improvements and side projects and all that. It's something of a tangent, but, as I discussed briefly with Pierre in e.g. , I think it would make a lot of sense, even if we can't unbundle/bootstrap everything, to make the 355 dependencies of npm we are already distributing available as Guix packages. For example, I think I found a bootstrapping cycle with the Unicode data packages: even if the version we're currently using is messy, letting other packages use it, too, might unlock much more of the JavaScript universe. I've experimented a bit (partially looking at what Debian does), and I may look at that some time after this. > I have an idea to simplify the patch series a bit: if we can answer my > question here and come to a > conclusion about deleting lock files > , I could merge the > ‘#:absent-dependencies’ part of the patch series. I think this might > make future re-rolls easier and help rein in the scope a bit. That sounds like a great approach! I had not expected this patch series to end up touching every JavaScript package in Guix :) I was offline a bit for holidays here, and just before that I'd noticed a problem with npm generating implicit build commands that tried to rebuild node-gyp packages when they are installed. I'll page this stuff back in and send a v3 soon that hopefully has at least the '#:absent-dependencies' part ready to merge. -Philip