summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam J. Stewart <ajstewart426@gmail.com>2023-08-08 09:29:49 -0500
committerGitHub <noreply@github.com>2023-08-08 09:29:49 -0500
commit361632fc4be915651fe5751bf499c069b3ca168c (patch)
treec6637d8cc0067ab5e1e1b26cca0d83376df8f647
parent6576655137b847af102ebcea20278a6d4f9f09e7 (diff)
downloadspack-361632fc4be915651fe5751bf499c069b3ca168c.tar.gz
spack-361632fc4be915651fe5751bf499c069b3ca168c.tar.bz2
spack-361632fc4be915651fe5751bf499c069b3ca168c.tar.xz
spack-361632fc4be915651fe5751bf499c069b3ca168c.zip
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
-rw-r--r--lib/spack/spack/audit.py15
-rw-r--r--lib/spack/spack/directives.py56
-rw-r--r--var/spack/repos/builtin/packages/armcomputelibrary/package.py4
-rw-r--r--var/spack/repos/builtin/packages/autodiff/package.py8
-rw-r--r--var/spack/repos/builtin/packages/berkeley-db/package.py2
-rw-r--r--var/spack/repos/builtin/packages/coral/package.py2
-rw-r--r--var/spack/repos/builtin/packages/davix/package.py2
-rw-r--r--var/spack/repos/builtin/packages/e3sm-scorpio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/freesasa/package.py6
-rw-r--r--var/spack/repos/builtin/packages/ftk/package.py16
-rw-r--r--var/spack/repos/builtin/packages/g2c/package.py6
-rw-r--r--var/spack/repos/builtin/packages/generax/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gptl/package.py8
-rw-r--r--var/spack/repos/builtin/packages/gpu-burn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gsl-lite/package.py28
-rw-r--r--var/spack/repos/builtin/packages/gtkplus/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hipblas/package.py1
-rw-r--r--var/spack/repos/builtin/packages/hipcub/package.py1
-rw-r--r--var/spack/repos/builtin/packages/hipfft/package.py1
-rw-r--r--var/spack/repos/builtin/packages/hiprand/package.py1
-rw-r--r--var/spack/repos/builtin/packages/hipsolver/package.py1
-rw-r--r--var/spack/repos/builtin/packages/hipsparse/package.py1
-rw-r--r--var/spack/repos/builtin/packages/kokkos-kernels/package.py39
-rw-r--r--var/spack/repos/builtin/packages/kokkos/package.py2
-rw-r--r--var/spack/repos/builtin/packages/legion/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libssh2/package.py7
-rw-r--r--var/spack/repos/builtin/packages/libxcrypt/package.py7
-rw-r--r--var/spack/repos/builtin/packages/libyogrt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mgard/package.py18
-rw-r--r--var/spack/repos/builtin/packages/miopen-tensile/package.py8
-rw-r--r--var/spack/repos/builtin/packages/nimrod-aai/package.py26
-rw-r--r--var/spack/repos/builtin/packages/nlcglib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/octave/package.py44
-rw-r--r--var/spack/repos/builtin/packages/py-hist/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-openpmd-viewer/package.py8
-rw-r--r--var/spack/repos/builtin/packages/rccl/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rocalution/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rocblas/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rocfft/package.py12
-rw-r--r--var/spack/repos/builtin/packages/rocm-tensile/package.py8
-rw-r--r--var/spack/repos/builtin/packages/rocprim/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rocrand/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rocsolver/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rocsparse/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rocthrust/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rocwmma/package.py7
-rw-r--r--var/spack/repos/builtin/packages/root/package.py2
-rw-r--r--var/spack/repos/builtin/packages/semiprof/package.py6
-rw-r--r--var/spack/repos/builtin/packages/spglib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tandem/package.py18
-rw-r--r--var/spack/repos/builtin/packages/tiled-mm/package.py6
-rw-r--r--var/spack/repos/builtin/packages/tmalign/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tmscore/package.py2
-rw-r--r--var/spack/repos/builtin/packages/trilinos/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ucx/package.py1
-rw-r--r--var/spack/repos/builtin/packages/unifyfs/package.py14
-rw-r--r--var/spack/repos/builtin/packages/upp/package.py8
-rw-r--r--var/spack/repos/builtin/packages/usalign/package.py2
-rw-r--r--var/spack/repos/builtin/packages/win-sdk/package.py4
-rw-r--r--var/spack/repos/builtin/packages/win-wdk/package.py4
-rw-r--r--var/spack/repos/builtin/packages/wps/package.py1
-rw-r--r--var/spack/repos/builtin/packages/wrf/package.py9
-rw-r--r--var/spack/repos/builtin/packages/xyce/package.py2
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
@@ -710,6 +710,21 @@ def _ensure_variant_defaults_are_parsable(pkgs, error_cls):
@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"""
errors = []
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 <gsl/gsl>"
+ )
+ variant(
+ "legacy_headers",
+ default=False,
+ description="Install legacy headers <gsl.h>, <gsl.hpp>, <gsl/gsl-lite.h>",
+ )
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