summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2023-08-01 08:18:36 +0200
committerRicardo Wurmus <rekado@elephly.net>2023-08-01 08:20:04 +0200
commitf8724820439efad1c15801701be19bc1f7eae471 (patch)
tree5875dc55419a259b3216b0e03ce5f1cb415e1043
parent896b40d2cad5ebe34b6b99a5d6f82739ddbeea53 (diff)
downloadguix-f8724820439efad1c15801701be19bc1f7eae471.tar.gz
gnu: snakemake-7: Fix version reporting.
* gnu/packages/python-xyz.scm (snakemake-7)[arguments]: Add phase
'patch-version and use G-exp.
[build-system]: Use pyproject-build-system.
-rw-r--r--gnu/packages/python-xyz.scm59
1 files changed, 34 insertions, 25 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c058c25071..e7236c075c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11519,32 +11519,41 @@ Python style, together with a fast and comfortable execution environment.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1qrqbmx4cbis0wxr6dl2rdjv9v627sbirsz6v5c31vlbqwkvs04q"))))
-    (build-system python-build-system)
+    (build-system pyproject-build-system)
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         ;; For cluster execution Snakemake will call Python.  Since there is
-         ;; no suitable GUIX_PYTHONPATH set, cluster execution will fail.  We
-         ;; fix this by calling the snakemake wrapper instead.
-         (add-after 'unpack 'call-wrapper-not-wrapped-snakemake
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "snakemake/executors/__init__.py"
-               (("self\\.get_python_executable\\(\\),")
-                "")
-               (("\"-m snakemake\"")
-                (string-append "\"" (assoc-ref outputs "out")
-                               "/bin/snakemake" "\"")))))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (setenv "HOME" "/tmp")
-               ;; This test attempts to change S3 buckets on AWS and fails
-               ;; because there are no AWS credentials.
-               (delete-file "tests/test_tibanna.py")
-               ;; It's a similar story with this test, which requires access
-               ;; to the Google Storage service.
-               (delete-file "tests/test_google_lifesciences.py")
-               (invoke "pytest")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; For cluster execution Snakemake will call Python.  Since there is
+          ;; no suitable GUIX_PYTHONPATH set, cluster execution will fail.  We
+          ;; fix this by calling the snakemake wrapper instead.
+          (add-after 'unpack 'call-wrapper-not-wrapped-snakemake
+            (lambda* (#:key outputs #:allow-other-keys)
+              (substitute* "snakemake/executors/__init__.py"
+                (("self\\.get_python_executable\\(\\),")
+                 "")
+                (("\"-m snakemake\"")
+                 (string-append "\"" #$output
+                                "/bin/snakemake" "\"")))))
+          (add-after 'unpack 'patch-version
+            (lambda _
+              (substitute* "setup.py"
+                (("version=versioneer.get_version\\(\\)")
+                 (format #f "version=~s" #$version)))
+              (substitute* '("snakemake/_version.py"
+                             "versioneer.py")
+                (("0\\+unknown") #$version))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (setenv "HOME" "/tmp")
+                ;; This test attempts to change S3 buckets on AWS and fails
+                ;; because there are no AWS credentials.
+                (delete-file "tests/test_tibanna.py")
+                ;; It's a similar story with this test, which requires access
+                ;; to the Google Storage service.
+                (delete-file "tests/test_google_lifesciences.py")
+                (invoke "pytest")))))))
     (propagated-inputs
      (list python-appdirs
            python-configargparse