guix import go fails when module does not have a documenation on pkg.go.dev

  • Done
  • quality assurance status badge
Details
4 participants
  • Björn Höfling
  • Sarah Morgensen
  • raingloom
  • zimoun
Owner
unassigned
Submitted by
Björn Höfling
Severity
normal
B
B
Björn Höfling wrote on 26 Jun 2021 00:30
(address . bug-guix@gnu.org)
20210626003047.4eb8c995@alma-ubu.fritz.box
$ ./pre-inst-env guix import go github.com/caspr-io/yamlpath
go-module->guix-package module-path: github.com/caspr-io/yamlpath
Backtrace:
In ice-9/boot-9.scm:
1752:10 8 (with-exception-handler _ _ #:unwind? _ # _)
In unknown file:
7 (apply-smob/0 #<thunk 7f370ddfc0c0>)
In ice-9/boot-9.scm:
724:2 6 (call-with-prompt _ _ #<procedure default-prompt-handle?>)
In ice-9/eval.scm:
619:8 5 (_ #(#(#<directory (guile-user) 7f370de02c80>)))
In guix/ui.scm:
2147:12 4 (run-guix-command _ . _)
In guix/scripts/import.scm:
120:11 3 (guix-import . _)
In guix/scripts/import/go.scm:
118:27 2 (guix-import-go . _)
In ice-9/eval.scm:
293:34 1 (_ #(#(#(#(#(#(#(#(#(#(#(?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?))
619:8 0 (_ #(#(#<directory (guix import go) 7f370b75a6e0> #f)))

ice-9/eval.scm:619:8: Throw to key `match-error' with args `("match" "no matching pattern" #f)'.

If you look at the page


It has no Description, because the site cannot parse license
information correctly and thus conservatively does not display any info.

Can be trivially fixed with this:

Toggle diff (20 lines)
diff --git a/guix/import/go.scm b/guix/import/go.scm
index d110954664..10095b9d24 100644
--- a/guix/import/go.scm
+++ b/guix/import/go.scm
@@ -190,6 +194,7 @@ e.g. \"google.golang.org/protobuf/proto\"."
(first description))))
(match description*
(() #f) ;nothing selected
+ (#f #f)
Hope this is independent of the other go-importer-bugs we have, like:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49202
http://issues.guix.gnu.org/issue/45984

Additionally, it would be nice if the go-module->guix-package would
print out the module it would fetch next (like I did above). Then the
broken module would be easier to find in recursive mode.

Björn
-----BEGIN PGP SIGNATURE-----

iF0EAREKAB0WIQQiGUP0np8nb5SZM4K/KGy2WT5f/QUCYNZZFwAKCRC/KGy2WT5f
/VYvAKCaS5UsDih4IRJWARU7MHUBPMRIGQCdGdDoZ0VCaFNiUZEaF8lJs/AI0Wg=
=a9GC
-----END PGP SIGNATURE-----


S
S
Sarah Morgensen wrote on 26 Jun 2021 03:18
(name . Björn Höfling)(address . bjoern.hoefling@bjoernhoefling.de)(address . 49228@debbugs.gnu.org)
86eecp77ar.fsf@mgsn.dev
Hello,

Thanks for the report.

Björn Höfling <bjoern.hoefling@bjoernhoefling.de> writes:

Toggle quote (11 lines)
> $ ./pre-inst-env guix import go github.com/caspr-io/yamlpath
> [...]
> ice-9/eval.scm:619:8: Throw to key `match-error' with args `("match" "no matching pattern" #f)'.
>
> If you look at the page
>
> https://pkg.go.dev/github.com/caspr-io/yamlpath
>
> It has no Description, because the site cannot parse license
> information correctly and thus conservatively does not display any info.

There is currently a patch for this (mine; though I could have named it
better, I suppose):


Toggle quote (4 lines)
> Additionally, it would be nice if the go-module->guix-package would
> print out the module it would fetch next (like I did above). Then the
> broken module would be easier to find in recursive mode.

Error reporting in the importers is currently pretty inconsistent and
could use a lot of improvement. You might be interested in taking a look
at the PATCH v3 in https://issues.guix.gnu.org/49196 which somewhat
addresses this. Comments are always welcome! :)

Sarah
B
B
Björn Höfling wrote on 28 Jun 2021 08:58
(name . Sarah Morgensen)(address . iskarian@mgsn.dev)(address . 49228-done@debbugs.gnu.org)
20210628085827.6e89f13f@alma-ubu.fritz.box
Hi Sarah,

On Fri, 25 Jun 2021 18:18:04 -0700
Sarah Morgensen <iskarian@mgsn.dev> wrote:

Toggle quote (5 lines)
> There is currently a patch for this (mine; though I could have named
> it better, I suppose):
>
> https://issues.guix.gnu.org/49200

Nice coincident :-)

I pushed your patch as

9d9152425e96c408357d0f4961767a5c08076c13

Thanks.
Toggle quote (10 lines)
> > Additionally, it would be nice if the go-module->guix-package would
> > print out the module it would fetch next (like I did above). Then
> > the broken module would be easier to find in recursive mode.
>
> Error reporting in the importers is currently pretty inconsistent and
> could use a lot of improvement. You might be interested in taking a
> look at the PATCH v3 in <https://issues.guix.gnu.org/49196> which
> somewhat addresses this. Comments are always welcome! :)


Good to know. I will have a look at these patches the next days/weeks.

Björn
-----BEGIN PGP SIGNATURE-----

iF0EAREKAB0WIQQiGUP0np8nb5SZM4K/KGy2WT5f/QUCYNlzEwAKCRC/KGy2WT5f
/ewgAKC7JLj4KxryHIXcdh9h9CcNA5iSrwCfeQhdgYttP89nYV+VVXAWGDTJ/0A=
=XkKh
-----END PGP SIGNATURE-----


Closed
Z
Z
zimoun wrote on 28 Jun 2021 18:24
CAJ3okZ0v0+qE97R1F=OxmEncoikR59ZgxxSRuJWiWUWt6e8MQA@mail.gmail.com
Hi,

On Mon, 28 Jun 2021 at 08:59, Björn Höfling
<bjoern.hoefling@bjoernhoefling.de> wrote:

Toggle quote (4 lines)
> I pushed your patch as
>
> 9d9152425e96c408357d0f4961767a5c08076c13

Here, there is a tiny typo. :-)

Toggle snippet (7 lines)
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;;
;;; This file is part of GNU Guix.

Toggle quote (11 lines)
> > > Additionally, it would be nice if the go-module->guix-package would
> > > print out the module it would fetch next (like I did above). Then
> > > the broken module would be easier to find in recursive mode.
> >
> > Error reporting in the importers is currently pretty inconsistent and
> > could use a lot of improvement. You might be interested in taking a
> > look at the PATCH v3 in <https://issues.guix.gnu.org/49196> which
> > somewhat addresses this. Comments are always welcome! :)
>
> Good to know. I will have a look at these patches the next days/weeks.

If v4 is good enough to be merged, then feel free to push it. :-)

Cheers,
simon
R
R
raingloom wrote on 30 Jun 2021 23:20
(name . Björn Höfling)(address . bjoern.hoefling@bjoernhoefling.de)(address . 49228@debbugs.gnu.org)
20210630232005.103a5472@riseup.net
On Sat, 26 Jun 2021 00:30:47 +0200
Björn Höfling <bjoern.hoefling@bjoernhoefling.de> wrote:

Toggle quote (32 lines)
> $ ./pre-inst-env guix import go github.com/caspr-io/yamlpath
> go-module->guix-package module-path: github.com/caspr-io/yamlpath
> Backtrace:
> In ice-9/boot-9.scm:
> 1752:10 8 (with-exception-handler _ _ #:unwind? _ # _)
> In unknown file:
> 7 (apply-smob/0 #<thunk 7f370ddfc0c0>)
> In ice-9/boot-9.scm:
> 724:2 6 (call-with-prompt _ _ #<procedure
> default-prompt-handle?>) In ice-9/eval.scm:
> 619:8 5 (_ #(#(#<directory (guile-user) 7f370de02c80>)))
> In guix/ui.scm:
> 2147:12 4 (run-guix-command _ . _)
> In guix/scripts/import.scm:
> 120:11 3 (guix-import . _)
> In guix/scripts/import/go.scm:
> 118:27 2 (guix-import-go . _)
> In ice-9/eval.scm:
> 293:34 1 (_ #(#(#(#(#(#(#(#(#(#(#(?) ?) ?) ?) ?) ?) ?) ?) ?) ?)
> ?)) 619:8 0 (_ #(#(#<directory (guix import go) 7f370b75a6e0> #f)))
>
> ice-9/eval.scm:619:8: Throw to key `match-error' with args `("match"
> "no matching pattern" #f)'.
>
> If you look at the page
>
> https://pkg.go.dev/github.com/caspr-io/yamlpath
>
> It has no Description, because the site cannot parse license
> information correctly and thus conservatively does not display any
> info.

Could we use godocs.io? It's more copyleft friendly AFAIK.
But that's just hearsay, I'm only getting into Go now, so idk much
about the services surrouding it yet.
S
S
Sarah Morgensen wrote on 1 Jul 2021 06:18
(name . raingloom)(address . raingloom@riseup.net)
86fswy7jlq.fsf@mgsn.dev
Hi,

raingloom <raingloom@riseup.net> writes:

Toggle quote (12 lines)
>> If you look at the page
>>
>> https://pkg.go.dev/github.com/caspr-io/yamlpath
>>
>> It has no Description, because the site cannot parse license
>> information correctly and thus conservatively does not display any
>> info.
>
> Could we use godocs.io? It's more copyleft friendly AFAIK.
> But that's just hearsay, I'm only getting into Go now, so idk much
> about the services surrouding it yet.

Right now the information from pkg.go.dev is used to populate the package's
* synopsis
* description, and
* license
sections.

As far as I can tell, godocs.io does not have any information about the
package's license... *eventually* we may want to consider writing a
license guesser of our own, as that could potentially be useful across
all of Guix.

As for description, godocs.io seems to collects description information
differently (inferiorly?) than pkg.go.dev. For example, compare:


I wonder how complicated it would be to guess at a synopsis/description
ourselves? It may be worth asking the initial committers of the go
importer.

--
Sarah
?