Subject: Re: bug#54658: "pypi->guix-package, no wheel" test fails

From: Maxime Devos <[email-masked]>
Date: Wed, 13 Apr 2022 10:51:20 +0200

Maxime Devos schreef op wo 13-04-2022 om 09:52 [+0200]:
> Ludovic Courtès schreef op wo 13-04-2022 om 08:48 [+0200]:
> > Hi,
> > 
> > Maxime Devos <[email-masked]> skribis:
> > 
> > > I noticed "./pre-inst-env guix build guix" fails on my computer
> due to
> > > "pypi->guix-package, no wheel" failing.  Here is an excerpt from
> the log:
> > 
> > Which commit are you building for?  For x86_64-linux?
> > 
> > Current ‘guix’ package seems to be fine:
> 
> I can reproduce it in a Guix checkout for
> 855097683230b756ba28636bed03ce904b6f3589 with "make check
> TESTS=tests/pypi.scm". (x86_64-linux)
> 
> It appears to be non-deterministic though --  the first "make check
> TESTS=tests/pypi.scm" failed, but the later ones succeeded.
> 
> I'll try adding some pk debugging and running it in a loop.

I added some pk:

;;; (found     (package (name "python-foo") (version "1.0.0") (source (origin (method url-fetch) (uri (pypi-uri "foo" version)) (sha256 (base32 "03rsmi1ricql316vak5gs89prv8494k1j7cgcgj7a763bcd6n4fa")))) (build-system python-build-system) (propagated-inputs (list python-bar python-foo)) (native-inputs (list python-pytest)) (home-page "http://example.com") (synopsis "summary") (description "summary") (license license:lgpl2.0)))

;;; ([email-masked] (package (name "python-foo") (version "1.0.0") (source (origin (method url-fetch) (uri (pypi-uri "foo" version)) (sha256 (base32 "0z67xsvpivl9509m5l7n369nakszvnvm7ird09qgs6vn5pwqcl35")))) (build-system python-build-system) (propagated-inputs (list python-bar python-foo)) (native-inputs (list python-pytest)) (home-page "http://example.com") (synopsis "summary") (description "summary") (license license:lgpl2.0)))

;;; (foo@?? (package (name "python-foo") (version "1.0.0") (source (origin (method url-fetch) (uri (pypi-uri "foo" version)) (sha256 (base32 "03rsmi1ricql316vak5gs89prv8494k1j7cgcgj7a763bcd6n4fa")))) (build-system python-build-system) (

The problem is that the hash of 'found' and [email-masked]' doesn't match :

03rsmi1ricql316vak5gs89prv8494k1j7cgcgj7a763bcd6n4fa
0z67xsvpivl9509m5l7n369nakszvnvm7ird09qgs6vn5pwqcl35

TBI ...
diff --git a/tests/pypi.scm b/tests/pypi.scm
index 88bb0a3116..359dd58bb1 100644
--- a/tests/pypi.scm
+++ b/tests/pypi.scm
@@ -245,7 +245,7 @@ Requires-Dist: pytest (>=3.1.0); extra == 'testing'
                               (string-length test-json-1)))
                      ("https://example.com/foo-1.0.0-py2.py3-none-any.whl" #f)
                      (_ (error "Unexpected URL: " url)))))
-                (match (pypi->guix-package "foo")
+                (match (pk 'found (pypi->guix-package "foo"))
                   (('package
                      ('name "python-foo")
                      ('version "1.0.0")
@@ -265,10 +265,10 @@ Requires-Dist: pytest (>=3.1.0); extra == 'testing'
                    (and (string=? (bytevector->nix-base32-string
                                    test-source-hash)
                                   hash)
-                        (equal? (pypi->guix-package "foo" #:version "1.0.0")
-                                (pypi->guix-package "foo"))
-                        (guard (c ((error? c) #t))
-                          (pypi->guix-package "foo" #:version "42"))))
+                        (equal? (pk [email-masked] (pypi->guix-package "foo" #:version "1.0.0"))
+                                (pk 'foo@?? (pypi->guix-package "foo")))
+                        (guard (c ((error? c) (pk 'c c #t)))
+                          (pk 'n (pypi->guix-package "foo" #:version "42")))))
                   (x
                    (pk 'fail x #f))))))