From 9b2d4d2faa875d91f76d77a9193ff7a840f263e7 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 21 Dec 2023 14:27:57 -0500 Subject: [PATCH 1/5] snakemake-interface-common: init at 1.15.0 --- .../snakemake-interface-common/default.nix | 38 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 40 insertions(+) create mode 100644 pkgs/development/python-modules/snakemake-interface-common/default.nix diff --git a/pkgs/development/python-modules/snakemake-interface-common/default.nix b/pkgs/development/python-modules/snakemake-interface-common/default.nix new file mode 100644 index 000000000000..d8a326112c33 --- /dev/null +++ b/pkgs/development/python-modules/snakemake-interface-common/default.nix @@ -0,0 +1,38 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, poetry-core +, argparse-dataclass +, ConfigArgParse +}: + +buildPythonPackage rec { + pname = "snakemake-interface-common"; + version = "1.15.0"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "snakemake"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-Rf2eMkRvkTCR2swB53ekjv8U8DzTPgjhIkBVrn6gTTI="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + argparse-dataclass + ConfigArgParse + ]; + + pythonImportsCheck = [ "snakemake_interface_common" ]; + + meta = with lib; { + description = "Common functions and classes for Snakemake and its plugins"; + homepage = "https://github.com/snakemake/snakemake-interface-common"; + license = licenses.mit; + maintainers = with maintainers; [ veprbl ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 02fb6a00b055..b8d23ec0f7e9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13276,6 +13276,8 @@ self: super: with self; { inherit (self) python; }); + snakemake-interface-common = callPackage ../development/python-modules/snakemake-interface-common { }; + snakebite = callPackage ../development/python-modules/snakebite { }; snakeviz = callPackage ../development/python-modules/snakeviz { }; From 919027873867dfe443e0813c16e0f4ac8c7a538a Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 21 Dec 2023 14:28:47 -0500 Subject: [PATCH 2/5] snakemake-interface-executor-plugins: init at 8.1.3 --- .../default.nix | 40 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 42 insertions(+) create mode 100644 pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix diff --git a/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix b/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix new file mode 100644 index 000000000000..358fdd614163 --- /dev/null +++ b/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, poetry-core +, argparse-dataclass +, throttler +, snakemake-interface-common +}: + +buildPythonPackage rec { + pname = "snakemake-interface-executor-plugins"; + version = "8.1.3"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "snakemake"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-QBLdqhR6WrO/zT0Ux5xcUtr5HbrDy91qiWuSjAA5c3E="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + argparse-dataclass + throttler + snakemake-interface-common + ]; + + pythonImportsCheck = [ "snakemake_interface_executor_plugins" ]; + + meta = with lib; { + description = "This package provides a stable interface for interactions between Snakemake and its executor plugins"; + homepage = "https://github.com/snakemake/snakemake-interface-executor-plugins"; + license = licenses.mit; + maintainers = with maintainers; [ veprbl ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b8d23ec0f7e9..9b915428fd74 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13278,6 +13278,8 @@ self: super: with self; { snakemake-interface-common = callPackage ../development/python-modules/snakemake-interface-common { }; + snakemake-interface-executor-plugins = callPackage ../development/python-modules/snakemake-interface-executor-plugins { }; + snakebite = callPackage ../development/python-modules/snakebite { }; snakeviz = callPackage ../development/python-modules/snakeviz { }; From 39ee2523bf5f5364e4482b8018f39e41bc5eafcc Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 21 Dec 2023 14:29:22 -0500 Subject: [PATCH 3/5] snakemake-interface-storage-plugins: init at 3.0.0 --- .../default.nix | 43 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 45 insertions(+) create mode 100644 pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix diff --git a/pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix b/pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix new file mode 100644 index 000000000000..3d37ec8471ec --- /dev/null +++ b/pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix @@ -0,0 +1,43 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, poetry-core +, reretry +, snakemake-interface-common +, throttler +, wrapt +, snakemake +}: + +buildPythonPackage rec { + pname = "snakemake-interface-storage-plugins"; + version = "3.0.0"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "snakemake"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-MinqSMpBlp3pCgQxorkMdrJuO0GExJsO02kg2/mGsFw="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + reretry + snakemake-interface-common + throttler + wrapt + ]; + + pythonImportsCheck = [ "snakemake_interface_storage_plugins" ]; + + meta = with lib; { + description = "This package provides a stable interface for interactions between Snakemake and its storage plugins"; + homepage = "https://github.com/snakemake/snakemake-interface-storage-plugins"; + license = licenses.mit; + maintainers = with maintainers; [ veprbl ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9b915428fd74..e539bdce460c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13280,6 +13280,8 @@ self: super: with self; { snakemake-interface-executor-plugins = callPackage ../development/python-modules/snakemake-interface-executor-plugins { }; + snakemake-interface-storage-plugins = callPackage ../development/python-modules/snakemake-interface-storage-plugins { }; + snakebite = callPackage ../development/python-modules/snakebite { }; snakeviz = callPackage ../development/python-modules/snakeviz { }; From 7a20ed69c0b69d6059f5257dd89f74ac98af7738 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 21 Dec 2023 14:31:04 -0500 Subject: [PATCH 4/5] snakemake-executor-plugin-cluster-generic: init at 1.0.7 --- .../default.nix | 38 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 40 insertions(+) create mode 100644 pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix diff --git a/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix b/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix new file mode 100644 index 000000000000..17b0aeed0bae --- /dev/null +++ b/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix @@ -0,0 +1,38 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, poetry-core +, snakemake-interface-executor-plugins +, snakemake-interface-common +}: + +buildPythonPackage rec { + pname = "snakemake-executor-plugin-cluster-generic"; + version = "1.0.7"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "snakemake"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-1W/8jf+R1798cu3sWI0LTSyVawtmFfwlAqRHwfmIAzU="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + snakemake-interface-executor-plugins + snakemake-interface-common + ]; + + pythonImportsCheck = [ "snakemake_executor_plugin_cluster_generic" ]; + + meta = with lib; { + description = "Generic cluster executor for Snakemake"; + homepage = "https://github.com/snakemake/snakemake-executor-plugin-cluster-generic/tags"; + license = licenses.mit; + maintainers = with maintainers; [ veprbl ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e539bdce460c..70ddd9066c0d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13276,6 +13276,8 @@ self: super: with self; { inherit (self) python; }); + snakemake-executor-plugin-cluster-generic = callPackage ../development/python-modules/snakemake-executor-plugin-cluster-generic { }; + snakemake-interface-common = callPackage ../development/python-modules/snakemake-interface-common { }; snakemake-interface-executor-plugins = callPackage ../development/python-modules/snakemake-interface-executor-plugins { }; From 7ff81781f2db594e5f1dedd6467b9be4ecfc2de2 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 21 Dec 2023 14:32:05 -0500 Subject: [PATCH 5/5] snakemake: 7.32.4 -> 8.0.1 --- .../science/misc/snakemake/default.nix | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix index 3acd66f79084..d279bd1e2cfd 100644 --- a/pkgs/applications/science/misc/snakemake/default.nix +++ b/pkgs/applications/science/misc/snakemake/default.nix @@ -1,20 +1,28 @@ { lib , fetchFromGitHub , python3 +, runtimeShell }: python3.pkgs.buildPythonApplication rec { pname = "snakemake"; - version = "7.32.4"; + version = "8.0.1"; format = "setuptools"; src = fetchFromGitHub { owner = "snakemake"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-9KuMPqvM8ZCTuomc0R9MBxsK3KIpukDTrlwU6MHysK0="; + hash = "sha256-F4c/lgp7J6LLye+f3FpzaXz3zM7R+jXxTziPlVbxFxA="; }; + postPatch = '' + patchShebangs --build tests/ + patchShebangs --host snakemake/executors/jobscript.sh + substituteInPlace snakemake/shell.py \ + --replace "/bin/sh" "${runtimeShell}" + ''; + propagatedBuildInputs = with python3.pkgs; [ appdirs configargparse @@ -23,6 +31,7 @@ python3.pkgs.buildPythonApplication rec { docutils gitpython humanfriendly + immutables jinja2 jsonschema nbformat @@ -32,6 +41,9 @@ python3.pkgs.buildPythonApplication rec { requests reretry smart-open + snakemake-interface-executor-plugins + snakemake-interface-common + snakemake-interface-storage-plugins stopit tabulate throttler @@ -46,31 +58,29 @@ python3.pkgs.buildPythonApplication rec { # setup. nativeCheckInputs = with python3.pkgs; [ + numpy pandas pytestCheckHook requests-mock - pillow + snakemake-executor-plugin-cluster-generic ]; disabledTestPaths = [ - "tests/test_slurm.py" - "tests/test_tes.py" - "tests/test_tibanna.py" - "tests/test_linting.py" - "tests/test_google_lifesciences.py" - "tests/test_conda_python_script/test_script.py" + "tests/test_conda_python_3_7_script/test_script.py" ]; disabledTests = [ - # Tests require network access - "test_github_issue1396" - "test_github_issue1460" + "test_deploy_sources" ]; pythonImportsCheck = [ "snakemake" ]; + preCheck = '' + export HOME="$(mktemp -d)" + ''; + meta = with lib; { homepage = "https://snakemake.github.io"; license = licenses.mit;