unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#29784] [PATCH 2/2] gnu: Add python-activepapers
@ 2017-12-19 11:50 Konrad Hinsen
  2017-12-21  9:57 ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Konrad Hinsen @ 2017-12-19 11:50 UTC (permalink / raw)
  To: 29784

 gnu/packages/python.scm | 68 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 5580b7d50..1a376e04d 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -12000,3 +12000,71 @@ particularly convenient for use in tests.")
 (define-public python2-tempdir
   (package-with-python2 python-tempdir))
 
+(define-public python-activepapers
+  (package
+    (name "python-activepapers")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "ActivePapers.Py" version))
+       (sha256
+        (base32
+         "02bpx36ixwag1g958plgjwpxaiadsj4669gsnxc8hb5aw2jplnr5"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'delete-python2-code
+           (lambda _
+             (for-each delete-file
+                       '("lib/activepapers/builtins2.py"
+                         "lib/activepapers/standardlib2.py"
+                         "lib/activepapers/utility2.py"))))
+         (replace 'check
+           (lambda _
+             (use-modules (srfi srfi-1)
+                          (ice-9 ftw))
+             ;; Deactivate the test cases that download files
+             (setenv "NO_NETWORK_ACCESS" "1")
+             ;; For some strange reason, some tests fail if nosetests runs all
+             ;; test modules in a single execution. They pass if each test
+             ;; module is run individually.
+             (every zero?
+                    (map (lambda (filename)
+                           (system* "nosetests"
+                                    (string-append "tests/" filename)))
+                         (scandir "tests"
+                                  (lambda (filename)
+                                    (string-suffix? ".py" filename))))))))))
+    (native-inputs
+     `(("python-tempdir" ,python-tempdir)
+       ("python-nose" ,python-nose)))
+    (propagated-inputs
+     `(("python-h5py" ,python-h5py)))
+    (home-page "http://www.activepapers.org/")
+    (synopsis "Executable papers for scientific computing")
+    (description
+     "ActivePapers is a tool for working with executable papers, which
+combine data, code, and documentation in single-file packages,
+suitable for publication as supplementary material or on repositories
+such as figshare or Zenodo.")
+    (properties `((python2-variant . ,(delay python2-activepapers))))
+    (license license:bsd-3)))
+
+(define-public python2-activepapers
+  (let ((base (package-with-python2
+               (strip-python2-variant python-activepapers))))
+    (package
+      (inherit base)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (delete 'delete-python2-code)
+             (add-after 'unpack 'delete-python3-code
+               (lambda _
+                 (for-each delete-file
+                           '("lib/activepapers/builtins3.py"
+                             "lib/activepapers/standardlib3.py"
+                             "lib/activepapers/utility3.py")))))))))))
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#29784] [PATCH 2/2] gnu: Add python-activepapers
  2017-12-19 11:50 [bug#29784] [PATCH 2/2] gnu: Add python-activepapers Konrad Hinsen
@ 2017-12-21  9:57 ` Ludovic Courtès
  2017-12-21 11:52   ` Konrad Hinsen
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2017-12-21  9:57 UTC (permalink / raw)
  To: Konrad Hinsen; +Cc: 29784

[-- Attachment #1: Type: text/plain, Size: 1976 bytes --]

Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

>  gnu/packages/python.scm | 68 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 68 insertions(+)
>
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 5580b7d50..1a376e04d 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -12000,3 +12000,71 @@ particularly convenient for use in tests.")
>  (define-public python2-tempdir
>    (package-with-python2 python-tempdir))
>  
> +(define-public python-activepapers
> +  (package
> +    (name "python-activepapers")

Awesome!  This had been on my to-do list for a while.  :-)

Below are some suggestions: avoid non-top-level ‘use-modules’ form, and
use ‘invoke’ as discussed recently on guix-devel.

I’m getting a hash mismatch on the source:

--8<---------------cut here---------------start------------->8---
Starting download of /gnu/store/gjxgw8jpak8jr34wpaay35a243xck97k-ActivePapers.Py-0.2.2.tar.gz
From https://pypi.io/packages/source/A/ActivePapers.Py/ActivePapers.Py-0.2.2.tar.gz...
following redirection to `https://pypi.org/packages/source/A/ActivePapers.Py/ActivePapers.Py-0.2.2.tar.gz'...
following redirection to `https://files.pythonhosted.org/packages/source/A/ActivePapers.Py/ActivePapers.Py-0.2.2.tar.gz'...
following redirection to `https://pypi.python.org/packages/32/e0/c7147c88d83f7520aded2308b34e5dcd36c91180a8c850119a749259f284/ActivePapers.Py-0.2.2.tar.gz'...
 ...y-0.2.2.tar.gz  32KiB             2.6MiB/s 00:00 [##################] 100.0%
sha256 hash mismatch for output path `/gnu/store/gjxgw8jpak8jr34wpaay35a243xck97k-ActivePapers.Py-0.2.2.tar.gz'
  expected: 02bpx36ixwag1g958plgjwpxaiadsj4669gsnxc8hb5aw2jplnr5
  actual:   12wkhjh90ffipjzv10swndp2xv9hd7xrxvg6v0n4n3i411pj4xb8
--8<---------------cut here---------------end--------------->8---

Could you check if something is amiss?

Apart from that it LGTM, thank you!

Ludo’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 2023 bytes --]

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 5bc9dea27..dad58cb95 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -12014,7 +12014,12 @@ particularly convenient for use in tests.")
          "02bpx36ixwag1g958plgjwpxaiadsj4669gsnxc8hb5aw2jplnr5"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
+     `(#:modules ((ice-9 ftw)
+                  (srfi srfi-1)
+                  (guix build utils)
+                  (guix build python-build-system))
+
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'delete-python2-code
            (lambda _
@@ -12024,20 +12029,17 @@ particularly convenient for use in tests.")
                          "lib/activepapers/utility2.py"))))
          (replace 'check
            (lambda _
-             (use-modules (srfi srfi-1)
-                          (ice-9 ftw))
              ;; Deactivate the test cases that download files
              (setenv "NO_NETWORK_ACCESS" "1")
              ;; For some strange reason, some tests fail if nosetests runs all
              ;; test modules in a single execution. They pass if each test
              ;; module is run individually.
-             (every zero?
-                    (map (lambda (filename)
-                           (system* "nosetests"
-                                    (string-append "tests/" filename)))
-                         (scandir "tests"
-                                  (lambda (filename)
-                                    (string-suffix? ".py" filename))))))))))
+             (for-each (lambda (filename)
+                         (invoke "nosetests"
+                                 (string-append "tests/" filename)))
+                       (scandir "tests"
+                                (lambda (filename)
+                                  (string-suffix? ".py" filename)))))))))
     (native-inputs
      `(("python-tempdir" ,python-tempdir)
        ("python-nose" ,python-nose)))

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#29784] [PATCH 2/2] gnu: Add python-activepapers
  2017-12-21  9:57 ` Ludovic Courtès
@ 2017-12-21 11:52   ` Konrad Hinsen
  2017-12-21 12:09     ` Konrad Hinsen
  0 siblings, 1 reply; 7+ messages in thread
From: Konrad Hinsen @ 2017-12-21 11:52 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 29784

Hi Ludo,

> Below are some suggestions: avoid non-top-level ‘use-modules’ form, and
> use ‘invoke’ as discussed recently on guix-devel.

Fine with me! I looked for inspiration in other package definitions, but
probably not the best/most recent ones.

> I’m getting a hash mismatch on the source:

>   expected: 02bpx36ixwag1g958plgjwpxaiadsj4669gsnxc8hb5aw2jplnr5
>   actual:   12wkhjh90ffipjzv10swndp2xv9hd7xrxvg6v0n4n3i411pj4xb8
> --8<---------------cut here---------------end--------------->8---
>
> Could you check if something is amiss?

I figured out there the mismatch comes from, but I have no idea how I
could (and still can) build python-activepapers on my machine, using
precisely the definition I submitted.

I had used a local file (URI of type file:///) for testing, and that's
where the SHA256 in the package definition comes from. Then I uploaded
the working version to PyPI, but from a different machine. I rebuilt the
tarball on that machine, from identical source code, but Python's
setuptools does not care about reproducible builds, so the file I
uploaded has a different hash.

Next I changed the URI in the package definition to (pypi-uri), but
didn't think about verifying (and updating) the hash. I did, however,
re-build the package (two rounds), and that worked fine. I just did it
again, it still builds.

This looks like Guix still uses the tarball in the store, in spite of
the fact that I updated the URI in the package definition. In fact,
nothing is built at all, "guix build" merely shows the store path of the
already existing build. Even when I add --round=2, nothing gets rebuilt
at all.

Konrad.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#29784] [PATCH 2/2] gnu: Add python-activepapers
  2017-12-21 11:52   ` Konrad Hinsen
@ 2017-12-21 12:09     ` Konrad Hinsen
  2017-12-21 15:47       ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Konrad Hinsen @ 2017-12-21 12:09 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 29784

Konrad Hinsen <konrad.hinsen@fastmail.net> writes:

> This looks like Guix still uses the tarball in the store, in spite of
> the fact that I updated the URI in the package definition. In fact,

One more test: I did a "guix gc" to clean up the store and re-launched
the build. Now I get the hash mismatch that you reported as well.

So this looks as if I can change the source URI without changing the
hash under which the downloaded file is put in the store - is that
right?

Konrad.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#29784] [PATCH 2/2] gnu: Add python-activepapers
  2017-12-21 12:09     ` Konrad Hinsen
@ 2017-12-21 15:47       ` Ludovic Courtès
  2017-12-21 17:00         ` Konrad Hinsen
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2017-12-21 15:47 UTC (permalink / raw)
  To: Konrad Hinsen; +Cc: 29784

Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

> Konrad Hinsen <konrad.hinsen@fastmail.net> writes:
>
>> This looks like Guix still uses the tarball in the store, in spite of
>> the fact that I updated the URI in the package definition. In fact,
>
> One more test: I did a "guix gc" to clean up the store and re-launched
> the build. Now I get the hash mismatch that you reported as well.

Yes.  Before running the GC, you still had the store item with the given
hash in your store, the guix-daemon didn’t attempt to fetch it.

To avoid this, you can always run:

  guix build -S the-package --check

before submitting, to force a re-fetch.

Can you resend the patch with the known-good hash?  (Or just the hash if
you prefer.)

Ludo’.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#29784] [PATCH 2/2] gnu: Add python-activepapers
  2017-12-21 15:47       ` Ludovic Courtès
@ 2017-12-21 17:00         ` Konrad Hinsen
  2017-12-22  8:47           ` bug#29784: " Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Konrad Hinsen @ 2017-12-21 17:00 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 29784

ludovic.courtes@inria.fr (Ludovic Courtès) writes:

> Yes.  Before running the GC, you still had the store item with the given
> hash in your store, the guix-daemon didn’t attempt to fetch it.
>
> To avoid this, you can always run:
>
>   guix build -S the-package --check
>
> before submitting, to force a re-fetch.

OK, good to know!

> Can you resend the patch with the known-good hash?  (Or just the hash if
> you prefer.)

The good hash is

   12wkhjh90ffipjzv10swndp2xv9hd7xrxvg6v0n4n3i411pj4xb8

Konrad.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#29784: [PATCH 2/2] gnu: Add python-activepapers
  2017-12-21 17:00         ` Konrad Hinsen
@ 2017-12-22  8:47           ` Ludovic Courtès
  0 siblings, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2017-12-22  8:47 UTC (permalink / raw)
  To: Konrad Hinsen; +Cc: 29784-done

Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

> ludovic.courtes@inria.fr (Ludovic Courtès) writes:
>
>> Yes.  Before running the GC, you still had the store item with the given
>> hash in your store, the guix-daemon didn’t attempt to fetch it.
>>
>> To avoid this, you can always run:
>>
>>   guix build -S the-package --check
>>
>> before submitting, to force a re-fetch.
>
> OK, good to know!
>
>> Can you resend the patch with the known-good hash?  (Or just the hash if
>> you prefer.)
>
> The good hash is
>
>    12wkhjh90ffipjzv10swndp2xv9hd7xrxvg6v0n4n3i411pj4xb8

Perfect.  Applied, thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-12-22  8:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-19 11:50 [bug#29784] [PATCH 2/2] gnu: Add python-activepapers Konrad Hinsen
2017-12-21  9:57 ` Ludovic Courtès
2017-12-21 11:52   ` Konrad Hinsen
2017-12-21 12:09     ` Konrad Hinsen
2017-12-21 15:47       ` Ludovic Courtès
2017-12-21 17:00         ` Konrad Hinsen
2017-12-22  8:47           ` bug#29784: " Ludovic Courtès

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).