From 643e9233e1ad76031a46234a9091ef4e48de0f31 Mon Sep 17 00:00:00 2001 From: Nicolas Graves Date: Mon, 17 Aug 2026 21:20:27 +0200 Subject: 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 Signed-off-by: Sharlatan Hellseher --- gnu/packages/python-science.scm | 67 +++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 33 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index ea8856be11b..d9ade7a7dbe 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 python@3.7 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") -- cgit v1.2.3