Add an audit to prevent using the name "all" in packages (#47651)

Packages cannot be named like that, since we use "all" to indicate
default settings under the "packages" section of the configuration.
This commit is contained in:
Massimiliano Culpo 2024-11-17 21:32:24 +01:00 committed by GitHub
parent fdedb6f95d
commit da4f7c2952
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 7 additions and 2 deletions

View File

@ -571,8 +571,13 @@ def _search_for_deprecated_package_methods(pkgs, error_cls):
@package_properties
def _ensure_all_package_names_are_lowercase(pkgs, error_cls):
"""Ensure package names are lowercase and consistent"""
reserved_names = ("all",)
badname_regex, errors = re.compile(r"[_A-Z]"), []
for pkg_name in pkgs:
if pkg_name in reserved_names:
error_msg = f"The name '{pkg_name}' is reserved, and cannot be used for packages"
errors.append(error_cls(error_msg, []))
if badname_regex.search(pkg_name):
error_msg = f"Package name '{pkg_name}' should be lowercase and must not contain '_'"
errors.append(error_cls(error_msg, []))

View File

@ -6,7 +6,7 @@
from spack.package import *
class All(CMakePackage):
class AllLibrary(CMakePackage):
"""A Load Balancing Library (ALL)
The library aims to provide an easy way to include dynamic domain-based

View File

@ -93,7 +93,7 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage):
depends_on("kokkos+cuda_lambda@4.1:", when="+cuda@0.7:")
# Dependencies for subpackages
depends_on("all", when="@0.5.0:+all")
depends_on("all-library", when="@0.5.0:+all")
depends_on("arborx", when="@0.3.0:+arborx")
depends_on("hypre-cmake@2.22.0:", when="@0.4.0:+hypre")
depends_on("hypre-cmake@2.22.1:", when="@0.5.0:+hypre")