Subject: [bug#44178] [PATCH] Create importer for Go modules

From: Ludovic Courtès <[email-masked]>
Date: Sun, 31 Jan 2021 17:23:59 +0100

Hi,

JOULAUD François <[email-masked]> skribis:

> On Thu, Jan 28, 2021 at 02:27:57PM +0100, Ludovic Courtès wrote:
>> I think whoever among you is available to work on it these days could
>> take the lead and prepare a final version of the patches.  It looks like
>> it’s approaching a first “committable” version (perhaps just missing an
>> addition to doc/guix.texi and test cases like we have ‘tests/cpan.scm’ &
>> co.)
>
> I thought I would be able to send a working v2 of this patch today but
> it seems I was too optimistic.
>
> I found that some go.mod out there uses quoted string
> which our ad-hoc parser don't know how to parse. cf.
> https://github.com/go-yaml/yaml/blob/496545a6307b2a7d7a710fd516e5e16e8ab62dbc/go.mod
>
> I don't know if this is a blocker for a merge or not.

Your call; if it’s an infrequent problem, we could commit it and leave a
FIXME in the code.  We could also use guile-yaml (or maybe some Go
code?) to parse it correctly.

> Apart from that I don't know how to add guile-lib to the dependencies of
> Guix (in order to use htmlprag). Help needed.

So ‘xml->sxml’ isn’t good enough?  (If we can avoid the guile-lib
dependency, the better.)

To depend on Guile-Lib, you would:

  1. Add it to (guix self) — this is the code used by ‘guix pull’;

  2. Add it to the ‘inputs’ field of the ‘guix’ package;

  3. Maybe add a configure check in ‘configure.ac’, though it would be
     best if we could arrange to make it an optional dependency.

> I tested it recursively with github.com/hashicorp/consul (which was one
> of those with the most dependencies I found) and it mostly works.

Yay, sounds promising!

Thanks,
Ludo’.