diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-02-02 15:55:21 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-02-02 17:58:21 +0100 |
commit | 00762a4c4c8ecdd71cccf6afdd87ae68bf9b4964 (patch) | |
tree | 65ca6d16fb152ed44ba77bd8d6f2078ced62d9d2 /guix/import/pypi.scm | |
parent | 31ca569ca511b94786c8a8019a8d6fbaeac005f1 (diff) |
import: pypi: Display a hint upon "no source release" errors.
Fixes <https://issues.guix.gnu.org/49083>.
* guix/import/pypi.scm (pypi->guix-package): Upon
'missing-source-error?', raise a compound condition with a hint.
Diffstat (limited to 'guix/import/pypi.scm')
-rw-r--r-- | guix/import/pypi.scm | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index b80f43ac15..e07b792c53 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson <davet@gnu.org> ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com> -;;; Copyright © 2015, 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015-2017, 2019-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> @@ -499,8 +499,20 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (and project (guard (c ((missing-source-error? c) (let ((package (missing-source-error-package c))) - (leave (G_ "no source release for pypi package ~a ~a~%") - (project-info-name info) version)))) + (raise + (make-compound-condition + (formatted-message + (G_ "no source release for pypi package ~a ~a~%") + (project-info-name info) version) + (condition + (&fix-hint + (hint (format #f (G_ "This indicates that the +package is available on PyPI, but only as a \"wheel\" containing binaries, not +source. To build it from source, refer to the upstream repository at +@uref{~a}.") + (or (project-info-home-page info) + (project-info-url info) + "?")))))))))) (make-pypi-sexp (project-info-name info) version (and=> (source-release project version) distribution-url) |