diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake index e2616a71a2e78aa0489636031b64700027283f55..4af819824d8742fcbacd53e4300a18fb65d4ed2f 100644 --- a/scripts/cmake/Find.cmake +++ b/scripts/cmake/Find.cmake @@ -26,12 +26,6 @@ find_program(CCACHE_TOOL_PATH ccache) find_program(MODULE_CMD lmod PATHS /software/lmod/lmod/libexec) -find_program(SNAKEMAKE snakemake) -find_program(TEE_TOOL_PATH tee) -if(OGS_BUILD_TESTING AND SNAKEMAKE AND NOT TEE_TOOL_PATH) - message(WARNING "tee tool was not found. Snakemake tests are disabled!") -endif() - find_program(GMSH gmsh) find_program(XMLSTARLET_TOOL_PATH xmlstarlet) diff --git a/scripts/cmake/PythonSetup.cmake b/scripts/cmake/PythonSetup.cmake index 329e35ce5463f91cc297ba44aa90dbadba9cc5f2..fb22b42ee2e443c6e48bd2ec12308f2f3d3930d4 100644 --- a/scripts/cmake/PythonSetup.cmake +++ b/scripts/cmake/PythonSetup.cmake @@ -92,15 +92,8 @@ if(OGS_USE_PIP) file(STRINGS Tests/Data/requirements-dev.txt _requirements_dev) list(APPEND OGS_PYTHON_PACKAGES ${_requirements} ${_requirements_dev}) - list( - APPEND - OGS_PYTHON_PACKAGES - "snakemake==${ogs.minimum_version.snakemake}" - "pulp==2.7.0" # https://github.com/snakemake/snakemake/issues/2607 - "setuptools" # https://github.com/glenfant/stopit/issues/32 - ) - set(SNAKEMAKE ${LOCAL_VIRTUALENV_BIN_DIR}/snakemake CACHE FILEPATH "" - FORCE + list(APPEND OGS_PYTHON_PACKAGES + "setuptools" # https://github.com/glenfant/stopit/issues/32 ) endif() endif() @@ -209,8 +202,7 @@ function(setup_venv_dependent_ctests) PATH Parabolic/HT/InvalidProjectFiles EXECUTABLE ogs EXECUTABLE_ARGS ${ht_invalid_prj_file} - RUNTIME 1 - PROPERTIES WILL_FAIL TRUE + RUNTIME 1 PROPERTIES WILL_FAIL TRUE ) endforeach() endif() diff --git a/scripts/cmake/test/Test.cmake b/scripts/cmake/test/Test.cmake index ef7d99790e6edcfe96b6aca1709c9914c32f636a..1c70e13a9fff626dae4496fb7ac8ccc03842bb98 100644 --- a/scripts/cmake/test/Test.cmake +++ b/scripts/cmake/test/Test.cmake @@ -84,18 +84,14 @@ set_target_properties( Testing ) -configure_file( - ${PROJECT_SOURCE_DIR}/scripts/test/buildinfo.in.yaml - ${PROJECT_BINARY_DIR}/buildinfo.yaml -) - file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/logs) # Files in Testing/Notes are submitted to cdash, supply additional build info. if(DEFINED ENV{CI_JOB_URL}) - file(GENERATE OUTPUT ${PROJECT_BINARY_DIR}/Testing/Notes/buildinfo.txt - CONTENT -"CI_JOB_URL=$ENV{CI_JOB_URL} + file( + GENERATE + OUTPUT ${PROJECT_BINARY_DIR}/Testing/Notes/buildinfo.txt + CONTENT "CI_JOB_URL=$ENV{CI_JOB_URL} COMMIT_URL=$ENV{CI_PROJECT_URL}/-/commit/$ENV{CI_COMMIT_SHA} CI_COMMIT_TIMESTAMP=$ENV{CI_COMMIT_TIMESTAMP}\n" ) diff --git a/scripts/snakemake/modules/meshes.smk b/scripts/snakemake/modules/meshes.smk deleted file mode 100644 index 4d24e8e02ccc55b04e7ffbdaa3c25d709d6e1c49..0000000000000000000000000000000000000000 --- a/scripts/snakemake/modules/meshes.smk +++ /dev/null @@ -1,10 +0,0 @@ -rule generate_square_mesh: - output: - "{mesh_name_prefix,\\w+}_{size,\\d+}_{lx,\\d+}x{ly,\\d+}_{type}.vtu" - shell: - """ - generateStructuredMesh -e {wildcards.type} \ - --lx {wildcards.lx} --ly {wildcards.ly} \ - --nx {wildcards.size} --ny {wildcards.size} \ - -o {output} - """ diff --git a/scripts/snakemake/vtkdiff/environment.yaml b/scripts/snakemake/vtkdiff/environment.yaml deleted file mode 100644 index bc29b1f14d450688eaa50f64ee2ceee643d31246..0000000000000000000000000000000000000000 --- a/scripts/snakemake/vtkdiff/environment.yaml +++ /dev/null @@ -1,2 +0,0 @@ -dependencies: - - python diff --git a/scripts/snakemake/vtkdiff/wrapper.py b/scripts/snakemake/vtkdiff/wrapper.py deleted file mode 100644 index 78d3902da57c0322dda2e9bb05a7d88849e5a46c..0000000000000000000000000000000000000000 --- a/scripts/snakemake/vtkdiff/wrapper.py +++ /dev/null @@ -1,34 +0,0 @@ -"""Snakemake wrapper for vtkdiff.""" - -__author__ = "Lars Bilke" -__copyright__ = "Copyright 2020, OpenGeoSys Community" -__license__ = "BSD" - -from pathlib import Path - -from snakemake.shell import shell - -# ruff: noqa: F821 -output = Path(snakemake.output[0]) -if output.exists(): - output.unlink() - -if snakemake.params.check_mesh: - shell("vtkdiff {snakemake.input.a} {snakemake.input.b} -m > {snakemake.output[0]}") - -for field in snakemake.params.fields: - field_a = field[0] - offset = 0 - if len(field) == 4: - offset = 1 - field_b = field[0 + offset] - abs_tol = field[1 + offset] - rel_tol = field[2 + offset] - - shell( - """ - vtkdiff {snakemake.input.a} {snakemake.input.b} \ - -a {field_a} -b {field_b} \ - --abs {abs_tol} --rel {rel_tol} 2>&1 | tee -a {snakemake.output[0]} - """ - ) diff --git a/scripts/snakemake/workflows/partmesh.smk b/scripts/snakemake/workflows/partmesh.smk deleted file mode 100644 index dcb674cb8105f26b59c6426416dbf74ea378f304..0000000000000000000000000000000000000000 --- a/scripts/snakemake/workflows/partmesh.smk +++ /dev/null @@ -1,8 +0,0 @@ -from snakemake.utils import min_version -min_version("7.3") - -module partmesh: - snakefile: gitlab("bilke/snakemake-partmesh", path="workflow/Snakefile", tag="bbcdc9a721fcda7a1e9619895dce79dfc2b2c905", host="gitlab.opengeosys.org") - config: config - -use rule * from partmesh diff --git a/scripts/test/buildinfo.in.yaml b/scripts/test/buildinfo.in.yaml deleted file mode 100644 index 04322b42cd0d7e1beb46df9e8c3a2640b9ec40ce..0000000000000000000000000000000000000000 --- a/scripts/test/buildinfo.in.yaml +++ /dev/null @@ -1,5 +0,0 @@ -SOURCE_DIR: "@PROJECT_SOURCE_DIR@" -BUILD_DIR: "@PROJECT_BINARY_DIR@" -BIN_DIR: "@PROJECT_BINARY_DIR@/bin" -Data_SOURCE_DIR: "@PROJECT_SOURCE_DIR@/Tests/Data" -Data_BINARY_DIR: "@PROJECT_BINARY_DIR@/Tests/Data" diff --git a/web/content/docs/devguide/testing/workflow-testing/index.md b/web/content/docs/devguide/testing/workflow-testing/index.md deleted file mode 100644 index ac6d8798973e9f78916d2aa53f2500ee559d7a79..0000000000000000000000000000000000000000 --- a/web/content/docs/devguide/testing/workflow-testing/index.md +++ /dev/null @@ -1,53 +0,0 @@ -+++ -date = "2021-03-05T10:49" -title = "Workflow testing" -author = "Lars Bilke" -weight = 1024 - -[menu] - [menu.devguide] - parent = "testing" -+++ - -## Introduction - -We use the workflow manager [Snakemake](https://snakemake.readthedocs.io) to test workflows which consist of the execution of several steps which are based on each other. - -## Requirements - -- [Snakemake](https://snakemake.readthedocs.io/en/stable/getting_started/installation.html) >= {{< dataFile "versions.minimum_version.snakemake" >}} - - If you use `OGS_USE_PIP=ON` then `snakemake` is installed in your virtual environment in your build-directory automatically. You can then call it via `.venv/bin/snakemake ...` (inside your build directory). -- On Windows only: - - The `tee`-utility in the `PATH` (can be installed from <https://sourceforge.net/projects/unxutils>) - -## Examples - -- [ExtractBoundary.smk](https://gitlab.opengeosys.org/ogs/ogs/-/blob/master/Applications/Utils/ExtractBoundary.smk) -- [VoxelGridFromLayers.smk](https://gitlab.opengeosys.org/ogs/ogs/-/blob/master/Applications/Utils/VoxelGridFromLayers.smk) - -These example workflows [are added to CTest](https://gitlab.opengeosys.org/ogs/ogs/-/blob/540d0b454c9e3805a81f7c4a1b6ee7565be6845c/Applications/Utils/Tests.cmake#L302-315) as well: - -```cmake -if(SNAKEMAKE AND NOT OGS_USE_MPI) - add_test(NAME snakemake_ExtractBoundary - COMMAND ${SNAKEMAKE} -j 1 - --configfile ${PROJECT_BINARY_DIR}/buildinfo.yaml - -s ${CMAKE_CURRENT_SOURCE_DIR}/ExtractBoundary.smk - ) - add_test(NAME snakemake_VoxelGridFromLayers - # ... - ) - add_dependencies(ctest ExtractBoundary Layers2Grid AddFaultToVoxelGrid) -endif() -``` - -## Modularization - -We started on implementing modular rule definitions and tool wrapper in [`scripts/snakemake`](https://gitlab.opengeosys.org/ogs/ogs/-/tree/master/scripts/snakemake). - -## Links - -- [Snakemake Documentation](https://snakemake.readthedocs.io) -- [Short tutorial](https://snakemake.readthedocs.io/en/stable/tutorial/short.html) -- [Software Carpentry Workshop](https://carpentries-incubator.github.io/workflows-snakemake/index.html) -- [HPC Carpentry Workshop with Snakemake](http://www.hpc-carpentry.org/hpc-python/) diff --git a/web/data/versions.json b/web/data/versions.json index 0e7e9b31a06a80efcd9b7e4b5922aa21f3a99ee8..e057bbe7d1707f7d9dad75dc5d3e5e3ed879a989 100644 --- a/web/data/versions.json +++ b/web/data/versions.json @@ -19,7 +19,6 @@ "petsc": "3.18.6", "qt": "5.14.2", "python": "3.9", - "snakemake": "8.2.4", "hdf5": "1.10.7", "libxml2": "2.9.12", "tfel-rliv": "4.0", @@ -45,7 +44,6 @@ "python": { "jupyter_image": { "conda_packages": [ - "snakemake-minimal", "pyvista==0.34.2", "ipyvtklink", "pythreejs"