Hi > I also took both Ludovic', as well as Catonano's detailed feedback on the > initial draft of the recursive importer into account when rewriting it. It > should now only visit each node in the dependency graph once, and be a > whole lot > more efficient as well. It is still based on the multi-valued return values > that drove Ricardo's initial work on the CRAN recursive importer.
[...] > After rewriting the recursive importer to be > more > sane, I scrawled some notes on my notepad that basically boil down to the > following: > 1. We should only look up each npm package once, if possible > 2. We should have a list of all npm package names. > 3. We should be able to specify the maximum traversal depth I’m not sure I understand. The CRAN recursive importer visits packages only once because it keeps track of previously imported packages (in addition to those that are already in Guix). > An easy-yet-inelegant solution would be to include the package name as used > within the npm registry as metadata via an argument to the > node-build-system. That’s not so inelegant; or at least we have precedent in Guix. For CRAN and Bioconductor packages we often add something like this: (properties `((upstream-name . "ACSNMineR"))) This is already used by the updater. ~~ Ricardo