guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 643e9233e1ad76031a46234a9091ef4e48de0f31
Author: Nicolas Graves <[email protected]>
AuthorDate: Mon Aug 17 21:20:27 2026 +0200

    gnu: snakemake: Update to 9.25.1.
    
    * gnu/packages/python-science.scm (snakemake): Update to 9.25.1.
    [source]: Switch to git-fetch.
    [arguments]{test-flags}: Refresh them.
    {phases}: Add phase 'relax-requirements, drop phase
    'call-wrapper-not-wrapped-snakemake, which was not effective for some
    time already.
    [propagated-inputs]:  Add python-snakemake-interface-logger-plugins,
    python-snakemake-interface-scheduler-plugins,
    python-snakemake-interface-software-deployment-plugins,
    python-sqlmodel.
    [native-inputs]: Add python-pytest, python-setuptools-scm,
    python-snakemake-interface-software-deployment-plugin-container,
    spython-snakemake-interface-logger-plugin-envmodules.
    
    Relates-to: guix/guix!10625
    Reviewed-by: Hugo Buddelmeijer <[email protected]>
    Signed-off-by: Sharlatan Hellseher <[email protected]>
---
 gnu/packages/python-science.scm | 67 +++++++++++++++++++++--------------------
 1 file changed, 34 insertions(+), 33 deletions(-)

diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index ea8856be11..d9ade7a7db 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -7084,27 +7084,39 @@ are source structure, project manager, interactive 
help, workspace...")
 (define-public snakemake
   (package
     (name "snakemake")
-    (version "8.30.0")
+    (version "9.25.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "snakemake" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/snakemake/snakemake";)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "08k6qk886a6f79higkd0pjjrq9sn6w5gk0gdgx88rhr1aln1qk7x"))))
+        (base32 "15xic0m0pyhakyzvi9r2hlm9rvfnws53ngxnwkp9l9x47xqfgh7v"))))
     (build-system pyproject-build-system)
     (arguments
      (list
       #:test-flags
       #~(list
+         ;; Conda is ignored, see
+         ;; github.com/snakemake/snakemake/pull/3339#issuecomment-5241768006
+         "--ignore=tests/test_software_directive.py"
+         ;; These tests require snakemake-executor-plugin-cluster-generic.
+         "--ignore=tests/test_executor_test_suite.py"
+         "--deselect=tests/test_logging.py::test_group_job_failure_events"
+         ;; Those require additional snakemake plugins.
+         "--ignore=tests/test_api.py"
          ;; XXX: Unclear why these tests fail.
+         "--ignore=tests/test_jupyter_notebook_pathlike.py"
+         "--ignore=tests/test_persistence.py"
+         "--deselect=tests/test_script.py::TestBashEncoder"
+         "--deselect=tests/test_sourcecache.py::test_github_file_fetch"
          "--ignore=tests/test_report_href/test_script.py"
          "--ignore=tests/test_script_py/scripts/test_explicit_import.py"
          "--ignore=tests/test_output_index.py"
          ;; We don't care about testing old [email protected] on Guix.
          
"--ignore=tests/test_conda_python_3_7_script/test_script_python_3_7.py"
-         ;; Those require additional snakemake plugins.
-         "--ignore=tests/test_api.py"
-         "--ignore=tests/test_executor_test_suite.py"
          ;; We don't care about lints.
          "--ignore=tests/test_linting.py"
          ;; These tests attempt to change S3 buckets on AWS and fail
@@ -7115,37 +7127,18 @@ are source structure, project manager, interactive 
help, workspace...")
          "--ignore=tests/test_google_lifesciences")
       #:phases
       #~(modify-phases %standard-phases
+          (add-after 'unpack 'relax-requirements
+            (lambda _
+              (substitute* "pyproject.toml"
+                (("\"pip\",")
+                 "")
+                (("\"packaging.*\",")
+                 "\"packaging\","))))
           (add-after 'unpack 'avoid-assets-download
             (lambda _
               (substitute* "setup.py"
                 (("^from assets import Assets") "")
                 (("^Assets\\.deploy\\(\\)") ""))))
-          ;; 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 _
-              (substitute* "snakemake/executors/__init__.py"
-                (("self\\.get_python_executable\\(\\),")
-                 "")
-                (("\"-m snakemake\"")
-                 (string-append "\"" #$output
-                                "/bin/snakemake" "\""))
-                ;; The snakemake command produced by format_job_exec contains
-                ;; references to /gnu/store.  Prior to patching above that's
-                ;; just a reference to Python; after patching it's a reference
-                ;; to the snakemake executable.
-                ;;
-                ;; In Tibanna execution mode Snakemake arranges for a certain
-                ;; Docker image to be deployed to AWS.  It then passes its own
-                ;; command line to Tibanna.  This is misguided because it only
-                ;; ever works if the local Snakemake command was run inside
-                ;; the same Docker image.  In the case of using Guix this is
-                ;; never correct, so we need to replace the store reference.
-                (("tibanna_args.command = command")
-                 (string-append
-                  "tibanna_args.command = command.replace('"
-                  #$output "/bin/snakemake', 'python3 -m snakemake')")))))
           (add-before 'check 'pre-check
             (lambda* (#:key tests?  #:allow-other-keys)
               (when tests?
@@ -7171,8 +7164,12 @@ are source structure, project manager, interactive help, 
workspace...")
            python-smart-open
            python-snakemake-interface-common
            python-snakemake-interface-executor-plugins
+           python-snakemake-interface-logger-plugins
            python-snakemake-interface-report-plugins
+           python-snakemake-interface-scheduler-plugins
+           python-snakemake-interface-software-deployment-plugins
            python-snakemake-interface-storage-plugins
+           python-sqlmodel
            python-tabulate
            python-throttler
            python-wrapt
@@ -7181,7 +7178,11 @@ are source structure, project manager, interactive help, 
workspace...")
      (list python-docutils
            python-numpy
            python-pandas
+           python-pytest
            python-setuptools
+           python-setuptools-scm
+           python-snakemake-software-deployment-plugin-container
+           python-snakemake-software-deployment-plugin-envmodules
            python-tomli))
     (home-page "https://snakemake.readthedocs.io";)
     (synopsis "Python-based execution environment for make-like workflows")

Reply via email to