From: zimoun <zimon.toutoune@gmail.com>
To: 45984@debbugs.gnu.org
Subject: [bug#45984] [PATCH 0/5] Fix recursive importers
Date: Tue, 19 Jan 2021 16:45:25 +0100 [thread overview]
Message-ID: <20210119154525.11230-1-zimon.toutoune@gmail.com> (raw)
Dear,
Currently, there is 2 issues:
1. <from>->guix-package returning #f instead of (values #f '())
2. error incorrectly handled by guix/scripts/import/<from>
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).
Now, instead of throwing an ugly backtrace, it simply say almost nothing:
--8<---------------cut here---------------start------------->8---
$ ./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
--8<---------------cut here---------------end--------------->8---
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.
--8<---------------cut here---------------start------------->8---
$ 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'
--8<---------------cut here---------------end--------------->8---
In my opinions, UI messages should not appear in guix/import/*.scm but only in
guix/scripts/*.scm.
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.
WDYT?
All the best,
simon
zimoun (5):
import: pypi: Return 'values'.
import: hackage: Return 'values'.
import: elpa: Return 'values'.
import: cran: Return 'values'.
scripts: import: gem: Fix recursive error handling.
guix/import/cran.scm | 5 ++---
guix/import/elpa.scm | 7 ++-----
guix/import/hackage.scm | 16 ++++++++++------
guix/import/pypi.scm | 10 +++++-----
guix/scripts/import/gem.scm | 27 +++++++++++++++------------
5 files changed, 34 insertions(+), 31 deletions(-)
base-commit: 2d9c6542c804eb2ef3d8934e1e3ab8b24e9bbafb
prerequisite-patch-id: 6ce76af47a26307f4b99162b5ae2b47f5e5f220f
prerequisite-patch-id: 32b0ac51a8fbe72cc9204c5a6d0e2b987af7b7f6
prerequisite-patch-id: 3fa663069818b59ab4d324cc69fabcd62c5a9b50
--
2.29.2
next reply other threads:[~2021-01-19 15:51 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-19 15:45 zimoun [this message]
2021-01-19 15:47 ` [bug#45984] [PATCH 1/5] import: pypi: Return 'values' zimoun
2021-01-19 15:47 ` [bug#45984] [PATCH 2/5] import: hackage: " zimoun
2021-01-19 15:47 ` [bug#45984] [PATCH 3/5] import: elpa: " zimoun
2021-01-19 15:47 ` [bug#45984] [PATCH 4/5] import: cran: " zimoun
2021-01-19 15:47 ` [bug#45984] [PATCH 5/5] scripts: import: gem: Fix recursive error handling zimoun
2021-01-26 22:24 ` [bug#45984] [PATCH 0/5] Fix recursive importers Ludovic Courtès
2021-01-26 23:16 ` zimoun
2021-01-28 13:22 ` Ludovic Courtès
2021-01-28 22:07 ` zimoun
2022-03-07 21:52 ` bug#45984: " Ludovic Courtès
2022-03-08 8:36 ` [bug#45984] " zimoun
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
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210119154525.11230-1-zimon.toutoune@gmail.com \
--to=zimon.toutoune@gmail.com \
--cc=45984@debbugs.gnu.org \
/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 public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).