From 361632fc4be915651fe5751bf499c069b3ca168c Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 8 Aug 2023 09:29:49 -0500 Subject: Ensure that all variants have a description (#39025) * Ensure that all variants have a description * Update mock packages too * Fix test invocations * Black fix * mgard: update variant descriptions * flake8 fix * black fix * Add to audit tests * Relax type hints * Older Python support * Undo all changes to mock packages * Flake8 fix --- lib/spack/spack/audit.py | 15 ++++++ lib/spack/spack/directives.py | 56 ++++++++++------------ .../builtin/packages/armcomputelibrary/package.py | 4 +- .../repos/builtin/packages/autodiff/package.py | 8 +--- .../repos/builtin/packages/berkeley-db/package.py | 2 +- var/spack/repos/builtin/packages/coral/package.py | 2 +- var/spack/repos/builtin/packages/davix/package.py | 2 +- .../repos/builtin/packages/e3sm-scorpio/package.py | 4 +- .../repos/builtin/packages/freesasa/package.py | 6 +-- var/spack/repos/builtin/packages/ftk/package.py | 16 +++---- var/spack/repos/builtin/packages/g2c/package.py | 6 +-- .../repos/builtin/packages/generax/package.py | 2 +- var/spack/repos/builtin/packages/gptl/package.py | 8 ++-- .../repos/builtin/packages/gpu-burn/package.py | 2 +- .../repos/builtin/packages/gsl-lite/package.py | 28 ++++++++--- .../repos/builtin/packages/gtkplus/package.py | 2 +- .../repos/builtin/packages/hipblas/package.py | 1 + var/spack/repos/builtin/packages/hipcub/package.py | 1 + var/spack/repos/builtin/packages/hipfft/package.py | 1 + .../repos/builtin/packages/hiprand/package.py | 1 + .../repos/builtin/packages/hipsolver/package.py | 1 + .../repos/builtin/packages/hipsparse/package.py | 1 + .../builtin/packages/kokkos-kernels/package.py | 39 ++++++++++++--- var/spack/repos/builtin/packages/kokkos/package.py | 2 +- var/spack/repos/builtin/packages/legion/package.py | 2 +- .../repos/builtin/packages/libssh2/package.py | 7 ++- .../repos/builtin/packages/libxcrypt/package.py | 7 ++- .../repos/builtin/packages/libyogrt/package.py | 2 +- var/spack/repos/builtin/packages/mgard/package.py | 18 +++++-- .../builtin/packages/miopen-tensile/package.py | 8 +++- .../repos/builtin/packages/nimrod-aai/package.py | 26 ++++++---- .../repos/builtin/packages/nlcglib/package.py | 4 +- var/spack/repos/builtin/packages/octave/package.py | 44 ++++++++--------- .../repos/builtin/packages/py-hist/package.py | 2 +- .../builtin/packages/py-openpmd-viewer/package.py | 8 +++- var/spack/repos/builtin/packages/rccl/package.py | 7 ++- .../repos/builtin/packages/rocalution/package.py | 7 ++- .../repos/builtin/packages/rocblas/package.py | 7 ++- var/spack/repos/builtin/packages/rocfft/package.py | 12 ++++- .../repos/builtin/packages/rocm-tensile/package.py | 8 +++- .../repos/builtin/packages/rocprim/package.py | 7 ++- .../repos/builtin/packages/rocrand/package.py | 7 ++- .../repos/builtin/packages/rocsolver/package.py | 7 ++- .../repos/builtin/packages/rocsparse/package.py | 7 ++- .../repos/builtin/packages/rocthrust/package.py | 7 ++- .../repos/builtin/packages/rocwmma/package.py | 7 ++- var/spack/repos/builtin/packages/root/package.py | 2 +- .../repos/builtin/packages/semiprof/package.py | 6 +-- var/spack/repos/builtin/packages/spglib/package.py | 2 +- var/spack/repos/builtin/packages/tandem/package.py | 18 +++++-- .../repos/builtin/packages/tiled-mm/package.py | 6 +-- .../repos/builtin/packages/tmalign/package.py | 2 +- .../repos/builtin/packages/tmscore/package.py | 2 +- .../repos/builtin/packages/trilinos/package.py | 4 +- var/spack/repos/builtin/packages/ucx/package.py | 1 + .../repos/builtin/packages/unifyfs/package.py | 14 +++--- var/spack/repos/builtin/packages/upp/package.py | 8 ++-- .../repos/builtin/packages/usalign/package.py | 2 +- .../repos/builtin/packages/win-sdk/package.py | 4 +- .../repos/builtin/packages/win-wdk/package.py | 4 +- var/spack/repos/builtin/packages/wps/package.py | 1 + var/spack/repos/builtin/packages/wrf/package.py | 9 +++- var/spack/repos/builtin/packages/xyce/package.py | 2 +- 63 files changed, 341 insertions(+), 167 deletions(-) diff --git a/lib/spack/spack/audit.py b/lib/spack/spack/audit.py index e59ffaae55..2222ac9c88 100644 --- a/lib/spack/spack/audit.py +++ b/lib/spack/spack/audit.py @@ -709,6 +709,21 @@ def _ensure_variant_defaults_are_parsable(pkgs, error_cls): return errors +@package_directives +def _ensure_variants_have_descriptions(pkgs, error_cls): + """Ensures that all variants have a description.""" + errors = [] + for pkg_name in pkgs: + pkg_cls = spack.repo.path.get_pkg_class(pkg_name) + for variant_name, entry in pkg_cls.variants.items(): + variant, _ = entry + if not variant.description: + error_msg = "Variant '{}' in package '{}' is missing a description" + errors.append(error_cls(error_msg.format(variant_name, pkg_name), [])) + + return errors + + @package_directives def _version_constraints_are_satisfiable_by_some_version_in_repo(pkgs, error_cls): """Report if version constraints used in directives are not satisfiable""" diff --git a/lib/spack/spack/directives.py b/lib/spack/spack/directives.py index b997a190c8..e1bb4d73e3 100644 --- a/lib/spack/spack/directives.py +++ b/lib/spack/spack/directives.py @@ -33,7 +33,7 @@ import collections.abc import functools import os.path import re -from typing import List, Optional, Set, Union +from typing import Any, Callable, List, Optional, Set, Tuple, Union import llnl.util.lang import llnl.util.tty.color @@ -663,39 +663,35 @@ def patch(url_or_filename, level=1, when=None, working_dir=".", **kwargs): @directive("variants") def variant( - name, - default=None, - description="", - values=None, - multi=None, - validator=None, - when=None, - sticky=False, + name: str, + default: Optional[Any] = None, + description: str = "", + values: Optional[Union[collections.abc.Sequence, Callable[[Any], bool]]] = None, + multi: Optional[bool] = None, + validator: Optional[Callable[[str, str, Tuple[Any, ...]], None]] = None, + when: Optional[Union[str, bool]] = None, + sticky: bool = False, ): - """Define a variant for the package. Packager can specify a default - value as well as a text description. + """Define a variant for the package. + + Packager can specify a default value as well as a text description. Args: - name (str): name of the variant - default (str or bool): default value for the variant, if not - specified otherwise the default will be False for a boolean - variant and 'nothing' for a multi-valued variant - description (str): description of the purpose of the variant - values (tuple or typing.Callable): either a tuple of strings containing the - allowed values, or a callable accepting one value and returning - True if it is valid - multi (bool): if False only one value per spec is allowed for - this variant - validator (typing.Callable): optional group validator to enforce additional - logic. It receives the package name, the variant name and a tuple - of values and should raise an instance of SpackError if the group - doesn't meet the additional constraints - when (spack.spec.Spec, bool): optional condition on which the - variant applies - sticky (bool): the variant should not be changed by the concretizer to - find a valid concrete spec. + name: Name of the variant + default: Default value for the variant, if not specified otherwise the default will be + False for a boolean variant and 'nothing' for a multi-valued variant + description: Description of the purpose of the variant + values: Either a tuple of strings containing the allowed values, or a callable accepting + one value and returning True if it is valid + multi: If False only one value per spec is allowed for this variant + validator: Optional group validator to enforce additional logic. It receives the package + name, the variant name and a tuple of values and should raise an instance of SpackError + if the group doesn't meet the additional constraints + when: Optional condition on which the variant applies + sticky: The variant should not be changed by the concretizer to find a valid concrete spec + Raises: - DirectiveError: if arguments passed to the directive are invalid + DirectiveError: If arguments passed to the directive are invalid """ def format_error(msg, pkg): diff --git a/var/spack/repos/builtin/packages/armcomputelibrary/package.py b/var/spack/repos/builtin/packages/armcomputelibrary/package.py index f7af790e07..991e430ef6 100644 --- a/var/spack/repos/builtin/packages/armcomputelibrary/package.py +++ b/var/spack/repos/builtin/packages/armcomputelibrary/package.py @@ -42,12 +42,12 @@ class Armcomputelibrary(SConsPackage): phases = ["build"] - variant("build_type", default="release", values=("release", "debug")) + variant("build_type", default="release", values=("release", "debug"), description="Build type") variant( "threads", default="cppthreads", values=("cppthreads", "openmp"), - description="Enable C++11 threads/OpenMP backend. OpenMP backend only" + description="Enable C++11 threads/OpenMP backend. OpenMP backend only " "works when building with g++ and not clang++.", ) variant( diff --git a/var/spack/repos/builtin/packages/autodiff/package.py b/var/spack/repos/builtin/packages/autodiff/package.py index 693fb5640e..ec4c09bad5 100644 --- a/var/spack/repos/builtin/packages/autodiff/package.py +++ b/var/spack/repos/builtin/packages/autodiff/package.py @@ -29,12 +29,8 @@ class Autodiff(CMakePackage): version("0.6.4", sha256="cfe0bb7c0de10979caff9d9bfdad7e6267faea2b8d875027397486b47a7edd75") version("0.5.13", sha256="a73dc571bcaad6b44f74865fed51af375f5a877db44321b5568d94a4358b77a1") - variant( - "python", default="False", description="Enable the compilation of the python bindings." - ) - variant( - "examples", default="False", description="Enable the compilation of the example files." - ) + variant("python", default=False, description="Enable the compilation of the python bindings.") + variant("examples", default=False, description="Enable the compilation of the example files.") depends_on("cmake@3.0:", type="build") depends_on("cmake@3.22:", when="@0.6.8", type="build") diff --git a/var/spack/repos/builtin/packages/berkeley-db/package.py b/var/spack/repos/builtin/packages/berkeley-db/package.py index ed5337b64f..1f14d0ef2a 100644 --- a/var/spack/repos/builtin/packages/berkeley-db/package.py +++ b/var/spack/repos/builtin/packages/berkeley-db/package.py @@ -32,7 +32,7 @@ class BerkeleyDb(AutotoolsPackage): ) version("5.3.28", sha256="e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628") - variant("docs", default=False) + variant("docs", default=False, description="Build documentation") variant("cxx", default=True, description="Build with C++ API") variant("stl", default=True, description="Build with C++ STL API") diff --git a/var/spack/repos/builtin/packages/coral/package.py b/var/spack/repos/builtin/packages/coral/package.py index 5708e9d598..3642120846 100644 --- a/var/spack/repos/builtin/packages/coral/package.py +++ b/var/spack/repos/builtin/packages/coral/package.py @@ -18,7 +18,7 @@ class Coral(CMakePackage): version("3.3.10", tag="CORAL_3_3_10") version("3.3.3", tag="CORAL_3_3_3") - variant("binary_tag", default="auto") + variant("binary_tag", default="auto", description="Build type") depends_on("ninja") depends_on("ccache") diff --git a/var/spack/repos/builtin/packages/davix/package.py b/var/spack/repos/builtin/packages/davix/package.py index 3f351c65b0..ea0eb7eb35 100644 --- a/var/spack/repos/builtin/packages/davix/package.py +++ b/var/spack/repos/builtin/packages/davix/package.py @@ -35,7 +35,7 @@ class Davix(CMakePackage): depends_on("uuid") depends_on("openssl") - variant("thirdparty", default=False) + variant("thirdparty", default=False, description="Build vendored libraries") depends_on("gsoap", when="+thirdparty") def cmake_args(self): diff --git a/var/spack/repos/builtin/packages/e3sm-scorpio/package.py b/var/spack/repos/builtin/packages/e3sm-scorpio/package.py index 32375cfd4a..c9958c35bd 100644 --- a/var/spack/repos/builtin/packages/e3sm-scorpio/package.py +++ b/var/spack/repos/builtin/packages/e3sm-scorpio/package.py @@ -16,8 +16,8 @@ class E3smScorpio(CMakePackage): version("1.4.1", sha256="7cb4589410080d7e547ef17ddabe68f749e6af019c1d0e6ee9f11554f3ff6b1a") - variant("timing", default="False", description="Enable timing") - variant("mpi", default="True", description="Enable MPI") + variant("timing", default=False, description="Enable timing") + variant("mpi", default=True, description="Enable MPI") depends_on("gptl", when="+timing") depends_on("mpi", when="+mpi") diff --git a/var/spack/repos/builtin/packages/freesasa/package.py b/var/spack/repos/builtin/packages/freesasa/package.py index 387c44cc43..201fbd5965 100644 --- a/var/spack/repos/builtin/packages/freesasa/package.py +++ b/var/spack/repos/builtin/packages/freesasa/package.py @@ -16,9 +16,9 @@ class Freesasa(AutotoolsPackage): version("2.1.2", sha256="a031c4eb8cd59e802d715a37ef72930ec2d90ec53dfcf1bea0b0255980490fd5") - variant("json", default=True) - variant("xml", default=True) - variant("threads", default=True) + variant("json", default=True, description="Build with support for JSON output") + variant("xml", default=True, description="Build with support for XML output") + variant("threads", default=True, description="Build with support for multiple threads") depends_on("autoconf", type="build") depends_on("automake", type="build") diff --git a/var/spack/repos/builtin/packages/ftk/package.py b/var/spack/repos/builtin/packages/ftk/package.py index 1f6a75793d..f3e4e0f8a8 100644 --- a/var/spack/repos/builtin/packages/ftk/package.py +++ b/var/spack/repos/builtin/packages/ftk/package.py @@ -28,14 +28,14 @@ class Ftk(CMakePackage): version("0.0.4", sha256="1674904da8d88dbd4c7d2b6a2629883f0444e70aefc99b48d285735d394897fa") # variants - variant("adios2", default=False) - variant("cuda", default=False) - variant("gmp", default=False) - variant("hdf5", default=False) - variant("metis", default=False) - variant("mpi", default=False) - variant("netcdf", default=False) - variant("vtk", default=False) + variant("adios2", default=False, description="Use ADIOS2") + variant("cuda", default=False, description="Use CUDA") + variant("gmp", default=False, description="Use GMP") + variant("hdf5", default=False, description="Use HDF5") + variant("metis", default=False, description="Use METIS") + variant("mpi", default=False, description="Use MPI") + variant("netcdf", default=False, description="Use NetCDF") + variant("vtk", default=False, description="Use VTK") # optional dependencies depends_on("adios2", when="+adios2") diff --git a/var/spack/repos/builtin/packages/g2c/package.py b/var/spack/repos/builtin/packages/g2c/package.py index 39756d2b60..b9bb3346b7 100644 --- a/var/spack/repos/builtin/packages/g2c/package.py +++ b/var/spack/repos/builtin/packages/g2c/package.py @@ -16,9 +16,9 @@ class G2c(CMakePackage): maintainers("AlexanderRichert-NOAA", "Hang-Lei-NOAA", "edwardhartnett") - variant("png", default=True) - variant("jasper", default=True) - variant("openjpeg", default=False) + variant("png", default=True, description="Use PNG library") + variant("jasper", default=True, description="Use Jasper library") + variant("openjpeg", default=False, description="Use OpenJPEG library") version("1.7.0", sha256="73afba9da382fed73ed8692d77fa037bb313280879cd4012a5e5697dccf55175") version("1.6.4", sha256="5129a772572a358296b05fbe846bd390c6a501254588c6a223623649aefacb9d") diff --git a/var/spack/repos/builtin/packages/generax/package.py b/var/spack/repos/builtin/packages/generax/package.py index 149f1f6c9c..16692d72c5 100644 --- a/var/spack/repos/builtin/packages/generax/package.py +++ b/var/spack/repos/builtin/packages/generax/package.py @@ -27,7 +27,7 @@ class Generax(CMakePackage): depends_on("bison") depends_on("flex") - variant("mpi", default=False) + variant("mpi", default=False, description="Build with MPI support") build_directory = "build" diff --git a/var/spack/repos/builtin/packages/gptl/package.py b/var/spack/repos/builtin/packages/gptl/package.py index 0775b5d2e4..828ede0b75 100644 --- a/var/spack/repos/builtin/packages/gptl/package.py +++ b/var/spack/repos/builtin/packages/gptl/package.py @@ -22,10 +22,10 @@ class Gptl(AutotoolsPackage): version("8.0.3", sha256="334979c6fe78d4ed1b491ec57fb61df7a910c58fd39a3658d03ad89f077a4db6") version("8.0.2", sha256="011f153084ebfb52b6bf8f190835d4bae6f6b5c0ad320331356aa47a547bf2b4") - variant("pmpi", default=False) - variant("papi", default=False) - variant("nestedomp", default=False) - variant("disable-unwind", default=False) + variant("pmpi", default=False, description="Build with PMPI support to auto-profile MPI calls") + variant("papi", default=False, description="Enable built-in support for papi library") + variant("nestedomp", default=False, description="Build with nested OMP capability") + variant("disable-unwind", default=False, description="Skip check for libunwind") depends_on("mpi") diff --git a/var/spack/repos/builtin/packages/gpu-burn/package.py b/var/spack/repos/builtin/packages/gpu-burn/package.py index cf8ed39914..d8dc12f7ce 100644 --- a/var/spack/repos/builtin/packages/gpu-burn/package.py +++ b/var/spack/repos/builtin/packages/gpu-burn/package.py @@ -21,7 +21,7 @@ class GpuBurn(MakefilePackage, CudaPackage): # This package uses CudaPackage to pick up the cuda_arch variant. A side # effect is that it also picks up the cuda variant, but cuda is required # for gpu-burn so is not really a variant. - variant("cuda", "True", description="Use CUDA; must be true") + variant("cuda", default=True, description="Use CUDA; must be true") conflicts("~cuda", msg="gpu-burn requires cuda") conflicts("cuda_arch=none", msg="must select a CUDA architecture") diff --git a/var/spack/repos/builtin/packages/gsl-lite/package.py b/var/spack/repos/builtin/packages/gsl-lite/package.py index 7fb15c7909..228150c225 100644 --- a/var/spack/repos/builtin/packages/gsl-lite/package.py +++ b/var/spack/repos/builtin/packages/gsl-lite/package.py @@ -26,13 +26,27 @@ class GslLite(CMakePackage): version("0.36.0", sha256="c052cc4547b33cedee6f000393a7005915c45c6c06b35518d203db117f75c71c") version("0.34.0", sha256="a7d5b2672b78704ca03df9ef65bc274d8f8cacad3ca950365eef9e25b50324c5") - variant("tests", default=False) - variant("cuda_tests", default=False) - variant("examples", default=False) - variant("static_analysis_demos", default=False) - variant("cmake_export_package_registry", default=False) - variant("compat_header", default=False) - variant("legacy_headers", default=False) + variant("tests", default=False, description="Build and perform gsl-lite tests") + variant("cuda_tests", default=False, description="Build and perform gsl-lite CUDA tests") + variant("examples", default=False, description="Build gsl-lite examples") + variant( + "static_analysis_demos", + default=False, + description="Build and perform gsl-lite static analysis demos", + ) + variant( + "cmake_export_package_registry", + default=False, + description="Export build directory to CMake user package registry", + ) + variant( + "compat_header", default=False, description="Install MS-GSL compatibility header " + ) + variant( + "legacy_headers", + default=False, + description="Install legacy headers , , ", + ) def cmake_args(self): args = [ diff --git a/var/spack/repos/builtin/packages/gtkplus/package.py b/var/spack/repos/builtin/packages/gtkplus/package.py index 63a55f52e0..52aa981d3c 100644 --- a/var/spack/repos/builtin/packages/gtkplus/package.py +++ b/var/spack/repos/builtin/packages/gtkplus/package.py @@ -36,7 +36,7 @@ class Gtkplus(MesonPackage): deprecated=True, ) - variant("cups", default="False", description="enable cups support") + variant("cups", default=False, description="enable cups support") # See meson.build for version requirements depends_on("meson@0.48.0:", when="@3.24:", type="build") diff --git a/var/spack/repos/builtin/packages/hipblas/package.py b/var/spack/repos/builtin/packages/hipblas/package.py index 372a5adee8..08998400ee 100644 --- a/var/spack/repos/builtin/packages/hipblas/package.py +++ b/var/spack/repos/builtin/packages/hipblas/package.py @@ -108,6 +108,7 @@ class Hipblas(CMakePackage, CudaPackage, ROCmPackage): amdgpu_targets = ROCmPackage.amdgpu_targets variant( "amdgpu_target", + description="AMD GPU architecture", values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets) .with_default("auto") .with_error( diff --git a/var/spack/repos/builtin/packages/hipcub/package.py b/var/spack/repos/builtin/packages/hipcub/package.py index 12b1300674..94e6055705 100644 --- a/var/spack/repos/builtin/packages/hipcub/package.py +++ b/var/spack/repos/builtin/packages/hipcub/package.py @@ -102,6 +102,7 @@ class Hipcub(CMakePackage, CudaPackage, ROCmPackage): amdgpu_targets = ROCmPackage.amdgpu_targets variant( "amdgpu_target", + description="AMD GPU architecture", values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets) .with_default("auto") .with_error( diff --git a/var/spack/repos/builtin/packages/hipfft/package.py b/var/spack/repos/builtin/packages/hipfft/package.py index 01496e5268..92e3db29cd 100644 --- a/var/spack/repos/builtin/packages/hipfft/package.py +++ b/var/spack/repos/builtin/packages/hipfft/package.py @@ -79,6 +79,7 @@ class Hipfft(CMakePackage, CudaPackage, ROCmPackage): amdgpu_targets = ROCmPackage.amdgpu_targets variant( "amdgpu_target", + description="AMD GPU architecture", values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets) .with_default("auto") .with_error( diff --git a/var/spack/repos/builtin/packages/hiprand/package.py b/var/spack/repos/builtin/packages/hiprand/package.py index 061c6227af..f55092df19 100644 --- a/var/spack/repos/builtin/packages/hiprand/package.py +++ b/var/spack/repos/builtin/packages/hiprand/package.py @@ -38,6 +38,7 @@ class Hiprand(CMakePackage, CudaPackage, ROCmPackage): amdgpu_targets = ROCmPackage.amdgpu_targets variant( "amdgpu_target", + description="AMD GPU architecture", values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets) .with_default("auto") .with_error( diff --git a/var/spack/repos/builtin/packages/hipsolver/package.py b/var/spack/repos/builtin/packages/hipsolver/package.py index 992744ea5a..c1ca0db616 100644 --- a/var/spack/repos/builtin/packages/hipsolver/package.py +++ b/var/spack/repos/builtin/packages/hipsolver/package.py @@ -63,6 +63,7 @@ class Hipsolver(CMakePackage, CudaPackage, ROCmPackage): amdgpu_targets = ROCmPackage.amdgpu_targets variant( "amdgpu_target", + description="AMD GPU architecture", values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets) .with_default("auto") .with_error( diff --git a/var/spack/repos/builtin/packages/hipsparse/package.py b/var/spack/repos/builtin/packages/hipsparse/package.py index a78a0db369..f698d783bc 100644 --- a/var/spack/repos/builtin/packages/hipsparse/package.py +++ b/var/spack/repos/builtin/packages/hipsparse/package.py @@ -105,6 +105,7 @@ class Hipsparse(CMakePackage, CudaPackage, ROCmPackage): amdgpu_targets = ROCmPackage.amdgpu_targets variant( "amdgpu_target", + description="AMD GPU architecture", values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets) .with_default("auto") .with_error( diff --git a/var/spack/repos/builtin/packages/kokkos-kernels/package.py b/var/spack/repos/builtin/packages/kokkos-kernels/package.py index 404ea0520d..9f1cb88c4d 100644 --- a/var/spack/repos/builtin/packages/kokkos-kernels/package.py +++ b/var/spack/repos/builtin/packages/kokkos-kernels/package.py @@ -70,12 +70,37 @@ class KokkosKernels(CMakePackage, CudaPackage): depends_on("kokkos+%s" % backend.lower(), when="+%s" % backend.lower()) space_etis = { - "execspace_cuda": ("auto", "", "cuda"), - "execspace_openmp": ("auto", "", "openmp"), - "execspace_threads": ("auto", "", "threads"), - "execspace_serial": ("auto", "", "serial"), - "memspace_cudauvmspace": ("auto", "", "cuda"), - "memspace_cudaspace": ("auto", "", "cuda"), + "execspace_cuda": ( + "auto", + "Whether to pre instantiate kernels for the execution space Kokkos::Cuda", + "cuda", + ), + "execspace_openmp": ( + "auto", + "Whether to pre instantiate kernels for the execution space " + "Kokkos::Experimental::OpenMPTarget", + "openmp", + ), + "execspace_threads": ( + "auto", + "Whether to build kernels for the execution space Kokkos::Threads", + "threads", + ), + "execspace_serial": ( + "auto", + "Whether to build kernels for the execution space Kokkos::Serial", + "serial", + ), + "memspace_cudauvmspace": ( + "auto", + "Whether to pre instantiate kernels for the memory space Kokkos::CudaUVMSpace", + "cuda", + ), + "memspace_cudaspace": ( + "auto", + "Whether to pre instantiate kernels for the memory space Kokkos::CudaSpace", + "cuda", + ), } for eti in space_etis: deflt, descr, backend_required = space_etis[eti] @@ -97,7 +122,7 @@ class KokkosKernels(CMakePackage, CudaPackage): } for eti in numeric_etis: deflt, cmake_name, vals = numeric_etis[eti] - variant(eti, default=deflt, values=vals, multi=True) + variant(eti, default=deflt, description=eti, values=vals, multi=True) tpls = { # variant name #deflt #spack name #root var name #docstring diff --git a/var/spack/repos/builtin/packages/kokkos/package.py b/var/spack/repos/builtin/packages/kokkos/package.py index 1a92e369a4..5124e236b4 100644 --- a/var/spack/repos/builtin/packages/kokkos/package.py +++ b/var/spack/repos/builtin/packages/kokkos/package.py @@ -202,7 +202,7 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): stds = ["11", "14", "17", "20"] # TODO: This should be named cxxstd for consistency with other packages - variant("std", default="17", values=stds, multi=False) + variant("std", default="17", values=stds, multi=False, description="C++ standard") variant("pic", default=False, description="Build position independent code") conflicts("std=11", when="@3.7:") diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py index a06af2ce7a..51bf247ce3 100644 --- a/var/spack/repos/builtin/packages/legion/package.py +++ b/var/spack/repos/builtin/packages/legion/package.py @@ -112,7 +112,7 @@ class Legion(CMakePackage, ROCmPackage): # current development policy is C++11 or greater so we capture that aspect # here. cpp_stds = ["11", "14", "17", "20"] - variant("cxxstd", default="11", values=cpp_stds, multi=False) + variant("cxxstd", default="11", description="C++ standard", values=cpp_stds, multi=False) # Network transport layer: the underlying data transport API should be used for # distributed data movement. For Legion, gasnet is the currently the most diff --git a/var/spack/repos/builtin/packages/libssh2/package.py b/var/spack/repos/builtin/packages/libssh2/package.py index 49619345e6..512087a1c7 100644 --- a/var/spack/repos/builtin/packages/libssh2/package.py +++ b/var/spack/repos/builtin/packages/libssh2/package.py @@ -23,7 +23,12 @@ class Libssh2(AutotoolsPackage, CMakePackage): build_system("autotools", "cmake", default="autotools") - variant("crypto", default="openssl", values=("openssl", conditional("mbedtls", when="@1.8:"))) + variant( + "crypto", + default="openssl", + description="The backend to use for cryptography", + values=("openssl", conditional("mbedtls", when="@1.8:")), + ) variant("shared", default=True, description="Build shared libraries") with when("build_system=cmake"): diff --git a/var/spack/repos/builtin/packages/libxcrypt/package.py b/var/spack/repos/builtin/packages/libxcrypt/package.py index dd85dcd9b0..428720add3 100644 --- a/var/spack/repos/builtin/packages/libxcrypt/package.py +++ b/var/spack/repos/builtin/packages/libxcrypt/package.py @@ -30,7 +30,12 @@ class Libxcrypt(AutotoolsPackage): version("4.4.16", sha256="a98f65b8baffa2b5ba68ee53c10c0a328166ef4116bce3baece190c8ce01f375") version("4.4.15", sha256="8bcdef03bc65f9dbda742e56820435b6f13eea59fb903765141c6467f4655e5a") - variant("obsolete_api", default=False, when="@4.4.30:") + variant( + "obsolete_api", + default=False, + description="Enable all compatibility interfaces", + when="@4.4.30:", + ) patch("truncating-conversion.patch", when="@4.4.30") diff --git a/var/spack/repos/builtin/packages/libyogrt/package.py b/var/spack/repos/builtin/packages/libyogrt/package.py index 79d164e326..7a5c3905de 100644 --- a/var/spack/repos/builtin/packages/libyogrt/package.py +++ b/var/spack/repos/builtin/packages/libyogrt/package.py @@ -51,7 +51,7 @@ class Libyogrt(AutotoolsPackage): conflicts("scheduler=lsf", when="@:1.22") - variant("static", default="False", description="build static library") + variant("static", default=False, description="build static library") def url_for_version(self, version): if version < Version("1.21"): diff --git a/var/spack/repos/builtin/packages/mgard/package.py b/var/spack/repos/builtin/packages/mgard/package.py index a73129d97d..0064fda35a 100644 --- a/var/spack/repos/builtin/packages/mgard/package.py +++ b/var/spack/repos/builtin/packages/mgard/package.py @@ -26,10 +26,20 @@ class Mgard(CMakePackage, CudaPackage): version("2021-11-12", commit="3c05c80a45a51bb6cc5fb5fffe7b1b16787d3366") version("2020-10-01", commit="b67a0ac963587f190e106cc3c0b30773a9455f7a") - variant("serial", when="@2022-11-18:", default=True) - variant("openmp", when="@2022-11-18:", default=True) - variant("timing", when="@2022-11-18:", default=False) - variant("unstructured", when="@2022-11-18:", default=False) + variant( + "serial", + when="@2022-11-18:", + default=True, + description="Enable the classic non-parallel implmementation", + ) + variant("openmp", when="@2022-11-18:", default=True, description="Enable OpenMP support") + variant("timing", when="@2022-11-18:", default=False, description="Enable profile timings") + variant( + "unstructured", + when="@2022-11-18:", + default=False, + description="Enable experimental unstructured mesh support", + ) depends_on("python", type=("build",), when="@2022-11-18:") depends_on("sed", type=("build",), when="@2022-11-18:") diff --git a/var/spack/repos/builtin/packages/miopen-tensile/package.py b/var/spack/repos/builtin/packages/miopen-tensile/package.py index 9ffbfcad0d..eb55997210 100644 --- a/var/spack/repos/builtin/packages/miopen-tensile/package.py +++ b/var/spack/repos/builtin/packages/miopen-tensile/package.py @@ -44,7 +44,13 @@ class MiopenTensile(CMakePackage): tensile_architecture = ("all", "gfx906", "gfx908", "gfx803", "gfx900") - variant("tensile_architecture", default="all", values=tensile_architecture, multi=True) + variant( + "tensile_architecture", + default="all", + description="AMD GPU architecture", + values=tensile_architecture, + multi=True, + ) variant( "build_type", default="Release", diff --git a/var/spack/repos/builtin/packages/nimrod-aai/package.py b/var/spack/repos/builtin/packages/nimrod-aai/package.py index 862a07b496..90bdd0832a 100644 --- a/var/spack/repos/builtin/packages/nimrod-aai/package.py +++ b/var/spack/repos/builtin/packages/nimrod-aai/package.py @@ -23,16 +23,22 @@ class NimrodAai(CMakePackage): version("main", branch="main") version("23.6", sha256="1794b89a5a64ff2b3c548818b90d17eef85d819ba4f63a76c41a682d5b76c14f") - variant("debug", default=False) - variant("openacc", default=False) - variant("openacc_autocompare", default=False) - variant("enable_shared", default=True) - variant("mpi", default=False) - variant("time_level1", default=False) - variant("time_level2", default=False) - variant("nvtx_profile", default=False) - variant("openacc_cc", default="native") - variant("trap_fp_exceptions", default=False) + variant("debug", default=False, description="Whether to enable debug code") + variant("openacc", default=False, description="Whether to enable OpenACC") + variant( + "openacc_autocompare", default=False, description="Whether to enable OpenACC autocompare" + ) + variant("enable_shared", default=True, description="Whether to build and use shared libraries") + variant("mpi", default=False, description="Whether to enable MPI") + variant("time_level1", default=False, description="Whether to add timings at level 1") + variant("time_level2", default=False, description="Whether to add timings at level 2") + variant("nvtx_profile", default=False, description="Whether to enable NVTX profiling") + variant("openacc_cc", default="native", description="OpenACC compute capability") + variant( + "trap_fp_exceptions", + default=False, + description="Whether to enable trapping of floating point exceptions", + ) depends_on("cmake", type="build") depends_on("hdf5+fortran", type="build") diff --git a/var/spack/repos/builtin/packages/nlcglib/package.py b/var/spack/repos/builtin/packages/nlcglib/package.py index b8869ed0ab..5d899b17ed 100644 --- a/var/spack/repos/builtin/packages/nlcglib/package.py +++ b/var/spack/repos/builtin/packages/nlcglib/package.py @@ -21,8 +21,8 @@ class Nlcglib(CMakePackage, CudaPackage, ROCmPackage): version("1.0b", sha256="086c46f06a117f267cbdf1df4ad42a8512689a9610885763f463469fb15e82dc") version("0.9", sha256="8d5bc6b85ee714fb3d6480f767e7f43e5e7d569116cf60e48f533a7f50a37a08") - variant("openmp", default=True) - variant("tests", default=False) + variant("openmp", default=True, description="Use OpenMP") + variant("tests", default=False, description="Build tests") variant( "build_type", default="Release", diff --git a/var/spack/repos/builtin/packages/octave/package.py b/var/spack/repos/builtin/packages/octave/package.py index 8aa0f87ece..4d9122b9d4 100644 --- a/var/spack/repos/builtin/packages/octave/package.py +++ b/var/spack/repos/builtin/packages/octave/package.py @@ -52,28 +52,28 @@ class Octave(AutotoolsPackage, GNUMirrorPackage): patch("patch_4.2.1_inline.diff", when="@4.2.1") # Variants - variant("readline", default=True) - variant("bz2", default=True) - variant("arpack", default=False) - variant("curl", default=False) - variant("fftw", default=False) - variant("fltk", default=False) - variant("fontconfig", default=False) - variant("freetype", default=False) - variant("glpk", default=False) - variant("gl2ps", default=False) - variant("gnuplot", default=False) - variant("magick", default=False) - variant("hdf5", default=False) - variant("jdk", default=False) - variant("llvm", default=False) - variant("opengl", default=False) - variant("qhull", default=False) - variant("qrupdate", default=False) - variant("qscintilla", default=False) - variant("qt", default=False) - variant("suitesparse", default=False) - variant("zlib", default=False) + variant("readline", default=True, description="Use readline") + variant("bz2", default=True, description="Use bzip2") + variant("arpack", default=False, description="Use arpack") + variant("curl", default=False, description="Use curl") + variant("fftw", default=False, description="Use FFTW3") + variant("fltk", default=False, description="Use FLTK") + variant("fontconfig", default=False, description="Use fontconfig") + variant("freetype", default=False, description="Use freetype") + variant("glpk", default=False, description="Use GLPK") + variant("gl2ps", default=False, description="Use GL2PS") + variant("gnuplot", default=False, description="Use gnuplot") + variant("magick", default=False, description="Use magick") + variant("hdf5", default=False, description="Use HDF5") + variant("jdk", default=False, description="Use JDK") + variant("llvm", default=False, description="Use LLVM") + variant("opengl", default=False, description="Use OpenGL") + variant("qhull", default=False, description="Use qhull") + variant("qrupdate", default=False, description="Use qrupdate") + variant("qscintilla", default=False, description="Use QScintill") + variant("qt", default=False, description="Use Qt") + variant("suitesparse", default=False, description="Use SuiteSparse") + variant("zlib", default=False, description="Use zlib") # Required dependencies depends_on("blas") diff --git a/var/spack/repos/builtin/packages/py-hist/package.py b/var/spack/repos/builtin/packages/py-hist/package.py index d70dfdc7de..3e606e79db 100644 --- a/var/spack/repos/builtin/packages/py-hist/package.py +++ b/var/spack/repos/builtin/packages/py-hist/package.py @@ -15,7 +15,7 @@ class PyHist(PythonPackage): version("2.6.1", sha256="ee9034795fd2feefed923461aaccaf76f87c1f8d5414b1e704faa293ceb4fc27") version("2.5.2", sha256="0bafb8b956cc041f1b26e8f5663fb8d3b8f7673f56336facb84d8cfdc30ae2cf") - variant("plot", default="False", description="Add support for drawing histograms") + variant("plot", default=False, description="Add support for drawing histograms") depends_on("python@3.7:", type=("build", "run")) depends_on("py-setuptools@45:", type="build") diff --git a/var/spack/repos/builtin/packages/py-openpmd-viewer/package.py b/var/spack/repos/builtin/packages/py-openpmd-viewer/package.py index 481af0cebb..543509ebb1 100644 --- a/var/spack/repos/builtin/packages/py-openpmd-viewer/package.py +++ b/var/spack/repos/builtin/packages/py-openpmd-viewer/package.py @@ -19,7 +19,13 @@ class PyOpenpmdViewer(PythonPackage): version("1.3.0", sha256="236c065a37881fcb7603efde0bf2d61acc355a8acc595bebc3d6b9d03251b081") version("1.2.0", sha256="a27f8ac522c4c76fd774095e156a8b280c9211128f50aa07f16ac70d8222384d") - variant("backend", default="h5py,openpmd-api", multi=True, values=("h5py", "openpmd-api")) + variant( + "backend", + default="h5py,openpmd-api", + description="Visualization backend", + multi=True, + values=("h5py", "openpmd-api"), + ) variant("jupyter", default=False, description="Enable Jupyter Widget GUI") variant("numba", default=False, description="Enable accelerated depositions for histograms") variant("plot", default=True, description="Enable plotting support") diff --git a/var/spack/repos/builtin/packages/rccl/package.py b/var/spack/repos/builtin/packages/rccl/package.py index e0313d10a8..6545452cf3 100644 --- a/var/spack/repos/builtin/packages/rccl/package.py +++ b/var/spack/repos/builtin/packages/rccl/package.py @@ -105,7 +105,12 @@ class Rccl(CMakePackage): amdgpu_targets = ROCmPackage.amdgpu_targets - variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True) + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) patch("0001-Fix-numactl-path-issue.patch", when="@3.7.0:4.3.2") patch("0002-Fix-numactl-rocm-smi-path-issue.patch", when="@4.5.0:5.2.1") diff --git a/var/spack/repos/builtin/packages/rocalution/package.py b/var/spack/repos/builtin/packages/rocalution/package.py index d0147523f8..c8afbc226a 100644 --- a/var/spack/repos/builtin/packages/rocalution/package.py +++ b/var/spack/repos/builtin/packages/rocalution/package.py @@ -109,7 +109,12 @@ class Rocalution(CMakePackage): amdgpu_targets = ROCmPackage.amdgpu_targets - variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True) + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) depends_on("cmake@3.5:", type="build") for ver in ["3.5.0", "3.7.0", "3.8.0"]: diff --git a/var/spack/repos/builtin/packages/rocblas/package.py b/var/spack/repos/builtin/packages/rocblas/package.py index 927736e66f..9727be5ab3 100644 --- a/var/spack/repos/builtin/packages/rocblas/package.py +++ b/var/spack/repos/builtin/packages/rocblas/package.py @@ -105,7 +105,12 @@ class Rocblas(CMakePackage): amdgpu_targets = ROCmPackage.amdgpu_targets - variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True) + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) variant("tensile", default=True, description="Use Tensile as a backend") # gfx906, gfx908,gfx803,gfx900 are valid for @:4.0.0 diff --git a/var/spack/repos/builtin/packages/rocfft/package.py b/var/spack/repos/builtin/packages/rocfft/package.py index 9f91d3d33a..bc5251a6c0 100644 --- a/var/spack/repos/builtin/packages/rocfft/package.py +++ b/var/spack/repos/builtin/packages/rocfft/package.py @@ -102,9 +102,17 @@ class Rocfft(CMakePackage): amdgpu_targets = ROCmPackage.amdgpu_targets - variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True) variant( - "amdgpu_target_sram_ecc", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) + variant( + "amdgpu_target_sram_ecc", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, ) depends_on("cmake@3.16:", type="build", when="@4.5.0:") diff --git a/var/spack/repos/builtin/packages/rocm-tensile/package.py b/var/spack/repos/builtin/packages/rocm-tensile/package.py index 32e61e5d71..19d3b3d63d 100644 --- a/var/spack/repos/builtin/packages/rocm-tensile/package.py +++ b/var/spack/repos/builtin/packages/rocm-tensile/package.py @@ -115,7 +115,13 @@ class RocmTensile(CMakePackage): "gfx1030", ) - variant("tensile_architecture", default="all", values=tensile_architecture, multi=True) + variant( + "tensile_architecture", + default="all", + description="AMD GPU architecture", + values=tensile_architecture, + multi=True, + ) variant("openmp", default=True, description="Enable OpenMP") conflicts("tensile_architecture=gfx906", when="@4.0.1:") conflicts("tensile_architecture=gfx908", when="@4.0.1:") diff --git a/var/spack/repos/builtin/packages/rocprim/package.py b/var/spack/repos/builtin/packages/rocprim/package.py index 2da370f84e..daa6154482 100644 --- a/var/spack/repos/builtin/packages/rocprim/package.py +++ b/var/spack/repos/builtin/packages/rocprim/package.py @@ -100,7 +100,12 @@ class Rocprim(CMakePackage): amdgpu_targets = ROCmPackage.amdgpu_targets - variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True) + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) depends_on("cmake@3.10.2:", type="build", when="@4.2.0:") depends_on("cmake@3.5.1:", type="build") diff --git a/var/spack/repos/builtin/packages/rocrand/package.py b/var/spack/repos/builtin/packages/rocrand/package.py index 85602c1f9f..893e3e4851 100644 --- a/var/spack/repos/builtin/packages/rocrand/package.py +++ b/var/spack/repos/builtin/packages/rocrand/package.py @@ -109,7 +109,12 @@ class Rocrand(CMakePackage): amdgpu_targets = ROCmPackage.amdgpu_targets - variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True) + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) variant("hiprand", default=True, when="@5.1.0:", description="Build the hiprand library") depends_on("cmake@3.10.2:", type="build", when="@4.5.0:") diff --git a/var/spack/repos/builtin/packages/rocsolver/package.py b/var/spack/repos/builtin/packages/rocsolver/package.py index 810f2eb5a1..f8c081299f 100644 --- a/var/spack/repos/builtin/packages/rocsolver/package.py +++ b/var/spack/repos/builtin/packages/rocsolver/package.py @@ -23,7 +23,12 @@ class Rocsolver(CMakePackage): amdgpu_targets = ROCmPackage.amdgpu_targets - variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True) + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) variant( "optimal", default=True, diff --git a/var/spack/repos/builtin/packages/rocsparse/package.py b/var/spack/repos/builtin/packages/rocsparse/package.py index 54b1aaa739..8f3693b469 100644 --- a/var/spack/repos/builtin/packages/rocsparse/package.py +++ b/var/spack/repos/builtin/packages/rocsparse/package.py @@ -25,7 +25,12 @@ class Rocsparse(CMakePackage): amdgpu_targets = ROCmPackage.amdgpu_targets - variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True) + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) variant("test", default=False, description="Build rocsparse-test client") version("5.5.1", sha256="1dd2d18898dfebdf898e8fe7d1c1198e8f8451fd70ff12a1990ec1419cf359e1") version("5.5.0", sha256="cbee79b637691bc710c1c83fbaa91db7498d38d4df873be23e28ed5617acde72") diff --git a/var/spack/repos/builtin/packages/rocthrust/package.py b/var/spack/repos/builtin/packages/rocthrust/package.py index 66a86942b3..62bf4fb3da 100644 --- a/var/spack/repos/builtin/packages/rocthrust/package.py +++ b/var/spack/repos/builtin/packages/rocthrust/package.py @@ -105,7 +105,12 @@ class Rocthrust(CMakePackage): # the rocthrust library itself is header-only, but the build_type and amdgpu_target # are relevant to the test client - variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True) + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) depends_on("cmake@3.10.2:", type="build", when="@4.2.0:") depends_on("cmake@3.5.1:", type="build") diff --git a/var/spack/repos/builtin/packages/rocwmma/package.py b/var/spack/repos/builtin/packages/rocwmma/package.py index d9f054cd89..774bfe6b26 100644 --- a/var/spack/repos/builtin/packages/rocwmma/package.py +++ b/var/spack/repos/builtin/packages/rocwmma/package.py @@ -41,7 +41,12 @@ class Rocwmma(CMakePackage): # releases amdgpu_targets = ("gfx908:xnack-", "gfx90a", "gfx90a:xnack-", "gfx90a:xnack+") - variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True) + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) variant( "build_type", default="Release", diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py index dc172d4851..ed3b1a3de3 100644 --- a/var/spack/repos/builtin/packages/root/package.py +++ b/var/spack/repos/builtin/packages/root/package.py @@ -157,7 +157,7 @@ class Root(CMakePackage): default=False, description="Enable support for TMultilayerPerceptron " "classes' federation", ) - variant("mysql", default=False) + variant("mysql", default=False, description="Enable support for MySQL databases") variant("opengl", default=True, description="Enable OpenGL support") variant("oracle", default=False, description="Enable support for Oracle databases") variant("postgres", default=False, description="Enable postgres support") diff --git a/var/spack/repos/builtin/packages/semiprof/package.py b/var/spack/repos/builtin/packages/semiprof/package.py index 0506ecf7a3..d934da0fbb 100644 --- a/var/spack/repos/builtin/packages/semiprof/package.py +++ b/var/spack/repos/builtin/packages/semiprof/package.py @@ -12,10 +12,10 @@ class Semiprof(CMakePackage): homepage = "https://github.com/bcumming/semiprof" url = "https://github.com/bcumming/semiprof/archive/refs/tags/v0.1.tar.gz" - maintainers = ["simonpintarelli"] + maintainers("simonpintarelli") - variant("examples", default=False) - variant("shared", default=True) + variant("examples", default=False, description="Enable examples") + variant("shared", default=True, description="Build shared libraries") version("0.1", sha256="4fb3823c65a4f5dfbe05e8cbe1911dfd25cd7740597f82c7b3a84472de26f0dc") diff --git a/var/spack/repos/builtin/packages/spglib/package.py b/var/spack/repos/builtin/packages/spglib/package.py index 130c195ec0..e7e29a1ed6 100644 --- a/var/spack/repos/builtin/packages/spglib/package.py +++ b/var/spack/repos/builtin/packages/spglib/package.py @@ -46,7 +46,7 @@ class Spglib(CMakePackage): version("1.10.1", sha256="8ed979cda82f6d440567197ec191bffcb82ee83c5bfe8a484c5a008dd00273f0") version("1.10.0", sha256="117fff308731784bea2ddaf3d076f0ecbf3981b31ea1c1bfd5ce4f057a5325b1") - variant("openmp", default=True, when="@1.16.2:") + variant("openmp", default=True, description="Build with OpenMP support", when="@1.16.2:") @property def libs(self): diff --git a/var/spack/repos/builtin/packages/tandem/package.py b/var/spack/repos/builtin/packages/tandem/package.py index 22c7081568..d00b153725 100644 --- a/var/spack/repos/builtin/packages/tandem/package.py +++ b/var/spack/repos/builtin/packages/tandem/package.py @@ -22,10 +22,20 @@ class Tandem(CMakePackage): patch("fix_v1.0_compilation.diff", when="@1.0") maintainers("dmay23", "Thomas-Ulrich") - variant("polynomial_degree", default="2") - variant("domain_dimension", default="2", values=("2", "3"), multi=False) - variant("min_quadrature_order", default="0") - variant("libxsmm", default=False, description="installs libxsmm-generator") + variant("polynomial_degree", default="2", description="Polynomial degree") + variant( + "domain_dimension", + default="2", + description="Dimension of the domain", + values=("2", "3"), + multi=False, + ) + variant( + "min_quadrature_order", + default="0", + description="Minimum order of quadrature rule, 0 = automatic", + ) + variant("libxsmm", default=False, description="Install libxsmm-generator") depends_on("mpi") depends_on("parmetis +int64 +shared") diff --git a/var/spack/repos/builtin/packages/tiled-mm/package.py b/var/spack/repos/builtin/packages/tiled-mm/package.py index 4e631b3c76..e44e92fb32 100644 --- a/var/spack/repos/builtin/packages/tiled-mm/package.py +++ b/var/spack/repos/builtin/packages/tiled-mm/package.py @@ -20,9 +20,9 @@ class TiledMm(CMakePackage, CudaPackage, ROCmPackage): version("2.2", sha256="6d0b49c9588ece744166822fd44a7bc5bec3dc666b836de8bf4bf1a7bb675aac") version("2.0", sha256="ea554aea8c53d7c8e40044e6d478c0e8137d7e8b09d7cb9650703430d92cf32e") - variant("shared", default=True) - variant("examples", default=False) - variant("tests", default=False) + variant("shared", default=True, description="Build shared libraries") + variant("examples", default=False, description="Enable examples") + variant("tests", default=False, description="Enable tests") depends_on("rocblas", when="+rocm") depends_on("cxxopts", when="+tests") diff --git a/var/spack/repos/builtin/packages/tmalign/package.py b/var/spack/repos/builtin/packages/tmalign/package.py index c27a79a3d8..5ea2557490 100644 --- a/var/spack/repos/builtin/packages/tmalign/package.py +++ b/var/spack/repos/builtin/packages/tmalign/package.py @@ -27,7 +27,7 @@ class Tmalign(Package): deprecated=True, ) - variant("fast-math", default=False, when="@20220412:") + variant("fast-math", default=False, description="Enable fast math", when="@20220412:") with when("@20220412:"): phases = ["build", "install"] diff --git a/var/spack/repos/builtin/packages/tmscore/package.py b/var/spack/repos/builtin/packages/tmscore/package.py index 334b2cecc3..a69e335413 100644 --- a/var/spack/repos/builtin/packages/tmscore/package.py +++ b/var/spack/repos/builtin/packages/tmscore/package.py @@ -21,7 +21,7 @@ class Tmscore(Package): expand=False, ) - variant("fast-math", default=False) + variant("fast-math", default=False, description="Enable fast math") phases = ["build", "install"] diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 50a169817a..5b5e2bf7ed 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -72,7 +72,9 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): variant("complex", default=False, description="Enable complex numbers in Trilinos") variant("cuda_rdc", default=False, description="Turn on RDC for CUDA build") variant("rocm_rdc", default=False, description="Turn on RDC for ROCm build") - variant("cxxstd", default="14", values=["11", "14", "17"], multi=False) + variant( + "cxxstd", default="14", description="C++ standard", values=["11", "14", "17"], multi=False + ) variant("debug", default=False, description="Enable runtime safety and debug checks") variant( "explicit_template_instantiation", diff --git a/var/spack/repos/builtin/packages/ucx/package.py b/var/spack/repos/builtin/packages/ucx/package.py index b76f0c8dbc..4cbbda730f 100644 --- a/var/spack/repos/builtin/packages/ucx/package.py +++ b/var/spack/repos/builtin/packages/ucx/package.py @@ -87,6 +87,7 @@ class Ucx(AutotoolsPackage, CudaPackage): variant("rocm", default=False, description="Enable ROCm support") variant( "simd", + description="SIMD features", values=disjoint_sets(("auto",), simd_values) .with_default("auto") .with_non_feature_values("auto"), diff --git a/var/spack/repos/builtin/packages/unifyfs/package.py b/var/spack/repos/builtin/packages/unifyfs/package.py index 4263d7aceb..88896b338b 100644 --- a/var/spack/repos/builtin/packages/unifyfs/package.py +++ b/var/spack/repos/builtin/packages/unifyfs/package.py @@ -38,24 +38,24 @@ class Unifyfs(AutotoolsPackage): variant( "auto-mount", - default="True", + default=True, description="Enable automatic mount/unmount in MPI_Init/Finalize", ) variant( "boostsys", - default="False", + default=False, description="Have Mercury use preprocessor headers from boost dependency", ) - variant("fortran", default="True", description="Build with gfortran support") - variant("pmi", default="False", description="Enable PMI2 build options") - variant("pmix", default="False", description="Enable PMIx build options") + variant("fortran", default=True, description="Build with gfortran support") + variant("pmi", default=False, description="Enable PMI2 build options") + variant("pmix", default=False, description="Enable PMIx build options") variant( "preload", - default="False", + default=False, when="@1.0.1:", description="Enable support for LD_PRELOAD library", ) - variant("spath", default="True", description="Use spath library to normalize relative paths") + variant("spath", default=True, description="Use spath library to normalize relative paths") depends_on("autoconf", type="build") depends_on("automake", type="build") diff --git a/var/spack/repos/builtin/packages/upp/package.py b/var/spack/repos/builtin/packages/upp/package.py index a6c8d31c6b..aaa72e27b4 100644 --- a/var/spack/repos/builtin/packages/upp/package.py +++ b/var/spack/repos/builtin/packages/upp/package.py @@ -23,10 +23,10 @@ class Upp(CMakePackage): version("10.0.9", tag="upp_v10.0.9", submodules=True) version("10.0.8", tag="upp_v10.0.8", submodules=True) - variant("openmp", default=True) - variant("postexec", default=True) - variant("wrf-io", default=False) - variant("docs", default=False) + variant("openmp", default=True, description="Use OpenMP threading") + variant("postexec", default=True, description="Build NCEPpost executable") + variant("wrf-io", default=False, description="Build NCEPpost with WRF-IO library") + variant("docs", default=False, description="Enable generation of doxygen-based documentation") depends_on("mpi") depends_on("netcdf-fortran") diff --git a/var/spack/repos/builtin/packages/usalign/package.py b/var/spack/repos/builtin/packages/usalign/package.py index 47f08e1f8a..206929a22f 100644 --- a/var/spack/repos/builtin/packages/usalign/package.py +++ b/var/spack/repos/builtin/packages/usalign/package.py @@ -30,7 +30,7 @@ class Usalign(Package): expand=False, ) - variant("fast-math", default=False) + variant("fast-math", default=False, description="Enable fast math") phases = ["build", "install"] diff --git a/var/spack/repos/builtin/packages/win-sdk/package.py b/var/spack/repos/builtin/packages/win-sdk/package.py index aeab5be2b7..e40b85898c 100644 --- a/var/spack/repos/builtin/packages/win-sdk/package.py +++ b/var/spack/repos/builtin/packages/win-sdk/package.py @@ -35,7 +35,9 @@ class WinSdk(Package): version("10.0.10586") version("10.0.26639") - variant("plat", values=("x64", "x86", "arm", "arm64"), default="x64") + variant( + "plat", values=("x64", "x86", "arm", "arm64"), default="x64", description="Toolchain arch" + ) # WinSDK versions depend on compatible compilers # WDK versions do as well, but due to their one to one dep on the SDK diff --git a/var/spack/repos/builtin/packages/win-wdk/package.py b/var/spack/repos/builtin/packages/win-wdk/package.py index ad3309c3a0..07f2a59018 100644 --- a/var/spack/repos/builtin/packages/win-wdk/package.py +++ b/var/spack/repos/builtin/packages/win-wdk/package.py @@ -66,7 +66,9 @@ class WinWdk(Package): expand=False, ) - variant("plat", values=("x64", "x86", "arm", "arm64"), default="x64") + variant( + "plat", values=("x64", "x86", "arm", "arm64"), default="x64", description="Toolchain arch" + ) # need one to one dep on SDK per https://github.com/MicrosoftDocs/windows-driver-docs/issues/1550 # additionally, the WDK needs to be paired with a version of the Windows SDK diff --git a/var/spack/repos/builtin/packages/wps/package.py b/var/spack/repos/builtin/packages/wps/package.py index d7711a19eb..71cb8d0a62 100644 --- a/var/spack/repos/builtin/packages/wps/package.py +++ b/var/spack/repos/builtin/packages/wps/package.py @@ -26,6 +26,7 @@ class Wps(Package): variant( "build_type", default="serial", + description="Build type", values=("serial", "serial_NO_GRIB2", "dmpar", "dmpar_NO_GRIB2"), ) diff --git a/var/spack/repos/builtin/packages/wrf/package.py b/var/spack/repos/builtin/packages/wrf/package.py index 60030c906e..f4fe6f05d2 100644 --- a/var/spack/repos/builtin/packages/wrf/package.py +++ b/var/spack/repos/builtin/packages/wrf/package.py @@ -96,15 +96,22 @@ class Wrf(Package): url="https://github.com/wrf-model/WRF/archive/V3.9.1.1.tar.gz", ) - variant("build_type", default="dmpar", values=("serial", "smpar", "dmpar", "dm+sm")) + variant( + "build_type", + default="dmpar", + description="Build type", + values=("serial", "smpar", "dmpar", "dm+sm"), + ) variant( "nesting", default="basic", + description="Nesting", values=("no_nesting", "basic", "preset_moves", "vortex_following"), ) variant( "compile_type", default="em_real", + description="Compile type", values=( "em_real", "em_quarter_ss", diff --git a/var/spack/repos/builtin/packages/xyce/package.py b/var/spack/repos/builtin/packages/xyce/package.py index e69f781504..25a5696fe3 100644 --- a/var/spack/repos/builtin/packages/xyce/package.py +++ b/var/spack/repos/builtin/packages/xyce/package.py @@ -52,7 +52,7 @@ class Xyce(CMakePackage): # this defaults to 11, consistent with what will be used, # and produces an error if any other value is attempted cxxstd_choices = ["11"] - variant("cxxstd", default="11", values=cxxstd_choices, multi=False) + variant("cxxstd", default="11", description="C++ standard", values=cxxstd_choices, multi=False) variant("pymi", default=False, description="Enable Python Model Interpreter for Xyce") # Downstream dynamic library symbols from pip installed numpy and other -- cgit v1.2.3-70-g09d2