snakemake: 8.20.1 -> 8.23.0 (#348616)

This commit is contained in:
Peder Bergebakken Sundt 2024-10-17 01:18:36 +02:00 committed by GitHub
commit fba4f0f724
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 230 additions and 150 deletions

View File

@ -1,138 +0,0 @@
{ lib
, fetchPypi
, python3
, stress
}:
python3.pkgs.buildPythonApplication rec {
pname = "snakemake";
version = "8.20.1";
format = "setuptools";
src = fetchPypi {
inherit pname version;
hash = "sha256-adNwIA1z/TwWsa0gQb4hAsUvHInjd30sm1dYKXvvXy8=";
};
postPatch = ''
patchShebangs --build tests/
substituteInPlace tests/common.py \
--replace-fail 'os.environ["PYTHONPATH"] = os.getcwd()' "pass" \
--replace-fail 'del os.environ["PYTHONPATH"]' "pass"
substituteInPlace snakemake/unit_tests/__init__.py \
--replace-fail '"unit_tests/templates"' '"'"$PWD"'/snakemake/unit_tests/templates"'
'';
propagatedBuildInputs = with python3.pkgs; [
appdirs
configargparse
connection-pool
datrie
docutils
gitpython
humanfriendly
immutables
jinja2
jsonschema
nbformat
psutil
pulp
pygments
pyyaml
requests
reretry
smart-open
snakemake-interface-executor-plugins
snakemake-interface-common
snakemake-interface-storage-plugins
snakemake-interface-report-plugins
stopit
tabulate
throttler
toposort
wrapt
yte
];
# 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
# setup.
nativeCheckInputs = with python3.pkgs; [
numpy
pandas
pytestCheckHook
pytest-mock
requests-mock
snakemake-executor-plugin-cluster-generic
snakemake-storage-plugin-fs
stress
];
pytestFlagsArray = [
"tests/tests.py"
"tests/test_expand.py"
"tests/test_io.py"
"tests/test_schema.py"
"tests/test_executor_test_suite.py"
"tests/test_api.py"
];
# Some will be disabled via https://github.com/snakemake/snakemake/pull/3074
disabledTests = [
# requires graphviz
"test_filegraph"
# requires s3
"test_storage"
"test_default_storage"
"test_output_file_cache_storage"
# requires peppy and eido
"test_pep"
"test_modules_peppy"
# requires perl
"test_shadow"
# requires snakemake-storage-plugin-http
"test_ancient"
"test_modules_prefix"
# requires snakemake-storage-plugin-s3
"test_deploy_sources"
# requires modules
"test_env_modules"
# issue with locating template file
"test_generate_unit_tests"
# weird
"test_strict_mode"
"test_issue1256"
"test_issue2574"
"test_github_issue1384"
# future-proofing
"conda"
"singularity"
"apptainer"
"container"
];
pythonImportsCheck = [
"snakemake"
];
preCheck = ''
export HOME="$(mktemp -d)"
'';
meta = with lib; {
homepage = "https://snakemake.github.io";
license = licenses.mit;
description = "Python-based execution environment for make-like workflows";
mainProgram = "snakemake";
longDescription = ''
Snakemake is a workflow management system that aims to reduce the complexity of
creating workflows by providing a fast and comfortable execution environment,
together with a clean and readable specification language in Python style. Snakemake
workflows are essentially Python scripts extended by declarative code to define
rules. Rules describe how to create output files from input files.
'';
maintainers = with maintainers; [ helkafen renatoGarcia veprbl ];
};
}

View File

@ -0,0 +1,170 @@
{
lib,
stdenv,
fetchPypi,
python3Packages,
stress,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "snakemake";
version = "8.23.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-XENI9VJW62KyrxDGSwQiygggYZOu9yW2QSNyp4BO9Us=";
};
postPatch = ''
patchShebangs --build tests/
substituteInPlace tests/common.py \
--replace-fail 'os.environ["PYTHONPATH"] = os.getcwd()' "pass" \
--replace-fail 'del os.environ["PYTHONPATH"]' "pass"
substituteInPlace snakemake/unit_tests/__init__.py \
--replace-fail '"unit_tests/templates"' '"'"$PWD"'/snakemake/unit_tests/templates"'
'';
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
appdirs
conda-inject
configargparse
connection-pool
datrie
docutils
gitpython
humanfriendly
immutables
jinja2
jsonschema
nbformat
psutil
pulp
pygments
pyyaml
requests
reretry
smart-open
snakemake-interface-executor-plugins
snakemake-interface-common
snakemake-interface-storage-plugins
snakemake-interface-report-plugins
stopit
tabulate
throttler
toposort
wrapt
yte
];
# 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
# setup.
nativeCheckInputs = with python3Packages; [
numpy
pandas
pytestCheckHook
pytest-mock
requests-mock
snakemake-executor-plugin-cluster-generic
snakemake-storage-plugin-fs
stress
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
pytestFlagsArray = [
"tests/tests.py"
"tests/test_expand.py"
"tests/test_io.py"
"tests/test_schema.py"
"tests/test_executor_test_suite.py"
"tests/test_api.py"
];
disabledTests =
[
# FAILED tests/tests.py::test_env_modules - AssertionError: expected successful execution
"test_ancient"
"test_conda_create_envs_only"
"test_env_modules"
"test_generate_unit_tests"
"test_modules_prefix"
"test_strict_mode"
# Requires perl
"test_shadow"
# Require peppy and eido
"test_peppy"
"test_modules_peppy"
"test_pep_pathlib"
# CalledProcessError
"test_filegraph" # requires graphviz
"test_github_issue1384"
# AssertionError: assert 127 == 1
"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"
]
++ lib.optionals stdenv.isDarwin [
# Unclear failure:
# AssertionError: expected successful execution
# `__darwinAllowLocalNetworking` doesn't help
"test_excluded_resources_not_submitted_to_cluster"
"test_group_job_resources_with_pipe"
"test_group_jobs_resources"
"test_group_jobs_resources_with_limited_resources"
"test_group_jobs_resources_with_max_threads"
"test_issue850"
"test_issue860"
"test_multicomp_group_jobs"
"test_queue_input"
"test_queue_input_dryrun"
"test_queue_input_forceall"
"test_resources_submitted_to_cluster"
"test_scopes_submitted_to_cluster"
];
pythonImportsCheck = [
"snakemake"
];
preCheck = ''
export HOME="$(mktemp -d)"
'';
meta = {
homepage = "https://snakemake.github.io";
license = lib.licenses.mit;
description = "Python-based execution environment for make-like workflows";
changelog = "https://github.com/snakemake/snakemake/blob/v${version}/CHANGELOG.md";
mainProgram = "snakemake";
longDescription = ''
Snakemake is a workflow management system that aims to reduce the complexity of
creating workflows by providing a fast and comfortable execution environment,
together with a clean and readable specification language in Python style. Snakemake
workflows are essentially Python scripts extended by declarative code to define
rules. Rules describe how to create output files from input files.
'';
maintainers = with lib.maintainers; [
helkafen
renatoGarcia
veprbl
];
};
}

View File

@ -0,0 +1,47 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
poetry-core,
# dependencies
pyyaml,
}:
buildPythonPackage rec {
pname = "conda-inject";
version = "1.3.2";
pyproject = true;
src = fetchFromGitHub {
owner = "koesterlab";
repo = "conda-inject";
rev = "refs/tags/v${version}";
hash = "sha256-M4+bz7ZuHlcF8tF5kSCUjjkIHG75eCCW1IJxcwxNL6o=";
};
build-system = [
poetry-core
];
dependencies = [
pyyaml
];
pythonImportsCheck = [
"conda_inject"
];
# no tests
doCheck = false;
meta = {
description = "Helper functions for injecting a conda environment into the current python environment";
homepage = "https://github.com/koesterlab/conda-inject";
changelog = "https://github.com/koesterlab/conda-inject/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
}

View File

@ -10,19 +10,19 @@
buildPythonPackage rec {
pname = "snakemake-interface-executor-plugins";
version = "9.2.0";
format = "pyproject";
version = "9.3.2";
pyproject = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = pname;
repo = "snakemake-interface-executor-plugins";
rev = "refs/tags/v${version}";
hash = "sha256-WMbJP17YnDzFVcr6YepT5Ltw+Jo6PPn7ayIrjx2k+go=";
hash = "sha256-3XdsEnL+kuYhNOeAxkAsjTJ2R6NOtq97zPhQg9kdFkI=";
};
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [
dependencies = [
argparse-dataclass
throttler
snakemake-interface-common
@ -30,10 +30,11 @@ buildPythonPackage rec {
pythonImportsCheck = [ "snakemake_interface_executor_plugins" ];
meta = with lib; {
meta = {
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 ];
changelog = "https://github.com/snakemake/snakemake-interface-executor-plugins/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veprbl ];
};
}

View File

@ -18387,8 +18387,6 @@ with pkgs;
smc = callPackage ../tools/misc/smc { };
snakemake = callPackage ../applications/science/misc/snakemake { };
snore = callPackage ../tools/misc/snore { };
snzip = callPackage ../tools/archivers/snzip { };

View File

@ -2514,6 +2514,8 @@ self: super: with self; {
conda = callPackage ../development/python-modules/conda { };
conda-inject = callPackage ../development/python-modules/conda-inject { };
conda-libmamba-solver = callPackage ../development/python-modules/conda-libmamba-solver { };
conda-package-handling = callPackage ../development/python-modules/conda-package-handling { };
@ -14536,7 +14538,7 @@ self: super: with self; {
});
snakemake = toPythonModule (pkgs.snakemake.override {
python3 = python;
python3Packages = self;
});
snakemake-executor-plugin-cluster-generic = callPackage ../development/python-modules/snakemake-executor-plugin-cluster-generic { };