From cd175377cab181ee34b042bbbe18c68a70b2c8ed Mon Sep 17 00:00:00 2001 From: mschouler Date: Sat, 27 May 2023 00:26:29 +0200 Subject: [PATCH] Update melissa build (#37609) * Remove deprecated package * Add up-to-date melissa builds * Remove blank lines and FIXME comments * Use directive syntax for maintainers and remove unnecessary comments * Remove unused function * Deprecate former melissa recipe * Change melissa python package name * Update setuptools and rapidjson dependencies versions * Fix mypy error * Restore rapidjson version * Variant simplification * Make variants lower case * Deprecate former omitted version * Make torch version consistent with requirement file * Fix variants definition * Fix style error --------- Co-authored-by: Marc Schouler --- .../builtin/packages/melissa-api/package.py | 27 +++++++++++ .../repos/builtin/packages/melissa/package.py | 10 ++-- .../packages/py-melissa-core/package.py | 47 +++++++++++++++++++ 3 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 var/spack/repos/builtin/packages/melissa-api/package.py create mode 100644 var/spack/repos/builtin/packages/py-melissa-core/package.py diff --git a/var/spack/repos/builtin/packages/melissa-api/package.py b/var/spack/repos/builtin/packages/melissa-api/package.py new file mode 100644 index 0000000000..ade8c016f8 --- /dev/null +++ b/var/spack/repos/builtin/packages/melissa-api/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class MelissaApi(CMakePackage): + """Melissa is a file-avoiding, adaptive, fault-tolerant and elastic + framework, to run large-scale sensitivity analysis or deep-surrogate + training on supercomputers. + This package builds the API used when instrumenting the clients. + """ + + homepage = "https://gitlab.inria.fr/melissa/melissa" + git = "https://gitlab.inria.fr/melissa/melissa.git" + maintainers("robcaulk", "mschouler", "raffino") + + version("develop", branch="develop") + + depends_on("cmake@3.7.2:", type="build") + depends_on("libzmq@4.1.5:") + depends_on("mpi") + + def setup_run_environment(self, env): + env.prepend_path("PYTHONPATH", self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/melissa/package.py b/var/spack/repos/builtin/packages/melissa/package.py index 5a4e80a035..144f0b71ba 100644 --- a/var/spack/repos/builtin/packages/melissa/package.py +++ b/var/spack/repos/builtin/packages/melissa/package.py @@ -18,9 +18,13 @@ class Melissa(CMakePackage): # attention: Git**Hub**.com accounts maintainers("christoph-conrads", "raffino") - version("master", branch="master") - version("develop", branch="develop") - version("0.7.1", sha256="c30584f15fecf6297712a88e4d28851bfd992f31209fd7bb8af2feebe73d539d") + version("master", branch="master", deprecated=True) + version("develop", branch="develop", deprecated=True) + version( + "0.7.1", + sha256="c30584f15fecf6297712a88e4d28851bfd992f31209fd7bb8af2feebe73d539d", + deprecated=True, + ) version( "0.7.0", sha256="a801d0b512e31a0750f98cfca80f8338985e06abf9b26e96f7645a022864e41c", diff --git a/var/spack/repos/builtin/packages/py-melissa-core/package.py b/var/spack/repos/builtin/packages/py-melissa-core/package.py new file mode 100644 index 0000000000..fb2eab70ff --- /dev/null +++ b/var/spack/repos/builtin/packages/py-melissa-core/package.py @@ -0,0 +1,47 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyMelissaCore(PythonPackage): + """Melissa is a file-avoiding, adaptive, fault-tolerant and elastic + framework, to run large-scale sensitivity analysis or deep-surrogate + training on supercomputers. + This package builds the launcher and server modules. + """ + + homepage = "https://gitlab.inria.fr/melissa/melissa" + git = "https://gitlab.inria.fr/melissa/melissa.git" + maintainers("robcaulk", "mschouler", "raffino") + + version("develop", branch="develop") + + # define variants for the deep learning server (torch, tf) + variant( + "torch", default=False, description="Install Deep Learning requirements with Pytorch only" + ) + variant( + "tf", default=False, description="Install Deep Learning requirements with TensorFlow only" + ) + + depends_on("python@3.8.0:", type=("build", "run")) + depends_on("py-setuptools@46.4:", type=("build")) + # requirements.txt (SA) + depends_on("py-pyzmq@22.3.0:", type="run") + depends_on("py-mpi4py@3.1.3:", type="run") + depends_on("py-numpy@1.21:", type="run") + depends_on("py-jsonschema@4.5:", type="run") + depends_on("py-python-rapidjson@1.8:", type="run") + depends_on("py-scipy@1.10.0:", type="run") + depends_on("py-cloudpickle@2.2.0:", type="run") + # requirements_deep_learning.txt (DL with torch) + depends_on("py-tensorboard@2.10.0:", type="run", when="+torch") + depends_on("py-matplotlib", type="run", when="+torch") + depends_on("py-torch@1.12.1:", type="run", when="+torch") + # requirements_deep_learning.txt (DL with tensorflow) + depends_on("py-tensorboard@2.10.0:", type="run", when="+tf") + depends_on("py-matplotlib", type="run", when="+tf") + depends_on("py-tensorflow@2.8.0:", type="run", when="+tf")