From mboxrd@z Thu Jan 1 00:00:00 1970 From: swedebugia Subject: Re: NPM importer Date: Wed, 21 Nov 2018 16:36:26 +0100 Message-ID: References: <70F182DB-C157-4763-A4C6-89985545661C@lepiller.eu> <0e5afb2d-c182-6be4-ba2d-6a6f7dd45ac9@riseup.net> <1150DF84-4952-4401-A8D0-3E05A4D0EB74@lepiller.eu> <23f36a0d-a5ef-5457-1d8e-61fbebda91c4@riseup.net> <20181120233545.16257e58@lepiller.eu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53075) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gPUSZ-0002nn-HK for guix-devel@gnu.org; Wed, 21 Nov 2018 10:30:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gPUSV-0000Sy-Ft for guix-devel@gnu.org; Wed, 21 Nov 2018 10:30:35 -0500 Received: from mx1.riseup.net ([198.252.153.129]:46381) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gPUSV-0000N9-5f for guix-devel@gnu.org; Wed, 21 Nov 2018 10:30:31 -0500 In-Reply-To: <20181120233545.16257e58@lepiller.eu> Content-Language: sv-FI List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Julien Lepiller , guix-devel@gnu.org On 2018-11-20 23:35, Julien Lepiller wrote: > Le Tue, 20 Nov 2018 22:12:18 +0100, > swedebugia a =C3=A9crit : >=20 >> Hi >> >> On 2018-11-20 20:58, swedebugia wrote: >>> On 2018-11-20 08:50, Julien Lepiller wrote: >> >> snip >> >>>> See this script that builds a graph of dependencies, ignoring >>>> devDependencies (so none of the packages listed by this script is >>>> going to be tested): >>>> https://framagit.org/tyreunom/guix/snippets/2534 >> >> What is devDependencies? Required to build the npm package? >=20 > the package.json file declares two kinds (I think I've seen a third > kind, but I'm not sure, nor am I a js developper) of dependencies: > dependencies and devDependencies that map to our inputs and > native-inputs. devDependencies are tools used during the build or > development, but they are not needed at runtime. Sometimes, they are > required at build time (for instance the coffeescript compiler is a > devDependencies of some packages, but we need it to build the package), > usually they are required at test time (for instance mocha, tap, or > tape are test frameworks), otherwise, they can be documentation tools, > and sometimes really not useful for us (we probably don't want to run > linters or release-related tools). Ok, that sounds resonable. Maybe we can blacklist all these linters and release tools during import=20 and import everything else as dependencies? snip > The way I wrote it, you were supposed to change the "mocha" with the > package you're interested in, and run the script with guile like so: >=20 > guile npm-explorer.scm > mocha.dot >=20 > and then: >=20 > fdp -Tpng mocha.dot > mocha.png >=20 > (fdp is part of graphviz, but produces nicer graphs than dot in my > opinion) Thanks! snip >> >> npm.scm will be a VERY VERY long file. Maybe we should rethink about >> how to best store all these variables... >=20 > Very long files are frowned upon, because they have very long > compilation times and require a lot of memory. We'll have to find a way > to split the file before it grows too much. Maybe we will do something > similar than python packages? We have python.scm, python-web.scm... yeah good idea. but with half a miljon packages and maybe max a 1000=20 definitons in each we will still have ~500 npm files. By then I suggest=20 we put them in a separate dir like gnu/packages/npm/web.scm etc. --=20 Cheers Swedebugia