diff --git a/pkgs/by-name/sn/snakemake/package.nix b/pkgs/by-name/sn/snakemake/package.nix index 3182e82095b8..dedcaab6cfbd 100644 --- a/pkgs/by-name/sn/snakemake/package.nix +++ b/pkgs/by-name/sn/snakemake/package.nix @@ -6,18 +6,20 @@ stress, versionCheckHook, writableTmpDirAsHomeHook, + snakemake, }: python3Packages.buildPythonApplication (finalAttrs: { pname = "snakemake"; - version = "9.16.3"; + version = "9.21.0"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "snakemake"; repo = "snakemake"; tag = "v${finalAttrs.version}"; - hash = "sha256-+eEzpRY6ZEKB3v1/AkHDg4bOcM2Y6pt4UMrdKF6soac="; + hash = "sha256-+EO+BTMkui0mJvEf0TOaCRBH8MzLsit8xK+71gujHt0="; }; postPatch = '' @@ -33,6 +35,10 @@ python3Packages.buildPythonApplication (finalAttrs: { build-system = with python3Packages; [ setuptools-scm ]; + pythonRelaxDeps = [ + "packaging" + "sqlmodel" + ]; dependencies = with python3Packages; [ appdirs conda-inject @@ -53,20 +59,24 @@ python3Packages.buildPythonApplication (finalAttrs: { requests reretry smart-open - snakemake-interface-executor-plugins snakemake-interface-common + snakemake-interface-executor-plugins snakemake-interface-logger-plugins - snakemake-interface-storage-plugins snakemake-interface-report-plugins snakemake-interface-scheduler-plugins + snakemake-interface-storage-plugins + sqlmodel stopit tabulate + tenacity throttler toposort wrapt yte ]; + pythonImportsCheck = [ "snakemake" ]; + # See # https://github.com/snakemake/snakemake/blob/main/.github/workflows/main.yml#L99 # for the current basic test suite. Slurm, Tibanna and Tes require extra @@ -81,11 +91,15 @@ python3Packages.buildPythonApplication (finalAttrs: { requests-mock snakemake-executor-plugin-cluster-generic snakemake-storage-plugin-fs + snakemake-storage-plugin-http + snakemake-storage-plugin-s3 stress - versionCheckHook polars ]) - ++ [ writableTmpDirAsHomeHook ]; + ++ [ + versionCheckHook + writableTmpDirAsHomeHook + ]; enabledTestPaths = [ "tests/tests.py" @@ -97,6 +111,9 @@ python3Packages.buildPythonApplication (finalAttrs: { ]; disabledTests = [ + # AssertionError: expected file "onerror_module2.log" not produced + "test_module_onerror" + # FAILED tests/tests.py::test_env_modules - AssertionError: expected successful execution "test_ancient" "test_conda_create_envs_only" @@ -119,13 +136,6 @@ python3Packages.buildPythonApplication (finalAttrs: { "test_issue1256" "test_issue2574" - # Require `snakemake-storage-plugin-fs` (circular dependency) - "test_default_storage" - "test_default_storage_local_job" - "test_deploy_sources" - "test_output_file_cache_storage" - "test_storage" - # Tries to access internet "test_report_after_run" @@ -136,10 +146,6 @@ python3Packages.buildPythonApplication (finalAttrs: { # Needs unshare "test_nodelocal" - # Requires snakemake-storage-plugin-http - "test_keep_local" - "test_retrieve" - # Requires conda "test_jupyter_notebook" "test_jupyter_notebook_nbconvert" @@ -179,7 +185,11 @@ python3Packages.buildPythonApplication (finalAttrs: { "test_issue1331" ]; - pythonImportsCheck = [ "snakemake" ]; + # Circular dependencies + doCheck = false; + passthru.tests.pytest = snakemake.overridePythonAttrs { + doCheck = true; + }; meta = { homepage = "https://snakemake.github.io";