[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#45984] [PATCH 0/5] Fix recursive importers
From: |
Ludovic Courtès |
Subject: |
[bug#45984] [PATCH 0/5] Fix recursive importers |
Date: |
Tue, 26 Jan 2021 23:24:56 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Hi!
zimoun <zimon.toutoune@gmail.com> skribis:
> This corner case #1 happens when the package does not exist; then the function
> 'lookup-node' is not able to "unpack" the 'values' and throw and ugly
> backtrace, as exposed in bug#44114 <http://issues.guix.gnu.org/44115#3>.
>
> With these trivial patches, it is fixed for all the importers except 'opam'
> (because of 'and-let' which needs some care).
Neat!
> Now, instead of throwing an ugly backtrace, it simply say almost nothing:
>
> $ ./pre-inst-env guix import cran do-not-exist -r
> error: failed to retrieve package information from
> "https://cran.r-project.org/web/packages/do-not-exist/DESCRIPTION": 404 ("Not
> Found")
>
> $ ./pre-inst-env guix import pypi do-not-exist -r
> following redirection to `https://pypi.org/pypi/do-not-exist/json/'...
> #f
>
>
> This non-existent message is because the error is poorly handled. With the 4
> patches, the situation is the same as "guix import gem" for all the importers
> with the recursive option. One way for a better error handling is done in the
> last commit for 'guix import gem' only; the same trick can be done for all.
>
> $ guix import gem do-not-exist -r
> #f
>
> $ ./pre-inst-env guix import gem do-not-exist -r
> guix import: error: failed to download meta-data for package 'do-not-exist'
I think we do want this error message. Why should we ignore
non-existent packages when doing ‘-r’? It would think they’re still a
problem, no?
> In my opinions, UI messages should not appear in guix/import/*.scm but only in
> guix/scripts/*.scm.
I agree with the general idea, though sometimes taking this shortcut is
beneficial (maybe not in this case?).
> If I understand correctly, then the way the errors are reported could be
> uniformized between all the importers, and maybe the snippet in the
> subcommands
> "guix import <from>" could be refactorized a bit.
Probably. ‘-r’ started as an option specific to one importer, but now
that most of them (?) support it, it’d make sense to rethink the
interfaces.
Thanks for looking into it!
Ludo’.