From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Timothy Sample <samplet@ngyro.com>
Cc: guix-devel@gnu.org
Subject: Re: Merging the “binary” NPM importer?
Date: Wed, 13 Oct 2021 21:26:12 -0400 [thread overview]
Message-ID: <871r4opfbf.fsf@gmail.com> (raw)
In-Reply-To: <87a6jeayuf.fsf@ngyro.com> (Timothy Sample's message of "Tue, 12 Oct 2021 14:21:12 -0400")
Hello Timothy,
Timothy Sample <samplet@ngyro.com> writes:
> Hi Maxim,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>
>> I'm not too keen on having an importer which produces packages that
>> can't be included in Guix proper -- it seems a double standard to me.
>> I'd personally prefer to have such tool maintained outside of Guix
>> proper.
>
> The reason I called it the “NPM Binary Importer” was to scare people
> away, because its results are rather limited. Maybe I went too far,
> though, and people are too scared! :)
>
> It’s more accurately the “Half-finished NPM Importer”. It produces
> packages that are missing two important parts: the dependencies needed
> to build the package; and the upstream source code location. Getting
> the dependencies is quite hard, since NPM doesn’t differentiate between
> build tools, testing frameworks, linters, scripts for publishing, etc.
> This results in a ton of circular dependencies since the publishing
> scripts use linters, and the linters use build tools, and the build
> tools use publishing scripts, etc., etc. We would need some sort of
> block list to get around this (e.g., we should just skip over stuff like
> ESLint). Getting the source code can be tricky, too. Normally, NPM
> packages have a “repository” field that points to the source code
> repository. However, in some cases, packages use a monorepo setup where
> many packages are produced from one repository. This complicates the
> correspondence between source code repositories and NPM packages.
>
> What the “binary” importer does is ignore all the “development”
> dependencies, use the NPM tarball as the package source, and set the
> ‘#:build?’ argument to false. This is a hack to get the half-finished
> importer to produce working (even if unpleasant) packages.
>
> I write all this to make it clear that the fact the importer produces
> “binary” packages is not the result of a “who cares about free software
> or source code?” attitude! :) It just seemed like a reasonable
> checkpoint between nothing and a Guix-ready NPM importer.
>
> I think keeping the half-finished importer alive by including it in Guix
> might be a good strategy. It might help us work – collectively –
> towards the goal of providing a clean, freedom respecting collection of
> JavaScript packages in Guix.
>
> Of course, I do respect and understand your concerns. After all, I
> called it the “binary” importer to be as scary as possible! In the end,
> it’s up to you and the other maintainers – hopefully my explanations are
> helpful.
Thanks for sharing all this background information! It helped a lot to
refine my current understanding of where this importer came from and
where it's heading; I must confess I hadn't reviewed the importer
details and the idea I had of it was mostly attributable to its scary
name :-).
In light of your message though, I think it may be fine to have the
importer in Guix as long as it is labeled as a technology preview, with
its current shortcomings documented :-). This may make it more
accessible and allow to refine it faster.
Thanks again,
Maxim
next prev parent reply other threads:[~2021-10-14 1:27 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-19 13:01 Adding extra package importers pinoaffe
2021-09-19 14:44 ` Maxime Devos
2021-09-23 20:28 ` Merging the “binary” NPM importer? Ludovic Courtès
2021-09-23 23:13 ` pinoaffe
2021-09-26 13:37 ` Jelle Licht
2021-09-26 21:34 ` pinoaffe
2021-09-26 22:32 ` Philip McGrath
2021-09-27 8:57 ` pinoaffe
2021-09-27 15:13 ` Katherine Cox-Buday
2021-09-28 12:37 ` Ludovic Courtès
2021-09-25 3:17 ` Christine Lemmer-Webber
2021-10-08 1:51 ` Maxim Cournoyer
2021-10-08 14:16 ` Katherine Cox-Buday
2021-10-11 10:13 ` zimoun
2021-10-11 17:12 ` pinoaffe
2021-10-12 18:21 ` Timothy Sample
2021-10-14 1:26 ` Maxim Cournoyer [this message]
2021-10-14 13:58 ` Ludovic Courtès
2021-10-14 14:54 ` Opining on "modern" development practices (was Re: Merging the “binary” NPM importer?) Katherine Cox-Buday
2021-10-21 19:39 ` Ludovic Courtès
2021-10-28 15:01 ` Katherine Cox-Buday
2021-10-29 12:33 ` Ludovic Courtès
2021-10-29 14:54 ` Katherine Cox-Buday
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871r4opfbf.fsf@gmail.com \
--to=maxim.cournoyer@gmail.com \
--cc=guix-devel@gnu.org \
--cc=samplet@ngyro.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.