Compare commits
213 Commits
features/v
...
f/env-loca
Author | SHA1 | Date | |
---|---|---|---|
![]() |
79e821a43e | ||
![]() |
c16f166dcc | ||
![]() |
4ae9730ffe | ||
![]() |
9debeaf4e7 | ||
![]() |
47cdefcbe8 | ||
![]() |
2acc356ed4 | ||
![]() |
36bf6c9009 | ||
![]() |
29fbad20a2 | ||
![]() |
5f78703af8 | ||
![]() |
9b390bdc2c | ||
![]() |
bc427e8435 | ||
![]() |
3c6e6e22be | ||
![]() |
4a8f755632 | ||
![]() |
51de7ed7ee | ||
![]() |
c5d7ea04d0 | ||
![]() |
1bc425ddad | ||
![]() |
471684add4 | ||
![]() |
973d33a8f1 | ||
![]() |
d0387cbbaf | ||
![]() |
97d59c2efb | ||
![]() |
b69378c8cb | ||
![]() |
f1b004a0d3 | ||
![]() |
1f7c59eb06 | ||
![]() |
e1341d70ce | ||
![]() |
38c321abb3 | ||
![]() |
82041ac5a3 | ||
![]() |
ecf93c77ae | ||
![]() |
34e42d5540 | ||
![]() |
cdcbf7dc46 | ||
![]() |
e25501f76c | ||
![]() |
7fec7cd013 | ||
![]() |
3d881dbad7 | ||
![]() |
c818e36d79 | ||
![]() |
4fbbb23933 | ||
![]() |
b35af7d9e7 | ||
![]() |
f7de22eb14 | ||
![]() |
72f57ffede | ||
![]() |
12f43380b9 | ||
![]() |
ffdc85e8ce | ||
![]() |
259a32e5e4 | ||
![]() |
8c0b8c785f | ||
![]() |
02d3bd782d | ||
![]() |
b6906be846 | ||
![]() |
a0ce6f7890 | ||
![]() |
09cf265ff4 | ||
![]() |
0d72b29193 | ||
![]() |
7f1467e795 | ||
![]() |
f89cd29054 | ||
![]() |
89720583c3 | ||
![]() |
7e78efcc44 | ||
![]() |
126accfce1 | ||
![]() |
27c2ff6c64 | ||
![]() |
9bde77199c | ||
![]() |
f5ed18f6a3 | ||
![]() |
ccd11666c6 | ||
![]() |
df80cffafa | ||
![]() |
b52d4b8abf | ||
![]() |
96624d1490 | ||
![]() |
1648968514 | ||
![]() |
8358f430a4 | ||
![]() |
ec045f993b | ||
![]() |
7fe2039b01 | ||
![]() |
25cb55ccd9 | ||
![]() |
d4e075f667 | ||
![]() |
ae98d2ba2f | ||
![]() |
8e49bf0c5b | ||
![]() |
1bb119dbd7 | ||
![]() |
a7f39da5db | ||
![]() |
1d3a74d926 | ||
![]() |
0448f18ab2 | ||
![]() |
2516ed181a | ||
![]() |
7740b37923 | ||
![]() |
358cc5ed1a | ||
![]() |
30b8cfad98 | ||
![]() |
383a343412 | ||
![]() |
3714d3443b | ||
![]() |
42a452d54c | ||
![]() |
a913ed229d | ||
![]() |
7c122da48b | ||
![]() |
fdaa54941d | ||
![]() |
135832650f | ||
![]() |
29d710fdec | ||
![]() |
13c4f92907 | ||
![]() |
7a2c9601e8 | ||
![]() |
31959b72b0 | ||
![]() |
8109877424 | ||
![]() |
91243ecb5b | ||
![]() |
1fc2bf846d | ||
![]() |
848344d9a5 | ||
![]() |
e08da4e2b6 | ||
![]() |
75a72766ff | ||
![]() |
797e230498 | ||
![]() |
1c6993145e | ||
![]() |
00573d6ea2 | ||
![]() |
4c0116bd64 | ||
![]() |
f0d8355248 | ||
![]() |
01c21d0496 | ||
![]() |
43057e2edd | ||
![]() |
ba8d9f22ef | ||
![]() |
07d7c32d79 | ||
![]() |
017a15988c | ||
![]() |
1ad290e5a2 | ||
![]() |
f6fa64f979 | ||
![]() |
1826a41cdd | ||
![]() |
509a8ea5e2 | ||
![]() |
ca202ba11e | ||
![]() |
0b1d51e450 | ||
![]() |
2936573fc6 | ||
![]() |
5d4c250354 | ||
![]() |
b0913b1bf8 | ||
![]() |
c49e2e5620 | ||
![]() |
60624265f8 | ||
![]() |
79aa9e9c87 | ||
![]() |
f2b0c1deab | ||
![]() |
7d50680d9c | ||
![]() |
defa4a2340 | ||
![]() |
1e1d1ec43b | ||
![]() |
0e41788812 | ||
![]() |
ddecf07045 | ||
![]() |
9865a42b20 | ||
![]() |
2432be5911 | ||
![]() |
002bd8d20b | ||
![]() |
eac04af0e7 | ||
![]() |
448bd31c87 | ||
![]() |
46466302a9 | ||
![]() |
5e39acea16 | ||
![]() |
cfdf0b6987 | ||
![]() |
6be6935671 | ||
![]() |
68233db9f6 | ||
![]() |
aea2c73b04 | ||
![]() |
5dc5db6679 | ||
![]() |
51702a725b | ||
![]() |
931c0edaf4 | ||
![]() |
689bdd6f36 | ||
![]() |
a426db06e7 | ||
![]() |
4b12d015e1 | ||
![]() |
ecd4eac184 | ||
![]() |
4d502c8ff7 | ||
![]() |
227c6061e5 | ||
![]() |
3453f59ba3 | ||
![]() |
3201b4e2a1 | ||
![]() |
80d26168b5 | ||
![]() |
67040e79c5 | ||
![]() |
a116775ff3 | ||
![]() |
de2aaeb26f | ||
![]() |
830e3211e5 | ||
![]() |
6b3b7f8b7f | ||
![]() |
99f3716346 | ||
![]() |
4f6ef3b698 | ||
![]() |
2dc020af31 | ||
![]() |
17f2d66285 | ||
![]() |
32f480936a | ||
![]() |
481b598963 | ||
![]() |
4b186df5b4 | ||
![]() |
f4dac7cd4c | ||
![]() |
48a63719b2 | ||
![]() |
f576b4b6c5 | ||
![]() |
9f5d9266e6 | ||
![]() |
28c4809a8f | ||
![]() |
57d6b70226 | ||
![]() |
508fcd8240 | ||
![]() |
bec79d9ee1 | ||
![]() |
047110c086 | ||
![]() |
7fa16089fc | ||
![]() |
065eaa739f | ||
![]() |
8d8e88c177 | ||
![]() |
8cc69cecfc | ||
![]() |
9c690a1ef5 | ||
![]() |
3532d6ff16 | ||
![]() |
7494893d3b | ||
![]() |
54e4a72b8e | ||
![]() |
b86980461f | ||
![]() |
23b5932f73 | ||
![]() |
93760847e8 | ||
![]() |
a35d2f39af | ||
![]() |
af17cc60a9 | ||
![]() |
b0528cae3f | ||
![]() |
372a18392a | ||
![]() |
70db49dfed | ||
![]() |
1d24c196da | ||
![]() |
fa3d768947 | ||
![]() |
9b6a109c7e | ||
![]() |
663967d984 | ||
![]() |
b47ff2a2de | ||
![]() |
f7b4993810 | ||
![]() |
3e07eb8cf0 | ||
![]() |
e773396747 | ||
![]() |
e19cc2385e | ||
![]() |
e867662e1b | ||
![]() |
6aad926838 | ||
![]() |
41cf807804 | ||
![]() |
cf8b919954 | ||
![]() |
47957dccf4 | ||
![]() |
38313cadf4 | ||
![]() |
730d005a56 | ||
![]() |
2f7c850a20 | ||
![]() |
5aa7a564d3 | ||
![]() |
d50c8f1727 | ||
![]() |
0ac6dfa8f3 | ||
![]() |
0b0ffe645d | ||
![]() |
9984c838c8 | ||
![]() |
b1bd61321d | ||
![]() |
c144558245 | ||
![]() |
ef43044672 | ||
![]() |
da7294cd90 | ||
![]() |
addb891f42 | ||
![]() |
bce2d38bfc | ||
![]() |
2cae95334c | ||
![]() |
076d60ce35 | ||
![]() |
9ecdafd8de | ||
![]() |
76fde639e8 | ||
![]() |
490b5eef7c | ||
![]() |
3f2e77e5fa |
4
.github/workflows/build-containers.yml
vendored
4
.github/workflows/build-containers.yml
vendored
@@ -89,7 +89,7 @@ jobs:
|
||||
uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 # @v1
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@8c0edbc76e98fa90f69d9a2c020dcb50019dc325 # @v1
|
||||
uses: docker/setup-buildx-action@f03ac48505955848960e80bbb68046aa35c7b9e7 # @v1
|
||||
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # @v1
|
||||
@@ -106,7 +106,7 @@ jobs:
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build & Deploy ${{ matrix.dockerfile[0] }}
|
||||
uses: docker/build-push-action@37abcedcc1da61a57767b7588cb9d03eb57e28b3 # @v2
|
||||
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 # @v2
|
||||
with:
|
||||
context: dockerfiles/${{ matrix.dockerfile[0] }}
|
||||
platforms: ${{ matrix.dockerfile[1] }}
|
||||
|
2
.github/workflows/valid-style.yml
vendored
2
.github/workflows/valid-style.yml
vendored
@@ -44,7 +44,7 @@ jobs:
|
||||
cache: 'pip'
|
||||
- name: Install Python packages
|
||||
run: |
|
||||
python3 -m pip install --upgrade pip six setuptools types-six black mypy isort clingo flake8
|
||||
python3 -m pip install --upgrade pip six setuptools types-six black==22.12.0 mypy isort clingo flake8
|
||||
- name: Setup git configuration
|
||||
run: |
|
||||
# Need this for the git tests to succeed.
|
||||
|
@@ -72,6 +72,7 @@ config:
|
||||
root: $TMP_DIR/install
|
||||
misc_cache: $$user_cache_path/cache
|
||||
source_cache: $$user_cache_path/source
|
||||
environments_root: $TMP_DIR/envs
|
||||
EOF
|
||||
cat >"$SPACK_USER_CONFIG_PATH/bootstrap.yaml" <<EOF
|
||||
bootstrap:
|
||||
|
@@ -83,6 +83,16 @@ if defined _sp_flags (
|
||||
exit /B 0
|
||||
)
|
||||
)
|
||||
if not defined _sp_subcommand (
|
||||
if not defined _sp_args (
|
||||
if not defined _sp_flags (
|
||||
python "%spack%" --help
|
||||
exit /B 0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
:: pass parsed variables outside of local scope. Need to do
|
||||
:: this because delayedexpansion can only be set by setlocal
|
||||
echo %_sp_flags%>flags
|
||||
@@ -92,24 +102,24 @@ endlocal
|
||||
set /p _sp_subcommand=<subcmd
|
||||
set /p _sp_flags=<flags
|
||||
set /p _sp_args=<args
|
||||
set str_subcommand=%_sp_subcommand:"='%
|
||||
set str_flags=%_sp_flags:"='%
|
||||
set str_args=%_sp_args:"='%
|
||||
if "%str_subcommand%"=="ECHO is off." (set "_sp_subcommand=")
|
||||
if "%str_flags%"=="ECHO is off." (set "_sp_flags=")
|
||||
if "%str_args%"=="ECHO is off." (set "_sp_args=")
|
||||
if "%_sp_subcommand%"=="ECHO is off." (set "_sp_subcommand=")
|
||||
if "%_sp_subcommand%"=="ECHO is on." (set "_sp_subcommand=")
|
||||
if "%_sp_flags%"=="ECHO is off." (set "_sp_flags=")
|
||||
if "%_sp_flags%"=="ECHO is on." (set "_sp_flags=")
|
||||
if "%_sp_args%"=="ECHO is off." (set "_sp_args=")
|
||||
if "%_sp_args%"=="ECHO is on." (set "_sp_args=")
|
||||
del subcmd
|
||||
del flags
|
||||
del args
|
||||
|
||||
:: Filter out some commands. For any others, just run the command.
|
||||
if "%_sp_subcommand%" == "cd" (
|
||||
if %_sp_subcommand% == "cd" (
|
||||
goto :case_cd
|
||||
) else if "%_sp_subcommand%" == "env" (
|
||||
) else if %_sp_subcommand% == "env" (
|
||||
goto :case_env
|
||||
) else if "%_sp_subcommand%" == "load" (
|
||||
) else if %_sp_subcommand% == "load" (
|
||||
goto :case_load
|
||||
) else if "%_sp_subcommand%" == "unload" (
|
||||
) else if %_sp_subcommand% == "unload" (
|
||||
goto :case_load
|
||||
) else (
|
||||
goto :default_case
|
||||
@@ -143,19 +153,21 @@ goto :end_switch
|
||||
:: If no args or args contain --bat or -h/--help: just execute.
|
||||
if NOT defined _sp_args (
|
||||
goto :default_case
|
||||
)else if NOT "%_sp_args%"=="%_sp_args:--help=%" (
|
||||
)
|
||||
set args_no_quote=%_sp_args:"=%
|
||||
if NOT "%args_no_quote%"=="%args_no_quote:--help=%" (
|
||||
goto :default_case
|
||||
) else if NOT "%_sp_args%"=="%_sp_args: -h=%" (
|
||||
) else if NOT "%args_no_quote%"=="%args_no_quote: -h=%" (
|
||||
goto :default_case
|
||||
) else if NOT "%_sp_args%"=="%_sp_args:--bat=%" (
|
||||
) else if NOT "%args_no_quote%"=="%args_no_quote:--bat=%" (
|
||||
goto :default_case
|
||||
) else if NOT "%_sp_args%"=="%_sp_args:deactivate=%" (
|
||||
) else if NOT "%args_no_quote%"=="%args_no_quote:deactivate=%" (
|
||||
for /f "tokens=* USEBACKQ" %%I in (
|
||||
`call python "%spack%" %_sp_flags% env deactivate --bat %_sp_args:deactivate=%`
|
||||
`call python %spack% %_sp_flags% env deactivate --bat %args_no_quote:deactivate=%`
|
||||
) do %%I
|
||||
) else if NOT "%_sp_args%"=="%_sp_args:activate=%" (
|
||||
) else if NOT "%args_no_quote%"=="%args_no_quote:activate=%" (
|
||||
for /f "tokens=* USEBACKQ" %%I in (
|
||||
`call python "%spack%" %_sp_flags% env activate --bat %_sp_args:activate=%`
|
||||
`python %spack% %_sp_flags% env activate --bat %args_no_quote:activate=%`
|
||||
) do %%I
|
||||
) else (
|
||||
goto :default_case
|
||||
@@ -220,4 +232,4 @@ for %%I in (%~2) do (
|
||||
:pathadd "%~1" "%%I\%%Z"
|
||||
)
|
||||
)
|
||||
exit /B %ERRORLEVEL%
|
||||
exit /B %ERRORLEVEL%
|
||||
|
@@ -81,6 +81,10 @@ config:
|
||||
source_cache: $spack/var/spack/cache
|
||||
|
||||
|
||||
## Directory where spack managed environments are created and stored
|
||||
# environments_root: $spack/var/spack/environments
|
||||
|
||||
|
||||
# Cache directory for miscellaneous files, like the package index.
|
||||
# This can be purged with `spack clean --misc-cache`
|
||||
misc_cache: $user_cache_path/cache
|
||||
|
@@ -58,9 +58,9 @@ Using Environments
|
||||
Here we follow a typical use case of creating, concretizing,
|
||||
installing and loading an environment.
|
||||
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Creating a named Environment
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Creating a managed Environment
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
An environment is created by:
|
||||
|
||||
@@ -72,7 +72,8 @@ Spack then creates the directory ``var/spack/environments/myenv``.
|
||||
|
||||
.. note::
|
||||
|
||||
All named environments are stored in the ``var/spack/environments`` folder.
|
||||
All managed environments by default are stored in the ``var/spack/environments`` folder.
|
||||
This location can be changed by setting the ``environments_root`` variable in ``config.yaml``.
|
||||
|
||||
In the ``var/spack/environments/myenv`` directory, Spack creates the
|
||||
file ``spack.yaml`` and the hidden directory ``.spack-env``.
|
||||
|
@@ -23,7 +23,7 @@
|
||||
from llnl.util.lang import dedupe, memoized
|
||||
from llnl.util.symlink import islink, symlink
|
||||
|
||||
from spack.util.executable import CommandNotFoundError, Executable, which
|
||||
from spack.util.executable import Executable, which
|
||||
from spack.util.path import path_to_os_path, system_path_filter
|
||||
|
||||
is_windows = _platform == "win32"
|
||||
@@ -117,13 +117,7 @@ def path_contains_subdirectory(path, root):
|
||||
@memoized
|
||||
def file_command(*args):
|
||||
"""Creates entry point to `file` system command with provided arguments"""
|
||||
try:
|
||||
file_cmd = which("file", required=True)
|
||||
except CommandNotFoundError as e:
|
||||
if is_windows:
|
||||
raise CommandNotFoundError("`file` utility is not available on Windows")
|
||||
else:
|
||||
raise e
|
||||
file_cmd = which("file", required=True)
|
||||
for arg in args:
|
||||
file_cmd.add_default_arg(arg)
|
||||
return file_cmd
|
||||
@@ -134,7 +128,11 @@ def _get_mime_type():
|
||||
"""Generate method to call `file` system command to aquire mime type
|
||||
for a specified path
|
||||
"""
|
||||
return file_command("-b", "-h", "--mime-type")
|
||||
if is_windows:
|
||||
# -h option (no-dereference) does not exist in Windows
|
||||
return file_command("-b", "--mime-type")
|
||||
else:
|
||||
return file_command("-b", "-h", "--mime-type")
|
||||
|
||||
|
||||
@memoized
|
||||
|
@@ -294,10 +294,12 @@ def update_spec(self, spec, found_list):
|
||||
cur_entry["spec"] = new_entry["spec"]
|
||||
break
|
||||
else:
|
||||
current_list.append = {
|
||||
"mirror_url": new_entry["mirror_url"],
|
||||
"spec": new_entry["spec"],
|
||||
}
|
||||
current_list.append(
|
||||
{
|
||||
"mirror_url": new_entry["mirror_url"],
|
||||
"spec": new_entry["spec"],
|
||||
}
|
||||
)
|
||||
|
||||
def update(self, with_cooldown=False):
|
||||
"""Make sure local cache of buildcache index files is up to date.
|
||||
|
@@ -171,7 +171,7 @@ def mypy_root_spec():
|
||||
|
||||
def black_root_spec():
|
||||
"""Return the root spec used to bootstrap black"""
|
||||
return _root_spec("py-black")
|
||||
return _root_spec("py-black@:22.12.0")
|
||||
|
||||
|
||||
def flake8_root_spec():
|
||||
|
@@ -8,7 +8,7 @@
|
||||
import spack.directives
|
||||
import spack.package_base
|
||||
|
||||
from ._checks import BaseBuilder, apply_macos_rpath_fixups
|
||||
from ._checks import BaseBuilder, apply_macos_rpath_fixups, execute_install_time_tests
|
||||
|
||||
|
||||
class Package(spack.package_base.PackageBase):
|
||||
@@ -38,7 +38,16 @@ class GenericBuilder(BaseBuilder):
|
||||
legacy_methods: Tuple[str, ...] = ()
|
||||
|
||||
#: Names associated with package attributes in the old build-system format
|
||||
legacy_attributes: Tuple[str, ...] = ("archive_files",)
|
||||
legacy_attributes: Tuple[str, ...] = (
|
||||
"archive_files",
|
||||
"install_time_test_callbacks",
|
||||
)
|
||||
|
||||
#: Callback names for post-install phase tests
|
||||
install_time_test_callbacks = []
|
||||
|
||||
# On macOS, force rpaths for shared library IDs and remove duplicate rpaths
|
||||
spack.builder.run_after("install", when="platform=darwin")(apply_macos_rpath_fixups)
|
||||
|
||||
# unconditionally perform any post-install phase tests
|
||||
spack.builder.run_after("install")(execute_install_time_tests)
|
||||
|
@@ -77,7 +77,7 @@ def toolchain_version(self):
|
||||
Override this method to select a specific version of the toolchain or change
|
||||
selection heuristics.
|
||||
Default is whatever version of msvc has been selected by concretization"""
|
||||
return self.compiler.msvc_version
|
||||
return "v" + self.pkg.compiler.platform_toolset_ver
|
||||
|
||||
@property
|
||||
def std_msbuild_args(self):
|
||||
|
@@ -92,7 +92,7 @@ def makefile_root(self):
|
||||
This path is relative to the root of the extracted tarball,
|
||||
not to the ``build_directory``. Defaults to the current directory.
|
||||
"""
|
||||
return self.stage.source_dir
|
||||
return self.stage.source_path
|
||||
|
||||
@property
|
||||
def nmakefile_name(self):
|
||||
|
@@ -530,10 +530,9 @@ def ci_rebuild(args):
|
||||
if not verify_binaries:
|
||||
install_args.append("--no-check-signature")
|
||||
|
||||
cdash_args = []
|
||||
if cdash_handler:
|
||||
# Add additional arguments to `spack install` for CDash reporting.
|
||||
cdash_args.extend(cdash_handler.args())
|
||||
install_args.extend(cdash_handler.args())
|
||||
|
||||
slash_hash = "/{}".format(job_spec.dag_hash())
|
||||
deps_install_args = install_args
|
||||
|
@@ -6,6 +6,7 @@
|
||||
|
||||
import argparse
|
||||
import os.path
|
||||
import textwrap
|
||||
|
||||
from llnl.util.lang import stable_partition
|
||||
|
||||
@@ -415,6 +416,40 @@ def add_cdash_args(subparser, add_help):
|
||||
cdash_subgroup.add_argument("--cdash-buildstamp", default=None, help=cdash_help["buildstamp"])
|
||||
|
||||
|
||||
def print_cdash_help():
|
||||
parser = argparse.ArgumentParser(
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
epilog=textwrap.dedent(
|
||||
"""\
|
||||
environment variables:
|
||||
SPACK_CDASH_AUTH_TOKEN
|
||||
authentication token to present to CDash
|
||||
"""
|
||||
),
|
||||
)
|
||||
add_cdash_args(parser, True)
|
||||
parser.print_help()
|
||||
|
||||
|
||||
def sanitize_reporter_options(namespace: argparse.Namespace):
|
||||
"""Sanitize options that affect generation and configuration of reports, like
|
||||
CDash or JUnit.
|
||||
|
||||
Args:
|
||||
namespace: options parsed from cli
|
||||
"""
|
||||
has_any_cdash_option = (
|
||||
namespace.cdash_upload_url or namespace.cdash_build or namespace.cdash_site
|
||||
)
|
||||
if namespace.log_format == "junit" and has_any_cdash_option:
|
||||
raise argparse.ArgumentTypeError("cannot pass any cdash option when --log-format=junit")
|
||||
|
||||
# If any CDash option is passed, assume --log-format=cdash is implied
|
||||
if namespace.log_format is None and has_any_cdash_option:
|
||||
namespace.log_format = "cdash"
|
||||
namespace.reporter = _cdash_reporter(namespace)
|
||||
|
||||
|
||||
class ConfigSetAction(argparse.Action):
|
||||
"""Generic action for setting spack config options from CLI.
|
||||
|
||||
|
@@ -166,7 +166,7 @@ def env_activate(args):
|
||||
short_name = os.path.basename(env_path)
|
||||
ev.Environment(env).write(regenerate=False)
|
||||
|
||||
# Named environment
|
||||
# Managed environment
|
||||
elif ev.exists(env_name_or_dir) and not args.dir:
|
||||
env_path = ev.root(env_name_or_dir)
|
||||
short_name = env_name_or_dir
|
||||
|
@@ -49,9 +49,9 @@
|
||||
@r{-variant} or @r{~variant} disable <variant>
|
||||
@r{--variant} or @r{~~variant} propagate disable <variant>
|
||||
@B{variant=value} set non-boolean <variant> to <value>
|
||||
@B{variant==value} propagate non-boolean <variant> to <value>
|
||||
@B{variant==value} propagate non-boolean <variant> to <value>
|
||||
@B{variant=value1,value2,value3} set multi-value <variant> values
|
||||
@B{variant==value1,value2,value3} propagate multi-value <variant> values
|
||||
@B{variant==value1,value2,value3} propagate multi-value <variant> values
|
||||
|
||||
architecture variants:
|
||||
@m{platform=platform} linux, darwin, cray, etc.
|
||||
|
@@ -7,7 +7,6 @@
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import textwrap
|
||||
from typing import List
|
||||
|
||||
import llnl.util.filesystem as fs
|
||||
@@ -260,7 +259,7 @@ def default_log_file(spec):
|
||||
|
||||
def report_filename(args: argparse.Namespace, specs: List[spack.spec.Spec]) -> str:
|
||||
"""Return the filename to be used for reporting to JUnit or CDash format."""
|
||||
result = args.log_file or args.cdash_upload_url or default_log_file(specs[0])
|
||||
result = args.log_file or default_log_file(specs[0])
|
||||
return result
|
||||
|
||||
|
||||
@@ -348,21 +347,6 @@ def install_specs_outside_environment(specs, install_kwargs):
|
||||
builder.install()
|
||||
|
||||
|
||||
def print_cdash_help():
|
||||
parser = argparse.ArgumentParser(
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
epilog=textwrap.dedent(
|
||||
"""\
|
||||
environment variables:
|
||||
SPACK_CDASH_AUTH_TOKEN
|
||||
authentication token to present to CDash
|
||||
"""
|
||||
),
|
||||
)
|
||||
arguments.add_cdash_args(parser, True)
|
||||
parser.print_help()
|
||||
|
||||
|
||||
def install_all_specs_from_active_environment(
|
||||
install_kwargs, only_concrete, cli_test_arg, reporter_factory
|
||||
):
|
||||
@@ -496,7 +480,7 @@ def install(parser, args):
|
||||
tty.set_verbose(args.verbose or args.install_verbose)
|
||||
|
||||
if args.help_cdash:
|
||||
print_cdash_help()
|
||||
spack.cmd.common.arguments.print_cdash_help()
|
||||
return
|
||||
|
||||
if args.no_checksum:
|
||||
@@ -505,6 +489,8 @@ def install(parser, args):
|
||||
if args.deprecated:
|
||||
spack.config.set("config:deprecated", True, scope="command_line")
|
||||
|
||||
spack.cmd.common.arguments.sanitize_reporter_options(args)
|
||||
|
||||
def reporter_factory(specs):
|
||||
if args.log_format is None:
|
||||
return None
|
||||
|
@@ -95,7 +95,7 @@ def location(parser, args):
|
||||
spack.cmd.require_active_env("location -e")
|
||||
path = ev.active_environment().path
|
||||
else:
|
||||
# Get named environment path
|
||||
# Get path of requested environment
|
||||
if not ev.exists(args.location_env):
|
||||
tty.die("no such environment: '%s'" % args.location_env)
|
||||
path = ev.root(args.location_env)
|
||||
|
@@ -11,7 +11,6 @@
|
||||
import re
|
||||
import shutil
|
||||
import sys
|
||||
import textwrap
|
||||
|
||||
from llnl.util import lang, tty
|
||||
from llnl.util.tty import colify
|
||||
@@ -171,20 +170,11 @@ def test_run(args):
|
||||
|
||||
# cdash help option
|
||||
if args.help_cdash:
|
||||
parser = argparse.ArgumentParser(
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
epilog=textwrap.dedent(
|
||||
"""\
|
||||
environment variables:
|
||||
SPACK_CDASH_AUTH_TOKEN
|
||||
authentication token to present to CDash
|
||||
"""
|
||||
),
|
||||
)
|
||||
arguments.add_cdash_args(parser, True)
|
||||
parser.print_help()
|
||||
arguments.print_cdash_help()
|
||||
return
|
||||
|
||||
arguments.sanitize_reporter_options(args)
|
||||
|
||||
# set config option for fail-fast
|
||||
if args.fail_fast:
|
||||
spack.config.set("config:fail_fast", True, scope="command_line")
|
||||
@@ -237,22 +227,22 @@ def test_run(args):
|
||||
)
|
||||
|
||||
|
||||
def report_filename(args, test_suite):
|
||||
if args.log_file:
|
||||
if os.path.isabs(args.log_file):
|
||||
return args.log_file
|
||||
else:
|
||||
log_dir = os.getcwd()
|
||||
return os.path.join(log_dir, args.log_file)
|
||||
else:
|
||||
return os.path.join(os.getcwd(), "test-%s" % test_suite.name)
|
||||
|
||||
|
||||
def create_reporter(args, specs_to_test, test_suite):
|
||||
if args.log_format is None:
|
||||
return None
|
||||
|
||||
filename = args.cdash_upload_url
|
||||
if not filename:
|
||||
if args.log_file:
|
||||
if os.path.isabs(args.log_file):
|
||||
log_file = args.log_file
|
||||
else:
|
||||
log_dir = os.getcwd()
|
||||
log_file = os.path.join(log_dir, args.log_file)
|
||||
else:
|
||||
log_file = os.path.join(os.getcwd(), "test-%s" % test_suite.name)
|
||||
filename = log_file
|
||||
|
||||
filename = report_filename(args, test_suite)
|
||||
context_manager = spack.report.test_context_manager(
|
||||
reporter=args.reporter(),
|
||||
filename=filename,
|
||||
|
@@ -63,7 +63,7 @@ def tutorial(parser, args):
|
||||
if not tty.get_yes_or_no("Are you sure you want to proceed?"):
|
||||
tty.die("Aborted")
|
||||
|
||||
rm_cmds = ["rm -f %s" % f for f in rm_configs]
|
||||
rm_cmds = [f"rm -f {f}" for f in rm_configs]
|
||||
tty.msg("Reverting compiler and repository configuration", *rm_cmds)
|
||||
for path in rm_configs:
|
||||
if os.path.exists(path):
|
||||
@@ -71,19 +71,19 @@ def tutorial(parser, args):
|
||||
|
||||
tty.msg(
|
||||
"Ensuring that the tutorial binary mirror is configured:",
|
||||
"spack mirror add tutorial %s" % tutorial_mirror,
|
||||
f"spack mirror add tutorial {tutorial_mirror}",
|
||||
)
|
||||
mirror_config = syaml_dict()
|
||||
mirror_config["tutorial"] = tutorial_mirror
|
||||
spack.config.set("mirrors", mirror_config, scope="user")
|
||||
|
||||
tty.msg("Ensuring that we trust tutorial binaries", "spack gpg trust %s" % tutorial_key)
|
||||
tty.msg("Ensuring that we trust tutorial binaries", f"spack gpg trust {tutorial_key}")
|
||||
spack.util.gpg.trust(tutorial_key)
|
||||
|
||||
# Note that checkout MUST be last. It changes Spack under our feet.
|
||||
# If you don't put this last, you'll get import errors for the code
|
||||
# that follows (exacerbated by the various lazy singletons we use)
|
||||
tty.msg("Ensuring we're on the releases/v{0}.{1} branch".format(*spack.spack_version_info[:2]))
|
||||
tty.msg(f"Ensuring we're on the {tutorial_branch} branch")
|
||||
git = spack.util.git.git(required=True)
|
||||
with working_dir(spack.paths.prefix):
|
||||
git("checkout", tutorial_branch)
|
||||
|
@@ -103,11 +103,22 @@ def short_msvc_version(self):
|
||||
"""
|
||||
This is the shorthand VCToolset version of form
|
||||
MSVC<short-ver> *NOT* the full version, for that see
|
||||
Msvc.msvc_version
|
||||
Msvc.msvc_version or MSVC.platform_toolset_ver for the
|
||||
raw platform toolset version
|
||||
"""
|
||||
ver = self.msvc_version[:2].joined.string[:3]
|
||||
ver = self.platform_toolset_ver
|
||||
return "MSVC" + ver
|
||||
|
||||
@property
|
||||
def platform_toolset_ver(self):
|
||||
"""
|
||||
This is the platform toolset version of current MSVC compiler
|
||||
i.e. 142.
|
||||
This is different from the VC toolset version as established
|
||||
by `short_msvc_version`
|
||||
"""
|
||||
return self.msvc_version[:2].joined.string[:3]
|
||||
|
||||
@property
|
||||
def cl_version(self):
|
||||
"""Cl toolset version"""
|
||||
|
@@ -64,8 +64,8 @@
|
||||
_active_environment = None
|
||||
|
||||
|
||||
#: path where environments are stored in the spack tree
|
||||
env_path = os.path.join(spack.paths.var_path, "environments")
|
||||
#: default path where environments are stored in the spack tree
|
||||
default_env_path = os.path.join(spack.paths.var_path, "environments")
|
||||
|
||||
|
||||
#: Name of the input yaml file for an environment
|
||||
@@ -80,6 +80,26 @@
|
||||
env_subdir_name = ".spack-env"
|
||||
|
||||
|
||||
def env_root_path():
|
||||
"""Override default root path if the user specified it"""
|
||||
return spack.util.path.canonicalize_path(
|
||||
spack.config.get("config:environments_root", default=default_env_path)
|
||||
)
|
||||
|
||||
|
||||
def check_disallowed_env_config_mods(scopes):
|
||||
for scope in scopes:
|
||||
with spack.config.use_configuration(scope):
|
||||
if spack.config.get("config:environments_root"):
|
||||
raise SpackEnvironmentError(
|
||||
"Spack environments are prohibited from modifying 'config:environments_root' "
|
||||
"because it can make the definition of the environment ill-posed. Please "
|
||||
"remove from your environment and place it in a permanent scope such as "
|
||||
"defaults, system, site, etc."
|
||||
)
|
||||
return scopes
|
||||
|
||||
|
||||
def default_manifest_yaml():
|
||||
"""default spack.yaml file to put in new environments"""
|
||||
return """\
|
||||
@@ -216,7 +236,7 @@ def active_environment():
|
||||
|
||||
def _root(name):
|
||||
"""Non-validating version of root(), to be used internally."""
|
||||
return os.path.join(env_path, name)
|
||||
return os.path.join(env_root_path(), name)
|
||||
|
||||
|
||||
def root(name):
|
||||
@@ -251,10 +271,12 @@ def read(name):
|
||||
|
||||
|
||||
def create(name, init_file=None, with_view=None, keep_relative=False):
|
||||
"""Create a named environment in Spack."""
|
||||
"""Create a managed environment in Spack."""
|
||||
if not os.path.isdir(env_root_path()):
|
||||
fs.mkdirp(env_root_path())
|
||||
validate_env_name(name)
|
||||
if exists(name):
|
||||
raise SpackEnvironmentError("'%s': environment already exists" % name)
|
||||
raise SpackEnvironmentError("'%s': environment already exists at %s" % (name, root(name)))
|
||||
return Environment(root(name), init_file, with_view, keep_relative)
|
||||
|
||||
|
||||
@@ -268,10 +290,10 @@ def all_environment_names():
|
||||
"""List the names of environments that currently exist."""
|
||||
# just return empty if the env path does not exist. A read-only
|
||||
# operation like list should not try to create a directory.
|
||||
if not os.path.exists(env_path):
|
||||
if not os.path.exists(env_root_path()):
|
||||
return []
|
||||
|
||||
candidates = sorted(os.listdir(env_path))
|
||||
candidates = sorted(os.listdir(env_root_path()))
|
||||
names = []
|
||||
for candidate in candidates:
|
||||
yaml_path = os.path.join(_root(candidate), manifest_name)
|
||||
@@ -281,7 +303,7 @@ def all_environment_names():
|
||||
|
||||
|
||||
def all_environments():
|
||||
"""Generator for all named Environments."""
|
||||
"""Generator for all managed Environments."""
|
||||
for name in all_environment_names():
|
||||
yield read(name)
|
||||
|
||||
@@ -849,14 +871,14 @@ def clear(self, re_read=False):
|
||||
@property
|
||||
def internal(self):
|
||||
"""Whether this environment is managed by Spack."""
|
||||
return self.path.startswith(env_path)
|
||||
return self.path.startswith(env_root_path())
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
"""Human-readable representation of the environment.
|
||||
|
||||
This is the path for directory environments, and just the name
|
||||
for named environments.
|
||||
for managed environments.
|
||||
"""
|
||||
if self.internal:
|
||||
return os.path.basename(self.path)
|
||||
@@ -1036,7 +1058,9 @@ def env_file_config_scope(self):
|
||||
|
||||
def config_scopes(self):
|
||||
"""A list of all configuration scopes for this environment."""
|
||||
return self.included_config_scopes() + [self.env_file_config_scope()]
|
||||
return check_disallowed_env_config_mods(
|
||||
self.included_config_scopes() + [self.env_file_config_scope()]
|
||||
)
|
||||
|
||||
def destroy(self):
|
||||
"""Remove this environment from Spack entirely."""
|
||||
|
@@ -459,7 +459,7 @@ def make_argument_parser(**kwargs):
|
||||
dest="env_dir",
|
||||
metavar="DIR",
|
||||
action="store",
|
||||
help="run with an environment directory (ignore named environments)",
|
||||
help="run with an environment directory (ignore managed environments)",
|
||||
)
|
||||
env_group.add_argument(
|
||||
"-E",
|
||||
|
@@ -67,6 +67,7 @@
|
||||
"license_dir": {"type": "string"},
|
||||
"source_cache": {"type": "string"},
|
||||
"misc_cache": {"type": "string"},
|
||||
"environments_root": {"type": "string"},
|
||||
"connect_timeout": {"type": "integer", "minimum": 0},
|
||||
"verify_ssl": {"type": "boolean"},
|
||||
"suppress_gpg_warnings": {"type": "boolean"},
|
||||
|
@@ -566,9 +566,6 @@ def stringify(sym):
|
||||
if isinstance(sym, (list, tuple)):
|
||||
return tuple(stringify(a) for a in sym)
|
||||
|
||||
if str(sym.type) == "Function": # TODO GBB: Find appropriate test for this
|
||||
return tuple(stringify(a) for a in sym.arguments)
|
||||
|
||||
if clingo_cffi:
|
||||
# Clingo w/ CFFI will throw an exception on failure
|
||||
try:
|
||||
@@ -784,7 +781,7 @@ def on_model(model):
|
||||
for sym in best_model:
|
||||
if sym.name not in ("attr", "error", "opt_criterion"):
|
||||
tty.debug(
|
||||
"UNKNOWN SYMBOL: %s%s" % (sym.name, stringify(sym.arguments))
|
||||
"UNKNOWN SYMBOL: %s(%s)" % (sym.name, ", ".join(stringify(sym.arguments)))
|
||||
)
|
||||
|
||||
elif cores:
|
||||
@@ -1593,7 +1590,7 @@ class Body(object):
|
||||
|
||||
return clauses
|
||||
|
||||
def build_version_dict(self):
|
||||
def build_version_dict(self, possible_pkgs):
|
||||
"""Declare any versions in specs not declared in packages."""
|
||||
self.declared_versions = collections.defaultdict(list)
|
||||
self.possible_versions = collections.defaultdict(set)
|
||||
@@ -1601,7 +1598,7 @@ def build_version_dict(self):
|
||||
|
||||
packages_yaml = spack.config.get("packages")
|
||||
packages_yaml = _normalize_packages_yaml(packages_yaml)
|
||||
for pkg_name in self.pkgs:
|
||||
for pkg_name in possible_pkgs:
|
||||
pkg_cls = spack.repo.path.get_pkg_class(pkg_name)
|
||||
|
||||
# All the versions from the corresponding package.py file. Since concepts
|
||||
@@ -1972,11 +1969,11 @@ def define_variant_values(self):
|
||||
for pkg, variant, value in self.variant_values_from_specs:
|
||||
self.gen.fact(fn.variant_possible_value(pkg, variant, value))
|
||||
|
||||
def _facts_from_concrete_spec(self, spec):
|
||||
def _facts_from_concrete_spec(self, spec, possible):
|
||||
# tell the solver about any installed packages that could
|
||||
# be dependencies (don't tell it about the others)
|
||||
h = spec.dag_hash()
|
||||
if spec.name in self.pkgs and h not in self.seen_hashes:
|
||||
if spec.name in possible and h not in self.seen_hashes:
|
||||
self.reusable_and_possible[h] = spec
|
||||
try:
|
||||
# Only consider installed packages for repo we know
|
||||
@@ -2006,12 +2003,12 @@ def _facts_from_concrete_spec(self, spec):
|
||||
# add the hash to the one seen so far
|
||||
self.seen_hashes.add(h)
|
||||
|
||||
def define_concrete_input_specs(self, specs):
|
||||
def define_concrete_input_specs(self, specs, possible):
|
||||
# any concrete specs in the input spec list
|
||||
for input_spec in specs:
|
||||
for spec in input_spec.traverse():
|
||||
if spec.concrete:
|
||||
self._facts_from_concrete_spec(spec)
|
||||
self._facts_from_concrete_spec(spec, possible)
|
||||
|
||||
def setup(self, driver, specs, reuse=None):
|
||||
"""Generate an ASP program with relevant constraints for specs.
|
||||
@@ -2032,28 +2029,20 @@ def setup(self, driver, specs, reuse=None):
|
||||
|
||||
# get list of all possible dependencies
|
||||
self.possible_virtuals = set(x.name for x in specs if x.virtual)
|
||||
self.pkgs = set(
|
||||
spack.package_base.possible_dependencies(
|
||||
*specs, virtuals=self.possible_virtuals, deptype=spack.dependency.all_deptypes
|
||||
)
|
||||
)
|
||||
|
||||
# TODO GBB: This only gets packages that can only appear as pure build deps,
|
||||
# need to rethink it to get packages that can appear as link/run or as pure build deps
|
||||
self.build_pkgs = self.pkgs - set(
|
||||
spack.package_base.possible_dependencies(
|
||||
*specs, virtuals=self.possible_virtuals, deptype=("link", "run")
|
||||
)
|
||||
possible = spack.package_base.possible_dependencies(
|
||||
*specs, virtuals=self.possible_virtuals, deptype=spack.dependency.all_deptypes
|
||||
)
|
||||
|
||||
# Fail if we already know an unreachable node is requested
|
||||
for spec in specs:
|
||||
missing_deps = [
|
||||
str(d) for d in spec.traverse() if d.name not in self.pkgs and not d.virtual
|
||||
str(d) for d in spec.traverse() if d.name not in possible and not d.virtual
|
||||
]
|
||||
if missing_deps:
|
||||
raise spack.spec.InvalidDependencyError(spec.name, missing_deps)
|
||||
|
||||
self.pkgs = set(possible)
|
||||
|
||||
# driver is used by all the functions below to add facts and
|
||||
# rules to generate an ASP program.
|
||||
self.gen = driver
|
||||
@@ -2077,18 +2066,18 @@ def setup(self, driver, specs, reuse=None):
|
||||
self.possible_compilers = self.generate_possible_compilers(specs)
|
||||
|
||||
# traverse all specs and packages to build dict of possible versions
|
||||
self.build_version_dict()
|
||||
self.build_version_dict(possible)
|
||||
self.add_concrete_versions_from_specs(specs, version_provenance.spec)
|
||||
self.add_concrete_versions_from_specs(dev_specs, version_provenance.dev_spec)
|
||||
|
||||
self.gen.h1("Concrete input spec definitions")
|
||||
self.define_concrete_input_specs(specs)
|
||||
self.define_concrete_input_specs(specs, possible)
|
||||
|
||||
if reuse:
|
||||
self.gen.h1("Reusable specs")
|
||||
self.gen.fact(fn.optimize_for_reuse())
|
||||
for reusable_spec in reuse:
|
||||
self._facts_from_concrete_spec(reusable_spec)
|
||||
self._facts_from_concrete_spec(reusable_spec, possible)
|
||||
|
||||
self.gen.h1("General Constraints")
|
||||
self.available_compilers()
|
||||
@@ -2114,10 +2103,6 @@ def setup(self, driver, specs, reuse=None):
|
||||
self.preferred_variants(pkg)
|
||||
self.target_preferences(pkg)
|
||||
|
||||
self.gen.h1("Package Alternates")
|
||||
for pkg in sorted(self.pkgs): # TODO GBB: Can we cleverly reduce the size of this?
|
||||
self.gen.fact(fn.name_mangled(pkg, 3))
|
||||
|
||||
# Inject dev_path from environment
|
||||
for ds in dev_specs:
|
||||
self.condition(spack.spec.Spec(ds.name), ds, msg="%s is a develop spec" % ds.name)
|
||||
@@ -2191,10 +2176,8 @@ def hash(self, pkg, h):
|
||||
self._specs[pkg] = self._hash_lookup[h]
|
||||
|
||||
def node(self, pkg):
|
||||
print(pkg)
|
||||
name = pkg[0] if isinstance(pkg, tuple) else pkg
|
||||
if pkg not in self._specs:
|
||||
self._specs[pkg] = spack.spec.Spec(name)
|
||||
self._specs[pkg] = spack.spec.Spec(pkg)
|
||||
|
||||
def _arch(self, pkg):
|
||||
arch = self._specs[pkg].architecture
|
||||
@@ -2387,8 +2370,7 @@ def build_specs(self, function_tuples):
|
||||
# predicates on virtual packages.
|
||||
if name != "error":
|
||||
pkg = args[0]
|
||||
pkg_name = pkg[0] if isinstance(pkg, tuple) else pkg
|
||||
if spack.repo.path.is_virtual(pkg_name):
|
||||
if spack.repo.path.is_virtual(pkg):
|
||||
continue
|
||||
|
||||
# if we've already gotten a concrete spec for this pkg,
|
||||
|
@@ -40,167 +40,6 @@ attr(Name, A1, A2, A3, A4) :- literal(LiteralID, Name, A1, A2, A3, A4), literal_
|
||||
#defined literal/5.
|
||||
#defined literal/6.
|
||||
|
||||
%--------------------------------------------------
|
||||
% Map package attributes to mangled names
|
||||
%--------------------------------------------------
|
||||
|
||||
%package_attr((Name, N), A1) :- package_attr(Name, A1), name_mangled(name, M, N)
|
||||
%package_attr((Name, N), A1, A2) :- package_attr(Name, A1, A2), name_mangled(name, M, N)
|
||||
%package_attr((Name, N), A1, A2, A3) :- package_attr(Name, A1, A2, A3), name_mangled(name, M, N)
|
||||
%package_attr((Name, N), A1, A2, A3, A4) :- package_attr(Name, A1, A2, A3, A4), name_mangled(name, M, N)
|
||||
|
||||
package_alternate(Name, (Name, N)) :- name_mangled(Name, M), N=1..M.
|
||||
package_alternate(Package, Package) :- name_mangled(Package, _). %TODO GBB: stand in for "name exists"
|
||||
|
||||
version_declared((Package, N), Version, Weight, Origin)
|
||||
:- version_declared(Package, Version, Weight, Origin),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
version_equivalent((Package, N), Version, RefVersion)
|
||||
:- version_equivalent(Package, Version, RefVersion),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
deprecated_version((Package, N), Version)
|
||||
:- deprecated_version(Package, Version),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
conflict((Package, N), (Trigger, N), (Constraint, N), Msg)
|
||||
:- conflict(Package, Trigger, Constraint, Msg),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
node_compiler_preference((Package, N), Compiler, CompilerVersion, Weight)
|
||||
:- node_compiler_preference(Package, Compiler, CompilerVersion, Weight),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
variant((Package, N), Variant)
|
||||
:- variant(Package, Variant),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
variant_condition((Condition, N), (Package, N), Variant)
|
||||
:- variant_condition(Condition, Package, Variant),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
variant_single_value((Package, N), Name)
|
||||
:- variant_single_value(Package, Name),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
variant_default_value_from_package_py((Package, N), Variant, Value)
|
||||
:- variant_default_value_from_package_py(Package, Variant, Value),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
variant_value_from_disjoint_sets((Package, N), Variant, Value, SetID)
|
||||
:- variant_value_from_disjoint_sets(Package, Variant, Value, SetID),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
variant_possible_value((Package, N), Variant, Value)
|
||||
:- variant_possible_value(Package, Variant, Value),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
variant_sticky((Package, N), Variant)
|
||||
:- variant_sticky(Package, Variant),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
pkg_provider_preference((Package, N), Virtual, Provider, Weight)
|
||||
:- pkg_provider_preference(Package, Virtual, Provider, Weight),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
condition((Condition, N))
|
||||
:- condition(Condition),
|
||||
condition_requirement((Condition, N), _, _).
|
||||
condition((Condition, N))
|
||||
:- condition(Condition),
|
||||
condition_requirement((Condition, N), _, _, _).
|
||||
condition((Condition, N))
|
||||
:- condition(Condition),
|
||||
condition_requirement((Condition, N), _, _, _, _).
|
||||
condition((Condition, N))
|
||||
:- condition(Condition),
|
||||
condition_requirement((Condition, N), _, _, _, _).
|
||||
|
||||
condition_requirement((Condition, N), Name, (Package, N))
|
||||
:- condition_requirement(Condition, Name, Package),
|
||||
package_alternate(Package, (Package, N)).
|
||||
condition_requirement((Condition, N), Name, (Package, N), A2)
|
||||
:- condition_requirement(Condition, Name, Package, A2),
|
||||
package_alternate(Package, (Package, N)).
|
||||
condition_requirement((Condition, N), Name, (Package, N), A2, A3)
|
||||
:- condition_requirement(Condition, Name, Package, A2, A3),
|
||||
package_alternate(Package, (Package, N)).
|
||||
condition_requirement((Condition, N), Name, (Package, N), A2, A3, A4)
|
||||
:- condition_requirement(Condition, Name, Package, A2, A3, A4),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
imposed_constraint((Condition, N), Name, (Package, N))
|
||||
:- imposed_constraint(Condition, Name, Package),
|
||||
package_alternate(Package, (Package, N)).
|
||||
imposed_constraint((Condition, N), Name, (Package, N), A2)
|
||||
:- imposed_constraint(Condition, Name, Package, A2),
|
||||
package_alternate(Package, (Package, N)).
|
||||
imposed_constraint((Condition, N), Name, (Package, N), A2, A3)
|
||||
:- imposed_constraint(Condition, Name, Package, A2, A3),
|
||||
package_alternate(Package, (Package, N)).
|
||||
imposed_constraint((Condition, N), Name, (Package, N), A2, A3, A4)
|
||||
:- imposed_constraint(Condition, Name, Package, A2, A3, A4),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
possible_provider((Package, N), Virtual)
|
||||
:- possible_provider(Package, Virtual),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
provider_condition((Condition, N), (Package, N), Virtual)
|
||||
:- provider_condition(Condition, Package, Virtual),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
dependency_condition((Condition, N), (Package, N), Dependency)
|
||||
:- dependency_condition(Condition, Package, Dependency),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
dependency_type((Condition, N), Type)
|
||||
:- dependency_condition((Condition, N), (_, N), _),
|
||||
dependency_type(Condition, Type).
|
||||
|
||||
% Do we need one for default_provider_preference?
|
||||
|
||||
requirement_group((Package, N), RGroupID)
|
||||
:- requirement_group(Package, RGroupID),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
requirement_policy((Package, N), RGroupID, Policy)
|
||||
:- requirement_policy(Package, RGroupID, Policy),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
requirement_group_member((MemberID, N), (Package, N), RGroupID)
|
||||
:- requirement_group_member(MemberID, Package, RGroupID),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
requirement_has_weight((MemberID, N), Weight)
|
||||
:- requirement_has_weight(MemberID, Weight),
|
||||
requirement_group_member((MemberID, N), (_, N), _).
|
||||
|
||||
buildable_false((Package, N))
|
||||
:- buildable_false(Package),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
possible_external((Condition, N), (Package, N), Index)
|
||||
:- possible_external(Condition, Package, Index),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
variant_default_value_from_packages_yaml((Package, N), Variant, Value)
|
||||
:- variant_default_value_from_packages_yaml(Package, Variant, Value),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
target_weight((Package, N), Target, Weight)
|
||||
:- target_weight(Package, Target, Weight),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
version_satisfies((Package, N), Constraint, Version)
|
||||
:- version_satisfies(Package, Constraint, Version),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
installed_hash((Package, N), Hash)
|
||||
:- installed_hash(Package, Hash),
|
||||
package_alternate(Package, (Package, N)).
|
||||
|
||||
%-----------------------------------------------------------------------------
|
||||
% Version semantics
|
||||
%-----------------------------------------------------------------------------
|
||||
@@ -295,21 +134,18 @@ possible_version_weight(Package, Weight)
|
||||
% versions, virtual nodes with version constraints require this rule to be
|
||||
% able to choose versions
|
||||
{ attr("version", Package, Version) : version_satisfies(Package, Constraint, Version) }
|
||||
:- attr("node_version_satisfies", Package, Constraint),
|
||||
attr("node", Package).
|
||||
:- attr("node_version_satisfies", Package, Constraint).
|
||||
|
||||
% If there is at least a version that satisfy the constraint, impose a lower
|
||||
% bound on the choice rule to avoid false positives with the error below
|
||||
1 { attr("version", Package, Version) : version_satisfies(Package, Constraint, Version) }
|
||||
:- attr("node_version_satisfies", Package, Constraint),
|
||||
version_satisfies(Package, Constraint, _),
|
||||
attr("node", Package).
|
||||
version_satisfies(Package, Constraint, _).
|
||||
|
||||
% More specific error message if the version cannot satisfy some constraint
|
||||
% Otherwise covered by `no_version_error` and `versions_conflict_error`.
|
||||
error(1, "No valid version for '{0}' satisfies '@{1}'", Package, Constraint)
|
||||
:- attr("node_version_satisfies", Package, Constraint),
|
||||
attr("node", Package),
|
||||
C = #count{ Version : attr("version", Package, Version), version_satisfies(Package, Constraint, Version)},
|
||||
C < 1.
|
||||
|
||||
@@ -404,19 +240,6 @@ do_not_impose(ID) :-
|
||||
% They're only triggered if the associated dependnecy condition holds.
|
||||
attr("depends_on", Package, Dependency, Type)
|
||||
:- dependency_holds(Package, Dependency, Type),
|
||||
Type != "build",
|
||||
not virtual(Dependency).
|
||||
|
||||
attr("depends_on", Package, Dependency, "build")
|
||||
:- dependency_holds(Package, Dependency, "build"),
|
||||
dependency_holds(Package, Dependency, Type),
|
||||
Type != "build",
|
||||
not virtual(Dependency).
|
||||
|
||||
1 { attr("depends_on", Package, DepMangled, "build") : package_alternate(Dependency, DepMangled) } 1
|
||||
:- dependency_holds(Package, Dependency, "build"),
|
||||
not dependency_holds(Package, Dependency, "link"),
|
||||
not dependency_holds(Package, Dependency, "run"),
|
||||
not virtual(Dependency).
|
||||
|
||||
% every root must be a node
|
||||
@@ -466,24 +289,9 @@ error(0, Msg) :- attr("node", Package),
|
||||
% provider for that virtual then it depends on the provider
|
||||
attr("depends_on", Package, Provider, Type)
|
||||
:- dependency_holds(Package, Virtual, Type),
|
||||
Type != "build",
|
||||
provider(Provider, Virtual),
|
||||
not external(Package).
|
||||
|
||||
attr("depends_on", Package, Provider, "build")
|
||||
:- dependency_holds(Package, Virtual, "build"),
|
||||
dependency_holds(Package, Virtual, Type),
|
||||
Type != "build",
|
||||
provider(Provider, Virtual),
|
||||
not external(Package).
|
||||
|
||||
1 { attr("depends_on", Package, ProviderMangled, "build") : package_alternate(Provider, ProviderMangled) } 1
|
||||
:- dependency_holds(Package, Virtual, "build"),
|
||||
not dependency_holds(Package, Virtual, "link"),
|
||||
not dependency_holds(Package, Virtual, "run"),
|
||||
provider(Provider, Virtual),
|
||||
not external(Package).
|
||||
|
||||
% dependencies on virtuals also imply that the virtual is a virtual node
|
||||
attr("virtual_node", Virtual)
|
||||
:- dependency_holds(Package, Virtual, Type),
|
||||
@@ -1324,9 +1132,6 @@ opt_criterion(100, "number of packages to build (vs. reuse)").
|
||||
#minimize { 1@100,Package : build(Package), optimize_for_reuse() }.
|
||||
#defined optimize_for_reuse/0.
|
||||
|
||||
#minimize { 0@99: #true }.
|
||||
#minimize { PSID@99,Package,PSID : attr("node", (Package, PSID)) }.
|
||||
|
||||
% A condition group specifies one or more specs that must be satisfied.
|
||||
% Specs declared first are preferred, so we assign increasing weights and
|
||||
% minimize the weights.
|
||||
|
@@ -26,15 +26,3 @@
|
||||
#show error/7.
|
||||
|
||||
% debug
|
||||
#show provider/2.
|
||||
#show virtual_condition_holds/2.
|
||||
#show provider_condition/3.
|
||||
#show possible_provider/2.
|
||||
#show dependency_condition/3.
|
||||
#show condition_holds/1.
|
||||
#show condition_requirement/3.
|
||||
#show condition_requirement/4.
|
||||
#show condition_requirement/5.
|
||||
#show condition_requirement/6.
|
||||
#show dependency_holds/3.
|
||||
#show dependency_type/2.
|
@@ -9,8 +9,7 @@
|
||||
import spack.environment as ev
|
||||
from spack.main import SpackCommand
|
||||
|
||||
# everything here uses the mock_env_path
|
||||
pytestmark = pytest.mark.usefixtures("mutable_mock_env_path", "config", "mutable_mock_repo")
|
||||
pytestmark = pytest.mark.usefixtures("config", "mutable_mock_repo")
|
||||
|
||||
env = SpackCommand("env")
|
||||
add = SpackCommand("add")
|
||||
@@ -21,7 +20,7 @@
|
||||
|
||||
|
||||
@pytest.mark.parametrize("unify", unification_strategies)
|
||||
def test_concretize_all_test_dependencies(unify):
|
||||
def test_concretize_all_test_dependencies(unify, mutable_mock_env_path):
|
||||
"""Check all test dependencies are concretized."""
|
||||
env("create", "test")
|
||||
|
||||
@@ -33,7 +32,7 @@ def test_concretize_all_test_dependencies(unify):
|
||||
|
||||
|
||||
@pytest.mark.parametrize("unify", unification_strategies)
|
||||
def test_concretize_root_test_dependencies_not_recursive(unify):
|
||||
def test_concretize_root_test_dependencies_not_recursive(unify, mutable_mock_env_path):
|
||||
"""Check that test dependencies are not concretized recursively."""
|
||||
env("create", "test")
|
||||
|
||||
@@ -45,7 +44,7 @@ def test_concretize_root_test_dependencies_not_recursive(unify):
|
||||
|
||||
|
||||
@pytest.mark.parametrize("unify", unification_strategies)
|
||||
def test_concretize_root_test_dependencies_are_concretized(unify):
|
||||
def test_concretize_root_test_dependencies_are_concretized(unify, mutable_mock_env_path):
|
||||
"""Check that root test dependencies are concretized."""
|
||||
env("create", "test")
|
||||
|
||||
|
@@ -3236,3 +3236,20 @@ def test_relative_view_path_on_command_line_is_made_absolute(tmpdir, config):
|
||||
env("create", "--with-view", "view", "--dir", "env")
|
||||
environment = ev.Environment(os.path.join(".", "env"))
|
||||
assert os.path.samefile("view", environment.default_view.root)
|
||||
|
||||
|
||||
def test_environment_created_in_users_location(mutable_config, tmpdir):
|
||||
"""Test that an environment is created in a location based on the config"""
|
||||
spack.config.set("config:environments_root", str(tmpdir.join("envs")))
|
||||
env_dir = spack.config.get("config:environments_root")
|
||||
|
||||
assert tmpdir.strpath in env_dir
|
||||
assert not os.path.isdir(env_dir)
|
||||
|
||||
dir_name = "user_env"
|
||||
env("create", dir_name)
|
||||
out = env("list")
|
||||
|
||||
assert dir_name in out
|
||||
assert env_dir in ev.root(dir_name)
|
||||
assert os.path.isdir(os.path.join(env_dir, dir_name))
|
||||
|
@@ -1187,3 +1187,16 @@ def test_padded_install_runtests_root(install_mockery_mutable_config, mock_fetch
|
||||
spack.config.set("config:install_tree:padded_length", 255)
|
||||
output = install("--test=root", "--no-cache", "test-build-callbacks", fail_on_error=False)
|
||||
assert output.count("method not implemented") == 1
|
||||
|
||||
|
||||
@pytest.mark.regression("35337")
|
||||
def test_report_filename_for_cdash(install_mockery_mutable_config, mock_fetch):
|
||||
"""Test that the temporary file used to write the XML for CDash is not the upload URL"""
|
||||
parser = argparse.ArgumentParser()
|
||||
spack.cmd.install.setup_parser(parser)
|
||||
args = parser.parse_args(
|
||||
["--cdash-upload-url", "https://blahblah/submit.php?project=debugging", "a"]
|
||||
)
|
||||
_, specs = spack.cmd.install.specs_from_cli(args, {})
|
||||
filename = spack.cmd.install.report_filename(args, specs)
|
||||
assert filename != "https://blahblah/submit.php?project=debugging"
|
||||
|
@@ -49,6 +49,8 @@ def test_all(mock_packages, capfd):
|
||||
"user2,",
|
||||
"user3",
|
||||
"py-extension1:",
|
||||
"adamjstewart,",
|
||||
"pradyunsg,",
|
||||
"user1,",
|
||||
"user2",
|
||||
]
|
||||
@@ -66,6 +68,10 @@ def test_all_by_user(mock_packages, capfd):
|
||||
with capfd.disabled():
|
||||
out = split(maintainers("--all", "--by-user"))
|
||||
assert out == [
|
||||
"adamjstewart:",
|
||||
"py-extension1",
|
||||
"pradyunsg:",
|
||||
"py-extension1",
|
||||
"user0:",
|
||||
"maintainers-3",
|
||||
"user1:",
|
||||
|
@@ -319,3 +319,26 @@ def test_test_results_status(mock_packages, mock_test_stage, status, expected):
|
||||
else:
|
||||
assert status in results
|
||||
assert expected in results
|
||||
|
||||
|
||||
@pytest.mark.regression("35337")
|
||||
def test_report_filename_for_cdash(install_mockery_mutable_config, mock_fetch):
|
||||
"""Test that the temporary file used to write Testing.xml for CDash is not the upload URL"""
|
||||
name = "trivial"
|
||||
spec = spack.spec.Spec("trivial-smoke-test").concretized()
|
||||
suite = spack.install_test.TestSuite([spec], name)
|
||||
suite.ensure_stage()
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
spack.cmd.test.setup_parser(parser)
|
||||
args = parser.parse_args(
|
||||
[
|
||||
"run",
|
||||
"--cdash-upload-url=https://blahblah/submit.php?project=debugging",
|
||||
"trivial-smoke-test",
|
||||
]
|
||||
)
|
||||
|
||||
spack.cmd.common.arguments.sanitize_reporter_options(args)
|
||||
filename = spack.cmd.test.report_filename(args, suite)
|
||||
assert filename != "https://blahblah/submit.php?project=debugging"
|
||||
|
@@ -223,7 +223,7 @@ class TestUninstallFromEnv(object):
|
||||
concretize = SpackCommand("concretize")
|
||||
find = SpackCommand("find")
|
||||
|
||||
@pytest.fixture
|
||||
@pytest.fixture(scope="function")
|
||||
def environment_setup(
|
||||
self, mutable_mock_env_path, config, mock_packages, mutable_database, install_mockery
|
||||
):
|
||||
@@ -242,6 +242,9 @@ def environment_setup(
|
||||
TestUninstallFromEnv.add("dt-diamond-bottom")
|
||||
TestUninstallFromEnv.concretize()
|
||||
install("--fake")
|
||||
yield "environment_setup"
|
||||
TestUninstallFromEnv.env("rm", "e1", "-y")
|
||||
TestUninstallFromEnv.env("rm", "e2", "-y")
|
||||
|
||||
def test_basic_env_sanity(self, environment_setup):
|
||||
for env_name in ["e1", "e2"]:
|
||||
|
@@ -1551,14 +1551,14 @@ def get_rev():
|
||||
yield t
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def mutable_mock_env_path(tmpdir_factory):
|
||||
@pytest.fixture(scope="function")
|
||||
def mutable_mock_env_path(tmpdir_factory, mutable_config):
|
||||
"""Fixture for mocking the internal spack environments directory."""
|
||||
saved_path = ev.environment.env_path
|
||||
saved_path = ev.environment.default_env_path
|
||||
mock_path = tmpdir_factory.mktemp("mock-env-path")
|
||||
ev.environment.env_path = str(mock_path)
|
||||
ev.environment.default_env_path = str(mock_path)
|
||||
yield mock_path
|
||||
ev.environment.env_path = saved_path
|
||||
ev.environment.default_env_path = saved_path
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
|
@@ -76,7 +76,7 @@ def test_error_on_anonymous_dependency(config, mock_packages):
|
||||
[
|
||||
("maintainers-1", ["user1", "user2"]),
|
||||
# Reset from PythonPackage
|
||||
("py-extension1", ["user1", "user2"]),
|
||||
("py-extension1", ["adamjstewart", "pradyunsg", "user1", "user2"]),
|
||||
# Extends maintainers-1
|
||||
("maintainers-3", ["user0", "user1", "user2", "user3"]),
|
||||
],
|
||||
|
@@ -143,3 +143,21 @@ def test_user_view_path_is_not_canonicalized_in_yaml(tmpdir, config):
|
||||
snd = ev.Environment(env_path)
|
||||
assert snd.yaml["spack"]["view"] == view
|
||||
assert os.path.samefile(snd.default_view.root, absolute_view)
|
||||
|
||||
|
||||
def test_environment_cant_modify_environments_root(tmpdir):
|
||||
filename = str(tmpdir.join("spack.yaml"))
|
||||
with open(filename, "w") as f:
|
||||
f.write(
|
||||
"""\
|
||||
spack:
|
||||
config:
|
||||
environments_root: /a/black/hole
|
||||
view: false
|
||||
specs: []
|
||||
"""
|
||||
)
|
||||
with tmpdir.as_cwd():
|
||||
with pytest.raises(ev.SpackEnvironmentError):
|
||||
e = ev.Environment(tmpdir.strpath)
|
||||
ev.activate(e)
|
||||
|
@@ -238,7 +238,7 @@ class HasManyMetadataAttributes:
|
||||
url = "https://example.com/foo.tar.gz"
|
||||
git = "https://example.com/foo/bar.git"
|
||||
|
||||
maintainers = ["alice", "bob"]
|
||||
maintainers("alice", "bob")
|
||||
tags = ["foo", "bar", "baz"]
|
||||
|
||||
depends_on("foo")
|
||||
|
@@ -912,7 +912,7 @@ def inspect_path(root, inspections, exclude=None):
|
||||
env = EnvironmentModifications()
|
||||
# Inspect the prefix to check for the existence of common directories
|
||||
for relative_path, variables in inspections.items():
|
||||
expected = os.path.join(root, relative_path)
|
||||
expected = os.path.join(root, os.path.normpath(relative_path))
|
||||
|
||||
if os.path.isdir(expected) and not exclude(expected):
|
||||
for variable in variables:
|
||||
|
@@ -7,10 +7,22 @@ default:
|
||||
# Job templates
|
||||
########################################
|
||||
|
||||
.pr:
|
||||
.aws-pr-creds:
|
||||
variables:
|
||||
AWS_ACCESS_KEY_ID: ${PR_MIRRORS_AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${PR_MIRRORS_AWS_SECRET_ACCESS_KEY}
|
||||
|
||||
.aws-protected-creds:
|
||||
variables:
|
||||
AWS_ACCESS_KEY_ID: ${PROTECTED_MIRRORS_AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${PROTECTED_MIRRORS_AWS_SECRET_ACCESS_KEY}
|
||||
|
||||
.pr-refs:
|
||||
only:
|
||||
- /^pr[\d]+_.*$/
|
||||
- /^github\/pr[\d]+_.*$/
|
||||
|
||||
.pr:
|
||||
extends: [ ".pr-refs" ]
|
||||
variables:
|
||||
SPACK_BUILDCACHE_DESTINATION: "s3://spack-binaries-prs/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME}"
|
||||
SPACK_PIPELINE_TYPE: "spack_pull_request"
|
||||
@@ -21,7 +33,6 @@ default:
|
||||
- /^develop$/
|
||||
- /^releases\/v.*/
|
||||
- /^v.*/
|
||||
- /^github\/develop$/
|
||||
|
||||
.protected:
|
||||
extends: [ ".protected-refs" ]
|
||||
@@ -30,7 +41,7 @@ default:
|
||||
SPACK_COPY_BUILDCACHE: "s3://spack-binaries/${CI_COMMIT_REF_NAME}"
|
||||
SPACK_PIPELINE_TYPE: "spack_protected_branch"
|
||||
|
||||
.generate:
|
||||
.generate-base:
|
||||
stage: generate
|
||||
script:
|
||||
- uname -a || true
|
||||
@@ -49,7 +60,6 @@ default:
|
||||
artifacts:
|
||||
paths:
|
||||
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
|
||||
tags: ["spack", "aws", "public", "medium", "x86_64"]
|
||||
variables:
|
||||
KUBERNETES_CPU_REQUEST: 4000m
|
||||
KUBERNETES_MEMORY_REQUEST: 16G
|
||||
@@ -58,12 +68,15 @@ default:
|
||||
retry:
|
||||
max: 2
|
||||
when:
|
||||
- runner_system_failure
|
||||
- stuck_or_timeout_failure
|
||||
- always
|
||||
|
||||
.generate:
|
||||
extends: [ ".generate-base" ]
|
||||
tags: ["spack", "public", "medium", "x86_64"]
|
||||
|
||||
.generate-aarch64:
|
||||
extends: [ ".generate" ]
|
||||
tags: ["spack", "aws", "public", "medium", "aarch64"]
|
||||
tags: ["spack", "public", "medium", "aarch64"]
|
||||
|
||||
.pr-generate:
|
||||
extends: [ ".pr", ".generate" ]
|
||||
@@ -81,20 +94,14 @@ default:
|
||||
stage: build
|
||||
|
||||
.pr-build:
|
||||
extends: [ ".pr", ".build" ]
|
||||
variables:
|
||||
AWS_ACCESS_KEY_ID: ${PR_MIRRORS_AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${PR_MIRRORS_AWS_SECRET_ACCESS_KEY}
|
||||
extends: [ ".pr", ".build", ".aws-pr-creds" ]
|
||||
|
||||
.protected-build:
|
||||
extends: [ ".protected", ".build" ]
|
||||
variables:
|
||||
AWS_ACCESS_KEY_ID: ${PROTECTED_MIRRORS_AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${PROTECTED_MIRRORS_AWS_SECRET_ACCESS_KEY}
|
||||
extends: [ ".protected", ".build", ".aws-protected-creds" ]
|
||||
|
||||
protected-publish:
|
||||
stage: publish
|
||||
extends: [ ".protected" ]
|
||||
extends: [ ".protected", ".aws-protected-creds" ]
|
||||
image: "ghcr.io/spack/python-aws-bash:0.0.1"
|
||||
tags: ["spack", "public", "medium", "aws", "x86_64"]
|
||||
retry:
|
||||
@@ -199,7 +206,6 @@ protected-publish:
|
||||
# variables:
|
||||
# AWS_ACCESS_KEY_ID: ${PR_MIRRORS_AWS_ACCESS_KEY_ID}
|
||||
# AWS_SECRET_ACCESS_KEY: ${PR_MIRRORS_AWS_SECRET_ACCESS_KEY}
|
||||
|
||||
# .mac-protected-build:
|
||||
# extends: [ ".mac-protected", ".build" ]
|
||||
# variables:
|
||||
@@ -317,6 +323,43 @@ e4s-protected-build:
|
||||
- artifacts: True
|
||||
job: e4s-protected-generate
|
||||
|
||||
########################################
|
||||
# GPU Testing Pipeline
|
||||
########################################
|
||||
.gpu-tests:
|
||||
variables:
|
||||
SPACK_CI_STACK_NAME: gpu-tests
|
||||
|
||||
gpu-tests-pr-generate:
|
||||
extends: [ ".gpu-tests", ".pr-generate"]
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64:2023-01-01
|
||||
|
||||
gpu-tests-protected-generate:
|
||||
extends: [ ".gpu-tests", ".protected-generate"]
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64:2023-01-01
|
||||
|
||||
gpu-tests-pr-build:
|
||||
extends: [ ".gpu-tests", ".pr-build" ]
|
||||
trigger:
|
||||
include:
|
||||
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
||||
job: gpu-tests-pr-generate
|
||||
strategy: depend
|
||||
needs:
|
||||
- artifacts: True
|
||||
job: gpu-tests-pr-generate
|
||||
|
||||
gpu-tests-protected-build:
|
||||
extends: [ ".gpu-tests", ".protected-build" ]
|
||||
trigger:
|
||||
include:
|
||||
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
||||
job: gpu-tests-protected-generate
|
||||
strategy: depend
|
||||
needs:
|
||||
- artifacts: True
|
||||
job: gpu-tests-protected-generate
|
||||
|
||||
########################################
|
||||
# E4S OneAPI Pipeline
|
||||
########################################
|
||||
@@ -326,11 +369,11 @@ e4s-protected-build:
|
||||
|
||||
e4s-oneapi-pr-generate:
|
||||
extends: [ ".e4s-oneapi", ".pr-generate"]
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64-oneapi:2022-07-01
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64-oneapi:2023-01-01
|
||||
|
||||
e4s-oneapi-protected-generate:
|
||||
extends: [ ".e4s-oneapi", ".protected-generate"]
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64-oneapi:2022-07-01
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64-oneapi:2023-01-01
|
||||
|
||||
e4s-oneapi-pr-build:
|
||||
extends: [ ".e4s-oneapi", ".pr-build" ]
|
||||
@@ -357,41 +400,41 @@ e4s-oneapi-protected-build:
|
||||
########################################
|
||||
# E4S on Power
|
||||
########################################
|
||||
# .power-e4s-generate-tags-and-image:
|
||||
# image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu20.04-runner-ppc64le:2021-07-01", "entrypoint": [""] }
|
||||
# tags: ["spack", "public", "medium", "ppc64le"]
|
||||
.e4s-power-generate-tags-and-image:
|
||||
image: { "name": "ecpe4s/ubuntu20.04-runner-ppc64le:2023-01-01", "entrypoint": [""] }
|
||||
tags: ["spack", "public", "large", "ppc64le"]
|
||||
|
||||
# .e4s-on-power:
|
||||
# variables:
|
||||
# SPACK_CI_STACK_NAME: e4s-on-power
|
||||
.e4s-power:
|
||||
variables:
|
||||
SPACK_CI_STACK_NAME: e4s-power
|
||||
|
||||
# e4s-on-power-pr-generate:
|
||||
# extends: [ ".e4s-on-power", ".pr-generate", ".power-e4s-generate-tags-and-image"]
|
||||
e4s-power-pr-generate:
|
||||
extends: [ ".e4s-power", ".pr-generate", ".e4s-power-generate-tags-and-image"]
|
||||
|
||||
# e4s-on-power-protected-generate:
|
||||
# extends: [ ".e4s-on-power", ".protected-generate", ".power-e4s-generate-tags-and-image"]
|
||||
e4s-power-protected-generate:
|
||||
extends: [ ".e4s-power", ".protected-generate", ".e4s-power-generate-tags-and-image"]
|
||||
|
||||
# e4s-on-power-pr-build:
|
||||
# extends: [ ".e4s-on-power", ".pr-build" ]
|
||||
# trigger:
|
||||
# include:
|
||||
# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
||||
# job: e4s-on-power-pr-generate
|
||||
# strategy: depend
|
||||
# needs:
|
||||
# - artifacts: True
|
||||
# job: e4s-on-power-pr-generate
|
||||
e4s-power-pr-build:
|
||||
extends: [ ".e4s-power", ".pr-build" ]
|
||||
trigger:
|
||||
include:
|
||||
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
||||
job: e4s-power-pr-generate
|
||||
strategy: depend
|
||||
needs:
|
||||
- artifacts: True
|
||||
job: e4s-power-pr-generate
|
||||
|
||||
# e4s-on-power-protected-build:
|
||||
# extends: [ ".e4s-on-power", ".protected-build" ]
|
||||
# trigger:
|
||||
# include:
|
||||
# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
||||
# job: e4s-on-power-protected-generate
|
||||
# strategy: depend
|
||||
# needs:
|
||||
# - artifacts: True
|
||||
# job: e4s-on-power-protected-generate
|
||||
e4s-power-protected-build:
|
||||
extends: [ ".e4s-power", ".protected-build" ]
|
||||
trigger:
|
||||
include:
|
||||
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
||||
job: e4s-power-protected-generate
|
||||
strategy: depend
|
||||
needs:
|
||||
- artifacts: True
|
||||
job: e4s-power-protected-generate
|
||||
|
||||
#########################################
|
||||
# Build tests for different build-systems
|
||||
|
@@ -1,269 +0,0 @@
|
||||
spack:
|
||||
view: false
|
||||
|
||||
concretizer:
|
||||
reuse: false
|
||||
unify: false
|
||||
|
||||
config:
|
||||
concretizer: clingo
|
||||
install_tree:
|
||||
root: /home/software/spack
|
||||
padded_length: 512
|
||||
projections:
|
||||
all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
|
||||
|
||||
packages:
|
||||
all:
|
||||
compiler:
|
||||
- gcc@9.3.0
|
||||
providers:
|
||||
blas:
|
||||
- openblas
|
||||
mpi:
|
||||
- mpich
|
||||
target:
|
||||
- ppc64le
|
||||
variants: +mpi
|
||||
binutils:
|
||||
variants: +ld +gold +headers +libiberty ~nls +plugins
|
||||
version:
|
||||
- 2.36.1
|
||||
doxygen:
|
||||
version:
|
||||
- 1.8.20
|
||||
elfutils:
|
||||
variants: +bzip2 ~nls +xz
|
||||
hdf5:
|
||||
variants: +fortran +hl +shared api=v18
|
||||
version:
|
||||
- 1.12.0
|
||||
libfabric:
|
||||
variants: fabrics=sockets,tcp,udp,rxm
|
||||
libunwind:
|
||||
variants: +pic +xz
|
||||
mesa:
|
||||
variants: ~llvm
|
||||
mesa18:
|
||||
variants: ~llvm
|
||||
mpich:
|
||||
variants: ~wrapperrpath
|
||||
ncurses:
|
||||
variants: +termlib
|
||||
openblas:
|
||||
variants: threads=openmp
|
||||
trilinos:
|
||||
variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
xz:
|
||||
variants: +pic
|
||||
|
||||
definitions:
|
||||
|
||||
- cuda_specs:
|
||||
- amrex +cuda cuda_arch=70
|
||||
- caliper +cuda cuda_arch=70
|
||||
- chai ~benchmarks ~tests +cuda cuda_arch=70 ^umpire ~shared
|
||||
- ginkgo +cuda cuda_arch=70
|
||||
- heffte +cuda cuda_arch=70
|
||||
- hpx +cuda cuda_arch=70
|
||||
- hypre +cuda cuda_arch=70
|
||||
- kokkos +wrapper +cuda cuda_arch=70
|
||||
- kokkos-kernels +cuda cuda_arch=70 ^kokkos +wrapper +cuda cuda_arch=70
|
||||
- magma +cuda cuda_arch=70
|
||||
- mfem +cuda cuda_arch=70
|
||||
- parsec +cuda cuda_arch=70
|
||||
- petsc +cuda cuda_arch=70
|
||||
- raja +cuda cuda_arch=70
|
||||
- slate +cuda cuda_arch=70
|
||||
- slepc +cuda cuda_arch=70
|
||||
- strumpack ~slate +cuda cuda_arch=70
|
||||
- sundials +cuda cuda_arch=70
|
||||
- superlu-dist +cuda cuda_arch=70
|
||||
- tasmanian +cuda cuda_arch=70
|
||||
- trilinos@13.2.0 +cuda cuda_arch=70
|
||||
- umpire ~shared +cuda cuda_arch=70
|
||||
- vtk-m +cuda cuda_arch=70
|
||||
- zfp +cuda cuda_arch=70
|
||||
#- ascent ~shared +cuda cuda_arch=70
|
||||
#- axom +cuda cuda_arch=70 ^umpire ~shared
|
||||
#- dealii +cuda cuda_arch=70 # gmsh
|
||||
#- flecsi +cuda cuda_arch=70
|
||||
#- paraview +cuda cuda_arch=70
|
||||
|
||||
- default_specs:
|
||||
- adios
|
||||
- adios2
|
||||
- aml
|
||||
- amrex
|
||||
- arborx
|
||||
- archer
|
||||
- argobots
|
||||
- ascent
|
||||
- axom ^umpire@4.1.2
|
||||
- bolt
|
||||
- cabana
|
||||
- caliper
|
||||
- chai ~benchmarks ~tests ^umpire@4.1.2
|
||||
- charliecloud
|
||||
- conduit
|
||||
- darshan-runtime
|
||||
- darshan-util
|
||||
- datatransferkit
|
||||
- dyninst
|
||||
- faodel ~tcmalloc
|
||||
- flecsi
|
||||
- flit
|
||||
- flux-core
|
||||
- fortrilinos
|
||||
- gasnet
|
||||
- ginkgo
|
||||
- globalarrays
|
||||
- gmp
|
||||
- gotcha
|
||||
- gptune
|
||||
- hdf5
|
||||
- heffte +fftw
|
||||
- hpctoolkit
|
||||
- hpx
|
||||
- hypre
|
||||
- kokkos +openmp
|
||||
- kokkos-kernels +openmp
|
||||
- legion
|
||||
- libnrm
|
||||
- libquo
|
||||
- libunwind
|
||||
- llvm targets=amdgpu,nvptx +clang +compiler-rt +libcxx +lld +lldb +llvm_dylib +flang ~cuda
|
||||
- loki
|
||||
- mercury
|
||||
- metall
|
||||
- mfem
|
||||
- mpark-variant
|
||||
- mpifileutils ~xattr
|
||||
- netlib-scalapack
|
||||
- ninja
|
||||
- nrm
|
||||
- nvhpc
|
||||
- omega-h
|
||||
- openmpi
|
||||
- openpmd-api ^hdf5@1.12.0 +fortran +shared +hl api=default
|
||||
- papi
|
||||
- papyrus@1.0.1
|
||||
- parallel-netcdf
|
||||
- paraview
|
||||
- parsec ~cuda
|
||||
- pdt
|
||||
- petsc
|
||||
- plasma
|
||||
- precice
|
||||
- pumi
|
||||
- py-jupyterhub
|
||||
- py-libensemble
|
||||
- py-petsc4py
|
||||
- py-warpx ^warpx dims=2 ^hdf5@1.12.0 +fortran +shared +hl api=default
|
||||
- py-warpx ^warpx dims=3 ^hdf5@1.12.0 +fortran +shared +hl api=default
|
||||
- py-warpx ^warpx dims=rz ^hdf5@1.12.0 +fortran +shared +hl api=default
|
||||
- qthreads scheduler=distrib
|
||||
- raja
|
||||
- rempi
|
||||
- scr
|
||||
- slate ~cuda
|
||||
- slepc
|
||||
- stc
|
||||
- strumpack ~slate
|
||||
- sundials
|
||||
- superlu
|
||||
- superlu-dist
|
||||
- swig
|
||||
- swig@4.0.2-fortran
|
||||
- sz
|
||||
- tasmanian
|
||||
- tau +mpi +python
|
||||
- trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
- turbine
|
||||
- umap
|
||||
- unifyfs@0.9.1
|
||||
- upcxx
|
||||
- variorum
|
||||
- veloc
|
||||
- vtk-m
|
||||
- zfp
|
||||
#- dealii
|
||||
#- geopm
|
||||
#- phist
|
||||
#- qt
|
||||
#- qwt
|
||||
#- stat
|
||||
#- umpire
|
||||
|
||||
- arch:
|
||||
- '%gcc target=ppc64le'
|
||||
|
||||
|
||||
specs:
|
||||
|
||||
- matrix:
|
||||
- - $default_specs
|
||||
- - $arch
|
||||
|
||||
- matrix:
|
||||
- - $cuda_specs
|
||||
- - $arch
|
||||
|
||||
mirrors: { "mirror": "s3://spack-binaries/e4s" }
|
||||
|
||||
gitlab-ci:
|
||||
|
||||
script:
|
||||
- uname -a || true
|
||||
- grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
|
||||
- nproc
|
||||
- curl -Lfs 'https://github.com/JuliaBinaryWrappers/GNUMake_jll.jl/releases/download/GNUMake-v4.3.0+1/GNUMake.v4.3.0.powerpc64le-linux-gnu.tar.gz' -o gmake.tar.gz
|
||||
- printf '8096d202fe0a0c400b8c0573c4b9e009f2f10d2fa850a3f495340f16e9c42454 gmake.tar.gz' | sha256sum --check --strict --quiet
|
||||
- tar -xzf gmake.tar.gz -C /usr bin/make 2> /dev/null
|
||||
- . "./share/spack/setup-env.sh"
|
||||
- spack --version
|
||||
- spack arch
|
||||
- cd ${SPACK_CONCRETE_ENV_DIR}
|
||||
- spack env activate --without-view .
|
||||
- spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'"
|
||||
- spack --color=always --backtrace ci rebuild
|
||||
after_script:
|
||||
- cat /proc/loadavg || true
|
||||
|
||||
match_behavior: first
|
||||
mappings:
|
||||
- match:
|
||||
- cuda
|
||||
- dyninst
|
||||
- hpx
|
||||
- llvm
|
||||
- llvm-amdgpu
|
||||
- precice
|
||||
- rocblas
|
||||
- rocsolver
|
||||
- strumpack
|
||||
- sundials
|
||||
- trilinos
|
||||
- vtk-h
|
||||
- vtk-m
|
||||
- warpx
|
||||
runner-attributes:
|
||||
image: { "name": "ghcr.io/spack/e4s-ubuntu-20.04:v2021-10-18", "entrypoint": [""] }
|
||||
tags: ["spack", "public", "xlarge", "ppc64le"]
|
||||
- match: ['os=ubuntu20.04']
|
||||
runner-attributes:
|
||||
image: { "name": "ghcr.io/spack/e4s-ubuntu-20.04:v2021-10-18", "entrypoint": [""] }
|
||||
tags: ["spack", "public", "large", "ppc64le"]
|
||||
broken-specs-url: "s3://spack-binaries-develop/broken-specs"
|
||||
service-job-attributes:
|
||||
before_script:
|
||||
- . "./share/spack/setup-env.sh"
|
||||
- spack --version
|
||||
image: { "name": "ghcr.io/spack/e4s-ubuntu-20.04:v2021-10-18", "entrypoint": [""] }
|
||||
tags: ["spack", "public", "medium", "ppc64le"]
|
||||
|
||||
cdash:
|
||||
build-group: New PR testing workflow
|
||||
url: https://cdash.spack.io
|
||||
project: Spack Testing
|
||||
site: Cloud Gitlab Infrastructure
|
@@ -3,7 +3,7 @@ spack:
|
||||
|
||||
concretizer:
|
||||
reuse: false
|
||||
unify: when_possible
|
||||
unify: false
|
||||
|
||||
config:
|
||||
build_jobs: 32
|
||||
@@ -16,37 +16,37 @@ spack:
|
||||
|
||||
compilers:
|
||||
- compiler:
|
||||
spec: dpcpp@2022.1.0
|
||||
spec: dpcpp@2023.0.0
|
||||
paths:
|
||||
cc: /opt/intel/oneapi/compiler/2022.1.0/linux/bin/icx
|
||||
cxx: /opt/intel/oneapi/compiler/2022.1.0/linux/bin/dpcpp
|
||||
f77: /opt/intel/oneapi/compiler/2022.1.0/linux/bin/ifx
|
||||
fc: /opt/intel/oneapi/compiler/2022.1.0/linux/bin/ifx
|
||||
cc: /opt/intel/oneapi/compiler/2023.0.0/linux/bin/icx
|
||||
cxx: /opt/intel/oneapi/compiler/2023.0.0/linux/bin/dpcpp
|
||||
f77: /opt/intel/oneapi/compiler/2023.0.0/linux/bin/ifx
|
||||
fc: /opt/intel/oneapi/compiler/2023.0.0/linux/bin/ifx
|
||||
flags: {}
|
||||
operating_system: ubuntu20.04
|
||||
target: x86_64
|
||||
modules: [compiler]
|
||||
environment:
|
||||
prepend_path:
|
||||
LD_LIBRARY_PATH: /opt/intel/oneapi/compiler/2022.1.0/linux/compiler/lib/intel64_lin
|
||||
LD_LIBRARY_PATH: /opt/intel/oneapi/compiler/2023.0.0/linux/compiler/lib/intel64_lin
|
||||
extra_rpaths: []
|
||||
- compiler:
|
||||
spec: oneapi@2022.1.0
|
||||
spec: oneapi@2023.0.0
|
||||
paths:
|
||||
cc: /opt/intel/oneapi/compiler/2022.1.0/linux/bin/icx
|
||||
cxx: /opt/intel/oneapi/compiler/2022.1.0/linux/bin/icpx
|
||||
f77: /opt/intel/oneapi/compiler/2022.1.0/linux/bin/ifx
|
||||
fc: /opt/intel/oneapi/compiler/2022.1.0/linux/bin/ifx
|
||||
cc: /opt/intel/oneapi/compiler/2023.0.0/linux/bin/icx
|
||||
cxx: /opt/intel/oneapi/compiler/2023.0.0/linux/bin/icpx
|
||||
f77: /opt/intel/oneapi/compiler/2023.0.0/linux/bin/ifx
|
||||
fc: /opt/intel/oneapi/compiler/2023.0.0/linux/bin/ifx
|
||||
flags: {}
|
||||
operating_system: ubuntu20.04
|
||||
target: x86_64
|
||||
modules: [compiler]
|
||||
environment:
|
||||
prepend_path:
|
||||
LD_LIBRARY_PATH: /opt/intel/oneapi/compiler/2022.1.0/linux/compiler/lib/intel64_lin
|
||||
LD_LIBRARY_PATH: /opt/intel/oneapi/compiler/2023.0.0/linux/compiler/lib/intel64_lin
|
||||
extra_rpaths: []
|
||||
- compiler:
|
||||
spec: gcc@9.4.0
|
||||
spec: gcc@11.1.0
|
||||
paths:
|
||||
cc: /usr/bin/gcc
|
||||
cxx: /usr/bin/g++
|
||||
@@ -60,20 +60,13 @@ spack:
|
||||
extra_rpaths: []
|
||||
|
||||
packages:
|
||||
adios2:
|
||||
require: "%gcc"
|
||||
all:
|
||||
require: "%oneapi"
|
||||
require: '%oneapi'
|
||||
providers:
|
||||
blas: [openblas]
|
||||
mpi: [mpich]
|
||||
target: [x86_64]
|
||||
variants: +mpi
|
||||
binutils:
|
||||
require: "%gcc"
|
||||
variants: +ld +gold +headers +libiberty ~nls
|
||||
cuda:
|
||||
version: [11.4.2]
|
||||
elfutils:
|
||||
variants: +bzip2 ~nls +xz
|
||||
hdf5:
|
||||
@@ -82,8 +75,6 @@ spack:
|
||||
variants: fabrics=sockets,tcp,udp,rxm
|
||||
libunwind:
|
||||
variants: +pic +xz
|
||||
llvm:
|
||||
require: "%gcc" # undefined reference to `_intel_fast_memset' becauase of -nodefaultlibs
|
||||
mpich:
|
||||
variants: ~wrapperrpath
|
||||
ncurses:
|
||||
@@ -92,35 +83,55 @@ spack:
|
||||
variants: threads=openmp
|
||||
python:
|
||||
version: [3.8.13]
|
||||
ruby:
|
||||
require: "%gcc" # https://github.com/spack/spack/issues/31954
|
||||
rust:
|
||||
require: "%gcc" # undefined reference becauase of -nodefaultlibs
|
||||
trilinos:
|
||||
variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext
|
||||
+ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
|
||||
+nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
|
||||
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
vtk-m:
|
||||
require: "~openmp"
|
||||
require: ~openmp
|
||||
xz:
|
||||
variants: +pic
|
||||
mesa:
|
||||
version: [21.3.8]
|
||||
|
||||
binutils:
|
||||
require: '%gcc'
|
||||
variants: +ld +gold +headers +libiberty ~nls
|
||||
bison:
|
||||
require: '%gcc'
|
||||
krb5:
|
||||
require: '%gcc'
|
||||
llvm:
|
||||
require: '%gcc'
|
||||
m4:
|
||||
require: '%gcc'
|
||||
openssh:
|
||||
require: '%gcc'
|
||||
papi:
|
||||
require: '%gcc'
|
||||
py-scipy:
|
||||
require: '%gcc'
|
||||
ruby:
|
||||
require: '%gcc'
|
||||
rust:
|
||||
require: '%gcc'
|
||||
unzip:
|
||||
require: '%gcc'
|
||||
|
||||
specs:
|
||||
# CPU
|
||||
- adios
|
||||
- adios2
|
||||
- alquimia
|
||||
- aml
|
||||
- amrex
|
||||
- arborx
|
||||
- archer
|
||||
- argobots
|
||||
- ascent
|
||||
- amrex
|
||||
- axom
|
||||
- bolt
|
||||
- bricks
|
||||
- butterflypack
|
||||
- cabana
|
||||
- caliper
|
||||
@@ -129,20 +140,15 @@ spack:
|
||||
- darshan-runtime
|
||||
- darshan-util
|
||||
- datatransferkit
|
||||
- exaworks
|
||||
- faodel
|
||||
- flit
|
||||
- flux-core
|
||||
- fortrilinos
|
||||
- gasnet
|
||||
- ginkgo
|
||||
- globalarrays
|
||||
- gmp
|
||||
- gotcha
|
||||
- gptune
|
||||
- hdf5 +fortran +hl +shared
|
||||
- heffte +fftw
|
||||
- hpx max_cpu_count=512 networking=mpi
|
||||
- hypre
|
||||
- kokkos-kernels +openmp
|
||||
- kokkos +openmp
|
||||
@@ -160,7 +166,6 @@ spack:
|
||||
- nccmp
|
||||
- nco
|
||||
- netlib-scalapack
|
||||
- nrm
|
||||
- omega-h
|
||||
- openmpi
|
||||
- openpmd-api
|
||||
@@ -174,17 +179,11 @@ spack:
|
||||
- plumed
|
||||
- precice
|
||||
- pumi
|
||||
- py-cinemasci
|
||||
- py-jupyterhub
|
||||
- py-libensemble
|
||||
- py-petsc4py
|
||||
- py-warpx ^warpx dims=2
|
||||
- py-warpx ^warpx dims=3
|
||||
- py-warpx ^warpx dims=rz
|
||||
- qthreads scheduler=distrib
|
||||
- raja
|
||||
- rempi
|
||||
- scr
|
||||
- slate ~cuda
|
||||
- slepc
|
||||
- stc
|
||||
@@ -193,14 +192,12 @@ spack:
|
||||
- superlu-dist
|
||||
- superlu
|
||||
- swig
|
||||
- swig@4.0.2-fortran
|
||||
- sz
|
||||
- tasmanian
|
||||
- tau +mpi +python
|
||||
- trilinos@13.0.1 +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext
|
||||
+ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
|
||||
+nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
|
||||
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
+ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
|
||||
+nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
|
||||
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
- turbine
|
||||
- umap
|
||||
- umpire
|
||||
@@ -213,54 +210,72 @@ spack:
|
||||
|
||||
# GPU
|
||||
- aml +ze
|
||||
- amrex +sycl
|
||||
- arborx +sycl ^kokkos +sycl +openmp std=17 +tests +examples
|
||||
- cabana +sycl ^kokkos+sycl +openmp std=17 +tests +examples
|
||||
- cabana +sycl ^kokkos +sycl +openmp std=17 +tests +examples
|
||||
- kokkos +sycl +openmp std=17 +tests +examples %oneapi
|
||||
- kokkos-kernels build_type=Release %oneapi ^kokkos +sycl +openmp std=17 +tests +examples %oneapi
|
||||
- kokkos-kernels build_type=Release ^kokkos +sycl +openmp std=17 +tests +examples %oneapi
|
||||
|
||||
# CPU BUILD FAILURES
|
||||
#- adios2@2.8.0 # adios2
|
||||
#- charliecloud@0.26 # charliecloud
|
||||
#- dyninst@12.1.0 # old intel-tbb
|
||||
#- geopm@1.1.0 # geopm
|
||||
#- h5bench@1.2 # h5bench
|
||||
#- hpctoolkit # dyninst
|
||||
#- phist@1.9.5 # phist
|
||||
#- paraview +qt # qt
|
||||
#- pruners-ninja@1.0.1 # pruners-ninja
|
||||
#- variorum@0.4.1 # variorum
|
||||
|
||||
# CPU BUILD FAILURES - NOTES
|
||||
# adios2: /usr/bin/ld: ../../lib/libadios2_fortran.so.2.8.2: version node not found for symbol adios2_adios_init_mod@adios2_adios_init_serial_smod._; /usr/bin/ld: failed to set dynamic section sizes: bad value
|
||||
# CPU FAILURES
|
||||
# - bricks # bricks
|
||||
# - charliecloud # charliecloud
|
||||
# - dyninst # old intel-tbb
|
||||
# - exaworks # py-setuptools-scm
|
||||
# - flux-core # py-setuptools-scm
|
||||
# - geopm # geopm
|
||||
# - ginkgo # ginkgo
|
||||
# - gptune # py-scipy@1.3.3
|
||||
# - h5bench # h5bench
|
||||
# - hpctoolkit # dyninst
|
||||
# - hpx max_cpu_count=512 networking=mpi # boost cxxstd=17
|
||||
# - nrm # py-scipy
|
||||
# - paraview +qt # qt
|
||||
# - phist # phist
|
||||
# - pruners-ninja # pruners-ninja
|
||||
# - py-cinemasci # py-scipy@1.3.3, py-setuptools-scm
|
||||
# - py-jupyterhub # py-setuptools-scm
|
||||
# - py-warpx ^warpx dims=2 # py-scipy@1.5.4
|
||||
# - py-warpx ^warpx dims=3 # py-scipy@1.5.4
|
||||
# - py-warpx ^warpx dims=rz # py-scipy@1.5.4
|
||||
# - scr # libyogrt
|
||||
# - swig@4.0.2-fortran # swig
|
||||
# - tau +mpi +python # tau
|
||||
# - variorum # variorum
|
||||
# --
|
||||
# amrex: /opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/detail/defines_elementary.hpp:52:40: note: expanded from macro '__SYCL2020_DEPRECATED'
|
||||
# amrex: /opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/detail/defines_elementary.hpp:52:40: note: expanded from macro '__SYCL2020_DEPRECATED'
|
||||
# binutils: gold/powerpc.cc:3590: undefined reference to `gold::Sized_symbol<64>::Value_type gold::Symbol_table::compute_final_value<64>(gold::Sized_symbol<64> const*, gold::Symbol_table::Compute_final_value_status*) const'
|
||||
# boost cxxstd=17: ./boost/mpl/aux_/integral_wrapper.hpp:73:31: error: integer value -1 is outside the valid range of values [0, 3] for this enumeration type [-Wenum-constexpr-conversion]
|
||||
# bricks: cc1plus: error: bad value ('OFF') for '-mtune=' switch
|
||||
# charliecloud: autoreconf phase: RuntimeError: configure script not found in ...
|
||||
# flux-sched: include/yaml-cpp/emitter.h:164:9: error: comparison with NaN always evaluates to false in fast floating point modes [-Werror,-Wtautological-constant-compare]
|
||||
# flux-sched: include/yaml-cpp/emitter.h:171:24: error: comparison with infinity always evaluates to false in fast floating point modes [-Werror,-Wtautological-constant-compare]
|
||||
# ginkgo: icpx: error: clang frontend command failed with exit code 139
|
||||
# h5bench: commons/h5bench_util.h:196: multiple definition of `has_vol_async';
|
||||
# intel-tbb: clang++clang++clang++clang++clang++clang++clang++: : : : : : : clang++error: : unknown argument: '-flifetime-dse=1'
|
||||
# libyogrt: configure: error: slurm is not in specified location!
|
||||
# phist: fortran_bindings/test/kernels.F90(63): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic. [ARGV]
|
||||
# pruners-ninja: test/ninja_test_util.c:34: multiple definition of `a';
|
||||
# py-cryptography: ??
|
||||
# py-scipy@1.3.3: gcc: error: unrecognized command-line option '-fp-model=strict'
|
||||
# py-scipy@1.5.4: gcc: error: unrecognized command-line option '-fp-model=strict'
|
||||
# py-setuptools-scm: ??
|
||||
# ruby: limits.c:415:34: error: invalid suffix 'D' on floating constant
|
||||
# rust: /usr/bin/ld: /opt/intel/oneapi/compiler/2022.1.0/linux/bin-llvm/../compiler/lib/intel64_lin/libimf.a(libm_feature_flag.o): in function `__libm_feature_flag_init': libm_feature_flag.c:(.text+0x25): undefined reference to `__intel_cpu_feature_indicator_x'
|
||||
# swig@4.0.2-fortran: /spack/opt/spack/linux-ubuntu20.04-x86_64/gcc-11.1.0/m4-1.4.19-p3otmjixpi6zibdsyoqib5dpzfshq3nj/bin/m4:/spack/opt/spack/linux-ubuntu20.04-x86_64/oneapi-2023.0.0/bison-3.8.2-xca2sot4jhd72hvj2m2b3ajchagczvau/share/bison/skeletons/yacc.c:420: undefined macro `b4_symbol(103, tag)'
|
||||
# tau: Error: Unable to identify ifort lib directory
|
||||
# variorum: ld: Intel/CMakeFiles/variorum_intel.dir/msr_core.c.o:(.bss+0x0): multiple definition of `g_platform'; CMakeFiles/variorum.dir/config_architecture.c.o:(.bss+0x0): first defined here
|
||||
# vtk-m +openmp: clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
|
||||
|
||||
# GPU BUILD FAILURES
|
||||
#- ginkgo@1.4.0 +oneapi %dpcpp ^cmake%oneapi # ginkgo
|
||||
#- hpctoolkit@2022.04.15 +level_zero # dyninst
|
||||
#- sundials@6.2.0 +sycl cxxstd=17 # sundials
|
||||
#- tau@2.31.1 +mpi +opencl +level_zero ~pdt %oneapi ^binutils%gcc@9.4.0 ^papi%gcc@9.4.0 # tau
|
||||
|
||||
# GPU BUILD FAILURES - NOTES
|
||||
# berkeley-db %dpcpp: dpcpp: dpcpperror: : no such file or directory: '/tmp/conftest-9d8d34.o'
|
||||
# ginkgo %dpcpp: CMakeTestCXXCompiler.cmake:62: /usr/bin/ld: warning: libsvml.so, needed by /opt/intel/oneapi/compiler/2022.1.0/linux/bin-llvm/../lib/libsycl.so, not found (try using -rpath or -rpath-link) ...
|
||||
# ncurses %dpcpp: If you have ncurses 4.2 applications, you should read the INSTALL document, and install the terminfo without the -x optiontic: error while loading shared libraries: libsvml.so: cannot open shared object file: No such file or directory
|
||||
# sundials: include/sunmemory/sunmemory_sycl.h:20:10: fatal error: 'CL/sycl.hpp' file not found
|
||||
# tau: requires libdrm-dev
|
||||
# GPU FAILURES
|
||||
# - amrex +sycl # amrex
|
||||
# - ginkgo +oneapi # ginkgo
|
||||
# - hpctoolkit +level_zero # dyninst
|
||||
# - sundials +sycl cxxstd=17 # sundials
|
||||
# - tau +mpi +opencl +level_zero ~pdt # tau
|
||||
# --
|
||||
|
||||
# SKIPPED
|
||||
#- flecsi@1.4.2 # dependency pfunit marks oneapi as an unsupported compiler
|
||||
# - flecsi # dependency pfunit marks oneapi as an unsupported compiler
|
||||
|
||||
mirrors: { "mirror": "s3://spack-binaries/develop/e4s-oneapi" }
|
||||
|
||||
@@ -286,14 +301,14 @@ spack:
|
||||
- if [[ -r /mnt/key/intermediate_ci_signing_key.gpg ]]; then spack gpg trust /mnt/key/intermediate_ci_signing_key.gpg; fi
|
||||
- if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi
|
||||
- export PATH=/bootstrap/runner/view/bin:${PATH}
|
||||
- . /bootstrap/runner/install/linux-ubuntu20.04-x86_64/gcc-9.4.0/lmod-8.7.2-ri26z7qy6ixtgpsqinswx3w6tuggluv5/lmod/8.7.2/init/bash
|
||||
- . /bootstrap/runner/install/linux-ubuntu20.04-x86_64/gcc-11.1.0/lmod-8.7.2-b7eq7rjeckn3m4o4lglsakilibkznjom/lmod/8.7.2/init/bash
|
||||
- module use /opt/intel/oneapi/modulefiles
|
||||
- module load compiler
|
||||
- spack --color=always --backtrace ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2)
|
||||
after_script:
|
||||
- cat /proc/loadavg || true
|
||||
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64-oneapi:2022-07-01
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64-oneapi:2023-01-01
|
||||
|
||||
match_behavior: first
|
||||
mappings:
|
||||
@@ -478,7 +493,7 @@ spack:
|
||||
before_script:
|
||||
- . "./share/spack/setup-env.sh"
|
||||
- spack --version
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64-oneapi:2022-07-01
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64-oneapi:2023-01-01
|
||||
tags: ["spack", "public", "x86_64"]
|
||||
|
||||
signing-job-attributes:
|
||||
|
423
share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml
Normal file
423
share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml
Normal file
@@ -0,0 +1,423 @@
|
||||
spack:
|
||||
view: false
|
||||
|
||||
concretizer:
|
||||
reuse: false
|
||||
unify: false
|
||||
|
||||
config:
|
||||
concretizer: clingo
|
||||
install_tree:
|
||||
root: /home/software/spack
|
||||
padded_length: 512
|
||||
projections:
|
||||
all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
|
||||
|
||||
packages:
|
||||
all:
|
||||
compiler: [gcc@11.1.0]
|
||||
providers:
|
||||
blas: [openblas]
|
||||
mpi: [mpich]
|
||||
target: [ppc64le]
|
||||
variants: +mpi cuda_arch=70
|
||||
tbb:
|
||||
require: intel-tbb
|
||||
binutils:
|
||||
variants: +ld +gold +headers +libiberty ~nls
|
||||
cuda:
|
||||
version: [11.7.0]
|
||||
elfutils:
|
||||
variants: +bzip2 ~nls +xz
|
||||
hdf5:
|
||||
variants: +fortran +hl +shared
|
||||
libfabric:
|
||||
variants: fabrics=sockets,tcp,udp,rxm
|
||||
libunwind:
|
||||
variants: +pic +xz
|
||||
mpich:
|
||||
variants: ~wrapperrpath
|
||||
ncurses:
|
||||
variants: +termlib
|
||||
openblas:
|
||||
variants: threads=openmp
|
||||
paraview:
|
||||
require: '@5.11 ~qt+osmesa'
|
||||
python:
|
||||
version: [3.7.15]
|
||||
trilinos:
|
||||
require: +amesos +amesos2 +anasazi +aztec +boost +epetra +epetraext +ifpack
|
||||
+intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro
|
||||
+phalanx +rol +rythmos +sacado +stk +shards +shylu +stratimikos +teko +tempus
|
||||
+tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
xz:
|
||||
variants: +pic
|
||||
mesa:
|
||||
version: [21.3.8]
|
||||
faodel:
|
||||
require: ~tcmalloc # needed for ppc64le
|
||||
|
||||
specs:
|
||||
# CPU
|
||||
- adios
|
||||
- alquimia
|
||||
- aml
|
||||
- amrex
|
||||
- arborx
|
||||
- argobots
|
||||
- axom
|
||||
- bolt
|
||||
- butterflypack
|
||||
- cabana
|
||||
- caliper
|
||||
- chai ~benchmarks ~tests
|
||||
- charliecloud
|
||||
- conduit
|
||||
- datatransferkit
|
||||
- dyninst
|
||||
- ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 ~paraview +pnetcdf +sz +unifyfs +veloc +visit +vtkm +zfp # +paraview fails: FAILED: VTK/Filters/Statistics/CMakeFiles/FiltersStatistics-objects.dir/vtkPCAStatistics.cxx.o: /tmp/ccgvkIk5.s: Assembler messages: /tmp/ccgvkIk5.s:260012: Error: invalid machine `power10'
|
||||
- exaworks
|
||||
- flecsi
|
||||
- flit
|
||||
- flux-core
|
||||
- fortrilinos
|
||||
- gasnet
|
||||
- ginkgo
|
||||
- globalarrays
|
||||
- gmp
|
||||
- gotcha
|
||||
- gptune
|
||||
- h5bench
|
||||
- hdf5-vol-async
|
||||
- heffte +fftw
|
||||
- hpctoolkit
|
||||
- hpx max_cpu_count=512 networking=mpi
|
||||
- hypre
|
||||
- kokkos +openmp
|
||||
- kokkos-kernels +openmp
|
||||
- lammps
|
||||
- legion
|
||||
- libnrm
|
||||
- libquo
|
||||
- libunwind
|
||||
- mercury
|
||||
- metall
|
||||
- mfem
|
||||
- mpark-variant
|
||||
- mpifileutils ~xattr
|
||||
- nccmp
|
||||
- nco
|
||||
- netlib-scalapack
|
||||
- nrm
|
||||
- nvhpc
|
||||
- omega-h
|
||||
- openmpi
|
||||
- openpmd-api
|
||||
- papi
|
||||
- papyrus
|
||||
- parsec ~cuda
|
||||
- pdt
|
||||
- petsc
|
||||
- phist
|
||||
- plasma
|
||||
- plumed
|
||||
- pumi
|
||||
- py-h5py
|
||||
- py-jupyterhub
|
||||
- py-libensemble +mpi +nlopt
|
||||
- py-petsc4py
|
||||
- py-warpx ^warpx dims=2
|
||||
- py-warpx ^warpx dims=3
|
||||
- py-warpx ^warpx dims=rz
|
||||
- qthreads scheduler=distrib
|
||||
- quantum-espresso
|
||||
- raja
|
||||
- rempi
|
||||
- scr
|
||||
- slate ~cuda
|
||||
- slepc
|
||||
- stc
|
||||
- strumpack ~slate
|
||||
- sundials
|
||||
- superlu
|
||||
- superlu-dist
|
||||
- swig
|
||||
- swig@4.0.2-fortran
|
||||
- tasmanian
|
||||
- tau +mpi +python
|
||||
- trilinos@13.0.1 +belos +ifpack2 +stokhos
|
||||
- turbine
|
||||
- umap
|
||||
- umpire
|
||||
- upcxx
|
||||
- wannier90
|
||||
|
||||
# CUDA
|
||||
- amrex +cuda
|
||||
- arborx +cuda ^kokkos +wrapper
|
||||
- cabana +cuda ^kokkos +wrapper +cuda_lambda +cuda
|
||||
- caliper +cuda
|
||||
- chai ~benchmarks ~tests +cuda ^umpire ~shared
|
||||
- ecp-data-vis-sdk +cuda cuda_arch=70 +adios2 +hdf5 ~paraview +vtkm +zfp # +paraview fails: FAILED: VTK/Filters/Statistics/CMakeFiles/FiltersStatistics-objects.dir/vtkPCAStatistics.cxx.o; /tmp/ccjmJhb6.s: Assembler messages: /tmp/ccjmJhb6.s:260012: Error: invalid machine `power10'
|
||||
- flecsi +cuda
|
||||
- flux-core +cuda
|
||||
- ginkgo +cuda
|
||||
- heffte +cuda
|
||||
- hpctoolkit +cuda
|
||||
- hpx max_cpu_count=512 +cuda
|
||||
- hypre +cuda
|
||||
- kokkos +wrapper +cuda
|
||||
- kokkos-kernels +cuda ^kokkos +wrapper +cuda
|
||||
- magma +cuda
|
||||
- mfem +cuda
|
||||
- omega-h +cuda
|
||||
- papi +cuda
|
||||
- petsc +cuda
|
||||
- py-torch +cuda
|
||||
- raja +cuda
|
||||
- slate +cuda
|
||||
- slepc +cuda
|
||||
- strumpack ~slate +cuda
|
||||
- sundials +cuda
|
||||
- superlu-dist +cuda
|
||||
- tasmanian +cuda
|
||||
- tau +mpi +cuda
|
||||
- trilinos@13.4.0 +belos +ifpack2 +stokhos +cuda
|
||||
- umpire ~shared +cuda
|
||||
- parsec +cuda
|
||||
|
||||
# CPU FAILURES
|
||||
# - archer # llvm@8
|
||||
# - bricks # bricks
|
||||
# - geopm # geopm
|
||||
# - loki # loki
|
||||
# - precice # precice
|
||||
# - pruners-ninja # pruners-ninja
|
||||
# - variorum # Intel/variorum_cpuid.c:11:5: error: impossible constraint in 'asm'
|
||||
# --
|
||||
# bricks: VSBrick-7pt.py-Scalar-8x8x8-1:30:3: error: 'vfloat512' was not declared in this scope
|
||||
# fltk: /usr/bin/ld: ../lib/libfltk_png.a(pngrutil.o): in function `png_read_filter_row': pngrutil.c:(.text.png_read_filter_row+0x90): undefined reference to `png_init_filter_functions_vsx'
|
||||
# geopm: libtool.m4: error: problem compiling CXX test program
|
||||
# llvm@8: clang/lib/Lex/Lexer.cpp:2547:34: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive]
|
||||
# loki: include/loki/SmallObj.h:462:57: error: ISO C++17 does not allow dynamic exception specifications
|
||||
# precice: /tmp/ccYNMwgE.s: Assembler messages: /tmp/ccYNMwgE.s:278115: Error: invalid machine `power10'
|
||||
# pruners-ninja: test/ninja_test_util.c:34: multiple definition of `a';
|
||||
|
||||
# CUDA FAILURES
|
||||
# - bricks +cuda # bricks
|
||||
# - dealii +cuda # fltk
|
||||
# --
|
||||
# bricks: VSBrick-7pt.py-Scalar-8x8x8-1:30:3: error: 'vfloat512' was not declared in this scope
|
||||
|
||||
|
||||
mirrors: { "mirror": "s3://spack-binaries/develop/e4s-power" }
|
||||
|
||||
gitlab-ci:
|
||||
|
||||
script:
|
||||
- uname -a || true
|
||||
- grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
|
||||
- nproc
|
||||
- . "./share/spack/setup-env.sh"
|
||||
- spack --version
|
||||
- spack arch
|
||||
- cd ${SPACK_CONCRETE_ENV_DIR}
|
||||
- spack env activate --without-view .
|
||||
- spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'"
|
||||
- mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data
|
||||
- if [[ -r /mnt/key/e4s.gpg ]]; then spack gpg trust /mnt/key/e4s.gpg; fi
|
||||
- if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi
|
||||
- spack --color=always --backtrace ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2)
|
||||
after_script:
|
||||
- cat /proc/loadavg || true
|
||||
|
||||
image: ecpe4s/ubuntu20.04-runner-ppc64le:2023-01-01
|
||||
|
||||
match_behavior: first
|
||||
mappings:
|
||||
- match:
|
||||
- hipblas
|
||||
- llvm
|
||||
- llvm-amdgpu
|
||||
- rocblas
|
||||
runner-attributes:
|
||||
tags: [ "spack", "huge", "ppc64le" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: huge
|
||||
|
||||
- match:
|
||||
- cuda
|
||||
- dyninst
|
||||
- ginkgo
|
||||
- hpx
|
||||
- kokkos-kernels
|
||||
- kokkos-nvcc-wrapper
|
||||
- magma
|
||||
- mfem
|
||||
- mpich
|
||||
- openturns
|
||||
- precice
|
||||
- raja
|
||||
- rust
|
||||
- slate
|
||||
- trilinos
|
||||
- vtk-m
|
||||
- warpx
|
||||
runner-attributes:
|
||||
tags: [ "spack", "large", "ppc64le" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: large
|
||||
|
||||
- match:
|
||||
- adios2
|
||||
- amrex
|
||||
- archer
|
||||
- ascent
|
||||
- axom
|
||||
- binutils
|
||||
- blaspp
|
||||
- boost
|
||||
- butterflypack
|
||||
- cabana
|
||||
- caliper
|
||||
- camp
|
||||
- chai
|
||||
- conduit
|
||||
- datatransferkit
|
||||
- faodel
|
||||
- ffmpeg
|
||||
- fftw
|
||||
- fortrilinos
|
||||
- gperftools
|
||||
- gptune
|
||||
- hdf5
|
||||
- heffte
|
||||
- hpctoolkit
|
||||
- hwloc
|
||||
- hypre
|
||||
- kokkos
|
||||
- lammps
|
||||
- lapackpp
|
||||
- legion
|
||||
- libzmq
|
||||
- llvm-openmp-ompt
|
||||
- mbedtls
|
||||
- netlib-scalapack
|
||||
- omega-h
|
||||
- openmpi
|
||||
- openpmd-api
|
||||
- pagmo2
|
||||
- papyrus
|
||||
- parsec
|
||||
- pdt
|
||||
- petsc
|
||||
- pumi
|
||||
- py-ipython-genutils
|
||||
- py-petsc4py
|
||||
- py-scipy
|
||||
- py-statsmodels
|
||||
- py-warlock
|
||||
- py-warpx
|
||||
- pygmo
|
||||
- slepc
|
||||
- slurm
|
||||
- strumpack
|
||||
- sundials
|
||||
- superlu-dist
|
||||
- tasmanian
|
||||
- tau
|
||||
- upcxx
|
||||
- vtk-h
|
||||
- zfp
|
||||
runner-attributes:
|
||||
tags: [ "spack", "medium", "ppc64le" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: "medium"
|
||||
|
||||
- match:
|
||||
- alsa-lib
|
||||
- ant
|
||||
- antlr
|
||||
- argobots
|
||||
- automake
|
||||
- berkeley-db
|
||||
- bison
|
||||
- blt
|
||||
- cmake
|
||||
- curl
|
||||
- darshan-util
|
||||
- diffutils
|
||||
- exmcutils
|
||||
- expat
|
||||
- flit
|
||||
- freetype
|
||||
- gdbm
|
||||
- gotcha
|
||||
- hpcviewer
|
||||
- jansson
|
||||
- json-c
|
||||
- libbsd
|
||||
- libevent
|
||||
- libjpeg-turbo
|
||||
- libnrm
|
||||
- libpng
|
||||
- libunistring
|
||||
- lua-luaposix
|
||||
- m4
|
||||
- mpfr
|
||||
- ncurses
|
||||
- openblas
|
||||
- openjdk
|
||||
- papi
|
||||
- parallel-netcdf
|
||||
- pcre2
|
||||
- perl-data-dumper
|
||||
- pkgconf
|
||||
- py-alembic
|
||||
- py-idna
|
||||
- py-testpath
|
||||
- qhull
|
||||
- snappy
|
||||
- swig
|
||||
- tar
|
||||
- tcl
|
||||
- texinfo
|
||||
- unzip
|
||||
- util-linux-uuid
|
||||
- util-macros
|
||||
- yaml-cpp
|
||||
- zlib
|
||||
- zstd
|
||||
runner-attributes:
|
||||
tags: [ "spack", "small", "ppc64le" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: "small"
|
||||
|
||||
- match: ['os=ubuntu20.04']
|
||||
runner-attributes:
|
||||
tags: ["spack", "ppc64le"]
|
||||
variables:
|
||||
CI_JOB_SIZE: "default"
|
||||
|
||||
broken-specs-url: "s3://spack-binaries/broken-specs"
|
||||
|
||||
service-job-attributes:
|
||||
before_script:
|
||||
- . "./share/spack/setup-env.sh"
|
||||
- spack --version
|
||||
image: ecpe4s/ubuntu20.04-runner-ppc64le:2023-01-01
|
||||
tags: ["spack", "public", "ppc64le"]
|
||||
|
||||
signing-job-attributes:
|
||||
image: { "name": "ghcr.io/spack/notary:latest", "entrypoint": [""] }
|
||||
tags: ["spack", "aws"]
|
||||
script:
|
||||
- aws s3 sync --exclude "*" --include "*spec.json*" ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache /tmp
|
||||
- /sign.sh
|
||||
- aws s3 sync --exclude "*" --include "*spec.json.sig*" /tmp ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache
|
||||
|
||||
cdash:
|
||||
build-group: E4S Power
|
||||
url: https://cdash.spack.io
|
||||
project: Spack Testing
|
||||
site: Cloud Gitlab Infrastructure
|
@@ -26,6 +26,8 @@ spack:
|
||||
require: "intel-tbb"
|
||||
binutils:
|
||||
variants: +ld +gold +headers +libiberty ~nls
|
||||
boost:
|
||||
variants: +python +filesystem +iostreams +system
|
||||
cuda:
|
||||
version: [11.7.0]
|
||||
elfutils:
|
||||
@@ -70,6 +72,7 @@ spack:
|
||||
- bolt
|
||||
- bricks
|
||||
- butterflypack
|
||||
- boost +python +filesystem +iostreams +system
|
||||
- cabana
|
||||
- caliper
|
||||
- chai ~benchmarks ~tests
|
||||
@@ -267,6 +270,7 @@ spack:
|
||||
|
||||
match_behavior: first
|
||||
mappings:
|
||||
|
||||
- match:
|
||||
- hipblas
|
||||
- llvm
|
||||
|
335
share/spack/gitlab/cloud_pipelines/stacks/gpu-tests/spack.yaml
Normal file
335
share/spack/gitlab/cloud_pipelines/stacks/gpu-tests/spack.yaml
Normal file
@@ -0,0 +1,335 @@
|
||||
spack:
|
||||
view: false
|
||||
|
||||
concretizer:
|
||||
reuse: false
|
||||
unify: false
|
||||
|
||||
config:
|
||||
build_jobs: 32
|
||||
concretizer: clingo
|
||||
install_tree:
|
||||
root: /home/software/spack
|
||||
padded_length: 512
|
||||
projections:
|
||||
all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
|
||||
|
||||
packages:
|
||||
all:
|
||||
compiler: [gcc@11.1.0]
|
||||
providers:
|
||||
blas: [openblas]
|
||||
mpi: [mpich]
|
||||
target: [x86_64]
|
||||
variants: +mpi amdgpu_target=gfx90a cuda_arch=80
|
||||
tbb:
|
||||
require: "intel-tbb"
|
||||
binutils:
|
||||
variants: +ld +gold +headers +libiberty ~nls
|
||||
boost:
|
||||
variants: +python +filesystem +iostreams +system
|
||||
elfutils:
|
||||
variants: +bzip2 ~nls +xz
|
||||
hdf5:
|
||||
variants: +fortran +hl +shared
|
||||
libfabric:
|
||||
variants: fabrics=sockets,tcp,udp,rxm
|
||||
libunwind:
|
||||
variants: +pic +xz
|
||||
mpich:
|
||||
variants: ~wrapperrpath
|
||||
ncurses:
|
||||
variants: +termlib
|
||||
openblas:
|
||||
variants: threads=openmp
|
||||
paraview:
|
||||
# Don't build GUI support or GLX rendering for HPC/container deployments
|
||||
require: "@5.11 ~qt+osmesa"
|
||||
python:
|
||||
version: [3.8.13]
|
||||
trilinos:
|
||||
require: +amesos +amesos2 +anasazi +aztec +boost +epetra +epetraext
|
||||
+ifpack +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
|
||||
+nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stratimikos
|
||||
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
xz:
|
||||
variants: +pic
|
||||
mesa:
|
||||
version: [21.3.8]
|
||||
|
||||
specs:
|
||||
- kokkos +rocm amdgpu_target=gfx90a
|
||||
- kokkos +wrapper +cuda cuda_arch=80 ^cuda@11.7.1
|
||||
- raja +cuda cuda_arch=80 ^cuda@11.7.1
|
||||
- raja +cuda cuda_arch=80 ^cuda@12.0.0
|
||||
|
||||
# FAILURES
|
||||
# - kokkos +wrapper +cuda cuda_arch=80 ^cuda@12.0.0 # https://github.com/spack/spack/issues/35378
|
||||
|
||||
mirrors: { "mirror": "s3://spack-binaries/develop/gpu-tests" }
|
||||
|
||||
gitlab-ci:
|
||||
|
||||
script:
|
||||
- uname -a || true
|
||||
- grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
|
||||
- nproc
|
||||
- nvidia-smi || true
|
||||
- curl -Lfs 'https://github.com/JuliaBinaryWrappers/GNUMake_jll.jl/releases/download/GNUMake-v4.3.0+1/GNUMake.v4.3.0.x86_64-linux-gnu.tar.gz' -o gmake.tar.gz
|
||||
- printf 'fef1f59e56d2d11e6d700ba22d3444b6e583c663d6883fd0a4f63ab8bd280f0f gmake.tar.gz' | sha256sum --check --strict --quiet
|
||||
- tar -xzf gmake.tar.gz -C /usr bin/make 2> /dev/null
|
||||
- . "./share/spack/setup-env.sh"
|
||||
- spack --version
|
||||
- spack arch
|
||||
- cd ${SPACK_CONCRETE_ENV_DIR}
|
||||
- spack env activate --without-view .
|
||||
- spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'"
|
||||
- mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data
|
||||
# AWS runners mount E4S public key (verification), UO runners mount public/private (signing/verification)
|
||||
- if [[ -r /mnt/key/e4s.gpg ]]; then spack gpg trust /mnt/key/e4s.gpg; fi
|
||||
# UO runners mount intermediate ci public key (verification), AWS runners mount public/private (signing/verification)
|
||||
- if [[ -r /mnt/key/intermediate_ci_signing_key.gpg ]]; then spack gpg trust /mnt/key/intermediate_ci_signing_key.gpg; fi
|
||||
- if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi
|
||||
- spack --color=always --backtrace ci rebuild --tests > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2)
|
||||
|
||||
after_script:
|
||||
- cat /proc/loadavg || true
|
||||
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64:2023-01-01
|
||||
|
||||
broken-tests-packages:
|
||||
- gptune
|
||||
|
||||
match_behavior: first
|
||||
mappings:
|
||||
- match:
|
||||
- kokkos +rocm amdgpu_target=gfx90a
|
||||
runner-attributes:
|
||||
tags: [ "rocm-5.4.0", "mi210" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: large
|
||||
|
||||
- match:
|
||||
- kokkos +cuda cuda_arch=80 ^cuda@11.7.1
|
||||
- raja +cuda cuda_arch=80 ^cuda@11.7.1
|
||||
runner-attributes:
|
||||
tags: [ "nvidia-515.65.01", "cuda-11.7", "a100" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: large
|
||||
|
||||
- match:
|
||||
- kokkos +cuda cuda_arch=80 ^cuda@12.0.0
|
||||
- raja +cuda cuda_arch=80 ^cuda@12.0.0
|
||||
runner-attributes:
|
||||
tags: [ "nvidia-525.85.12", "cuda-12.0", "a100" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: large
|
||||
|
||||
- match:
|
||||
- hipblas
|
||||
- llvm
|
||||
- llvm-amdgpu
|
||||
- rocblas
|
||||
- paraview
|
||||
- py-torch
|
||||
runner-attributes:
|
||||
tags: [ "spack", "huge", "x86_64" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: huge
|
||||
KUBERNETES_CPU_REQUEST: 11000m
|
||||
KUBERNETES_MEMORY_REQUEST: 42G
|
||||
|
||||
- match:
|
||||
- cuda
|
||||
- dealii
|
||||
- dray
|
||||
- dyninst
|
||||
- ginkgo
|
||||
- hpx
|
||||
- kokkos-kernels
|
||||
- kokkos-nvcc-wrapper
|
||||
- magma
|
||||
- mfem
|
||||
- mpich
|
||||
- nvhpc
|
||||
- oce
|
||||
- openturns
|
||||
- plumed
|
||||
- precice
|
||||
- py-tensorflow
|
||||
- qt
|
||||
- raja
|
||||
- rocfft
|
||||
- rocsolver
|
||||
- rocsparse
|
||||
- rust
|
||||
- slate
|
||||
- trilinos
|
||||
- visit
|
||||
- vtk
|
||||
- vtk-m
|
||||
- warpx
|
||||
runner-attributes:
|
||||
tags: [ "spack", "large", "x86_64" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: large
|
||||
KUBERNETES_CPU_REQUEST: 8000m
|
||||
KUBERNETES_MEMORY_REQUEST: 12G
|
||||
|
||||
- match:
|
||||
- adios2
|
||||
- amrex
|
||||
- archer
|
||||
- ascent
|
||||
- axom
|
||||
- binutils
|
||||
- blaspp
|
||||
- boost
|
||||
- butterflypack
|
||||
- cabana
|
||||
- caliper
|
||||
- camp
|
||||
- chai
|
||||
- conduit
|
||||
- datatransferkit
|
||||
- faodel
|
||||
- ffmpeg
|
||||
- fftw
|
||||
- fortrilinos
|
||||
- gperftools
|
||||
- gptune
|
||||
- hdf5
|
||||
- heffte
|
||||
- hpctoolkit
|
||||
- hwloc
|
||||
- hypre
|
||||
- kokkos
|
||||
- lammps
|
||||
- lapackpp
|
||||
- legion
|
||||
- libzmq
|
||||
- llvm-openmp-ompt
|
||||
- mbedtls
|
||||
- netlib-scalapack
|
||||
- omega-h
|
||||
- openmpi
|
||||
- openpmd-api
|
||||
- pagmo2
|
||||
- papyrus
|
||||
- parsec
|
||||
- pdt
|
||||
- petsc
|
||||
- pumi
|
||||
- py-ipython-genutils
|
||||
- py-petsc4py
|
||||
- py-scipy
|
||||
- py-statsmodels
|
||||
- py-warlock
|
||||
- py-warpx
|
||||
- pygmo
|
||||
- slepc
|
||||
- slurm
|
||||
- strumpack
|
||||
- sundials
|
||||
- superlu-dist
|
||||
- tasmanian
|
||||
- tau
|
||||
- upcxx
|
||||
- vtk-h
|
||||
- zfp
|
||||
runner-attributes:
|
||||
tags: [ "spack", "medium", "x86_64" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: "medium"
|
||||
KUBERNETES_CPU_REQUEST: "2000m"
|
||||
KUBERNETES_MEMORY_REQUEST: "4G"
|
||||
|
||||
- match:
|
||||
- alsa-lib
|
||||
- ant
|
||||
- antlr
|
||||
- argobots
|
||||
- automake
|
||||
- berkeley-db
|
||||
- bison
|
||||
- blt
|
||||
- cmake
|
||||
- curl
|
||||
- darshan-util
|
||||
- diffutils
|
||||
- exmcutils
|
||||
- expat
|
||||
- flit
|
||||
- freetype
|
||||
- gdbm
|
||||
- gotcha
|
||||
- hpcviewer
|
||||
- jansson
|
||||
- json-c
|
||||
- libbsd
|
||||
- libevent
|
||||
- libjpeg-turbo
|
||||
- libnrm
|
||||
- libpng
|
||||
- libunistring
|
||||
- lua-luaposix
|
||||
- m4
|
||||
- mpfr
|
||||
- ncurses
|
||||
- openblas
|
||||
- openjdk
|
||||
- papi
|
||||
- parallel-netcdf
|
||||
- pcre2
|
||||
- perl-data-dumper
|
||||
- pkgconf
|
||||
- py-alembic
|
||||
- py-idna
|
||||
- py-testpath
|
||||
- qhull
|
||||
- snappy
|
||||
- swig
|
||||
- tar
|
||||
- tcl
|
||||
- texinfo
|
||||
- unzip
|
||||
- util-linux-uuid
|
||||
- util-macros
|
||||
- yaml-cpp
|
||||
- zlib
|
||||
- zstd
|
||||
runner-attributes:
|
||||
tags: [ "spack", "small", "x86_64" ]
|
||||
variables:
|
||||
CI_JOB_SIZE: "small"
|
||||
KUBERNETES_CPU_REQUEST: "500m"
|
||||
KUBERNETES_MEMORY_REQUEST: "500M"
|
||||
|
||||
- match: ['os=ubuntu20.04']
|
||||
runner-attributes:
|
||||
tags: ["spack", "x86_64"]
|
||||
variables:
|
||||
CI_JOB_SIZE: "default"
|
||||
|
||||
broken-specs-url: "s3://spack-binaries/broken-specs"
|
||||
|
||||
service-job-attributes:
|
||||
before_script:
|
||||
- . "./share/spack/setup-env.sh"
|
||||
- spack --version
|
||||
image: ecpe4s/ubuntu20.04-runner-x86_64:2023-01-01
|
||||
tags: ["spack", "public", "x86_64"]
|
||||
|
||||
signing-job-attributes:
|
||||
image: { "name": "ghcr.io/spack/notary:latest", "entrypoint": [""] }
|
||||
tags: ["spack", "aws"]
|
||||
script:
|
||||
- aws s3 sync --exclude "*" --include "*spec.json*" ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache /tmp
|
||||
- /sign.sh
|
||||
- aws s3 sync --exclude "*" --include "*spec.json.sig*" /tmp ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache
|
||||
|
||||
cdash:
|
||||
build-group: GPU Testing
|
||||
url: https://cdash.spack.io
|
||||
project: Spack Testing
|
||||
site: Cloud Gitlab Infrastructure
|
@@ -12,6 +12,6 @@ class Maintainers2(Package):
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/maintainers2-1.0.tar.gz"
|
||||
|
||||
maintainers = ["user2", "user3"]
|
||||
maintainers("user2", "user3")
|
||||
|
||||
version("1.0", "0123456789abcdef0123456789abcdef")
|
||||
|
@@ -13,7 +13,7 @@ class PyExtension1(PythonPackage):
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/extension1-1.0.tar.gz"
|
||||
|
||||
maintainers = ["user1", "user2"]
|
||||
maintainers("user1", "user2")
|
||||
|
||||
version("1.0", "00000000000000000000000000000110")
|
||||
version("2.0", "00000000000000000000000000000120")
|
||||
|
@@ -15,7 +15,7 @@ class Abacus(MakefilePackage):
|
||||
for large-scale electronic-structure simulations
|
||||
from first principles"""
|
||||
|
||||
maintainers = ["bitllion"]
|
||||
maintainers("bitllion")
|
||||
|
||||
homepage = "http://abacus.ustc.edu.cn/"
|
||||
git = "https://github.com/abacusmodeling/abacus-develop.git"
|
||||
|
@@ -12,7 +12,7 @@ class AbseilCpp(CMakePackage):
|
||||
homepage = "https://abseil.io/"
|
||||
url = "https://github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz"
|
||||
|
||||
maintainers = ["jcftang"]
|
||||
maintainers("jcftang")
|
||||
tags = ["windows"]
|
||||
|
||||
version(
|
||||
|
@@ -126,7 +126,7 @@ class Acfl(Package):
|
||||
homepage = "https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio"
|
||||
url = "https://developer.arm.com/-/media/Files/downloads/hpc/arm-compiler-for-linux/22-1/arm-compiler-for-linux_22.1_Ubuntu-20.04_aarch64.tar"
|
||||
|
||||
maintainers = ["annop-w"]
|
||||
maintainers("annop-w")
|
||||
|
||||
# Build Versions: establish OS for URL
|
||||
acfl_os = get_os()
|
||||
|
@@ -12,7 +12,7 @@ class ActsDd4hep(CMakePackage):
|
||||
homepage = "https://github.com/acts-project/acts-dd4hep"
|
||||
url = "https://github.com/acts-project/acts-dd4hep/archive/refs/tags/v1.0.0.tar.gz"
|
||||
|
||||
maintainers = ["HadrienG2", "wdconinc"]
|
||||
maintainers("HadrienG2", "wdconinc")
|
||||
|
||||
version("1.0.1", sha256="e40f34ebc30b3c33a6802c9d94136e65072d8dcee0b7db57a645f08a64ea5334")
|
||||
version("1.0.0", sha256="991f996944c88efa837880f919239e50d12c5c9361e220bc9422438dd608308c")
|
||||
|
@@ -32,14 +32,17 @@ class Acts(CMakePackage, CudaPackage):
|
||||
homepage = "https://acts.web.cern.ch/ACTS/"
|
||||
git = "https://github.com/acts-project/acts.git"
|
||||
list_url = "https://github.com/acts-project/acts/releases/"
|
||||
maintainers = ["HadrienG2"]
|
||||
maintainers("HadrienG2")
|
||||
|
||||
tags = ["hep"]
|
||||
|
||||
# Supported Acts versions
|
||||
version("main", branch="main")
|
||||
version("master", branch="main", deprecated=True) # For compatibility
|
||||
version("23.0.0", commit="5af1b1b5feb8ca8f4c2c69106a1b9ef612c70d9c", submodules=True)
|
||||
version("22.0.1", commit="a4ac99dd72828c5eb3fac06e146f3391958fca8c", submodules=True)
|
||||
version("22.0.0", commit="0fb6f8d2ace65338915451201e9ceb6cee11fb5e", submodules=True)
|
||||
version("21.1.1", commit="8ae825de246e8e574d05d9eaf05ba4a937c69aa9", submodules=True)
|
||||
version("21.1.0", commit="3b4b5c741c8541491d496a36b917b00b344d52d1", submodules=True)
|
||||
version("21.0.0", commit="d8cb0fac3a44e1d44595a481f977df9bd70195fb", submodules=True)
|
||||
version("20.3.0", commit="b1859b322744cb033328fd57d9e74fb5326aa56b", submodules=True)
|
||||
@@ -336,6 +339,7 @@ def plugin_cmake_variant(plugin_name, spack_variant):
|
||||
cmake_variant("FATRAS", "fatras"),
|
||||
cmake_variant("FATRAS_GEANT4", "fatras_geant4"),
|
||||
example_cmake_variant("GEANT4", "geant4"),
|
||||
plugin_cmake_variant("GEANT4", "geant4"),
|
||||
example_cmake_variant("HEPMC3", "hepmc3"),
|
||||
plugin_cmake_variant("IDENTIFICATION", "identification"),
|
||||
cmake_variant(integration_tests_label, "integration_tests"),
|
||||
|
@@ -16,7 +16,7 @@ class Actsvg(CMakePackage):
|
||||
list_url = "https://github.com/acts-project/actsvg/releases"
|
||||
git = "https://github.com/acts-project/actsvg.git"
|
||||
|
||||
maintainers = ["HadrienG2", "wdconinc"]
|
||||
maintainers("HadrienG2", "wdconinc")
|
||||
|
||||
version("0.4.26", sha256="a1dfad15b616cac8191a355c1a87544571c36349400e3de56b9e5be6fa73714c")
|
||||
|
||||
|
@@ -14,7 +14,7 @@ class Adiak(CMakePackage):
|
||||
url = "https://github.com/LLNL/Adiak/releases/download/v0.1/adiak-v0.1.1.tar.gz"
|
||||
git = "https://github.com/LLNL/Adiak"
|
||||
|
||||
maintainers = ["daboehme", "mplegendre"]
|
||||
maintainers("daboehme", "mplegendre")
|
||||
|
||||
variant("mpi", default=True, description="Build with MPI support")
|
||||
variant("shared", default=True, description="Build dynamic libraries")
|
||||
|
@@ -17,7 +17,7 @@ class Adios(AutotoolsPackage):
|
||||
url = "https://github.com/ornladios/ADIOS/archive/v1.12.0.tar.gz"
|
||||
git = "https://github.com/ornladios/ADIOS.git"
|
||||
|
||||
maintainers = ["ax3l"]
|
||||
maintainers("ax3l")
|
||||
|
||||
version("develop", branch="master")
|
||||
version("1.13.1", sha256="b1c6949918f5e69f701cabfe5987c0b286793f1057d4690f04747852544e157b")
|
||||
|
@@ -16,7 +16,7 @@ class Adios2(CMakePackage, CudaPackage):
|
||||
url = "https://github.com/ornladios/ADIOS2/archive/v2.8.0.tar.gz"
|
||||
git = "https://github.com/ornladios/ADIOS2.git"
|
||||
|
||||
maintainers = ["ax3l", "chuckatkins", "vicentebolea", "williamfgc"]
|
||||
maintainers("ax3l", "chuckatkins", "vicentebolea", "williamfgc")
|
||||
|
||||
tags = ["e4s"]
|
||||
|
||||
@@ -54,7 +54,6 @@ class Adios2(CMakePackage, CudaPackage):
|
||||
# change how we're supporting differnt library types in the package at anytime if
|
||||
# spack decides on a standardized way of doing it across packages
|
||||
variant("shared", default=True, when="+pic", description="Build shared libraries")
|
||||
variant("pic", default=True, description="Build pic-enabled static libraries")
|
||||
|
||||
# Features
|
||||
variant("mpi", default=True, description="Enable MPI")
|
||||
@@ -95,12 +94,24 @@ class Adios2(CMakePackage, CudaPackage):
|
||||
conflicts("%oneapi@:2022.1.0", when="+fortran")
|
||||
|
||||
depends_on("cmake@3.12.0:", type="build")
|
||||
depends_on("pkgconfig", type="build")
|
||||
|
||||
depends_on("libffi", when="+sst") # optional in DILL
|
||||
depends_on("libfabric@1.6.0:", when="+sst") # optional in EVPath and SST
|
||||
# depends_on('bison', when='+sst') # optional in FFS, broken package
|
||||
# depends_on('flex', when='+sst') # optional in FFS, depends on BISON
|
||||
for _platform in ["linux", "darwin", "cray"]:
|
||||
depends_on("pkgconfig", type="build", when="platform=%s" % _platform)
|
||||
variant(
|
||||
"pic",
|
||||
default=False,
|
||||
description="Build pic-enabled static libraries",
|
||||
when="platform=%s" % _platform,
|
||||
)
|
||||
# libffi and libfabric and not currently supported on Windows
|
||||
# see Paraview's superbuild handling of libfabric at
|
||||
# https://gitlab.kitware.com/paraview/paraview-superbuild/-/blob/master/projects/adios2.cmake#L3
|
||||
depends_on("libffi", when="+sst platform=%s" % _platform) # optional in DILL
|
||||
depends_on(
|
||||
"libfabric@1.6.0:", when="+sst platform=%s" % _platform
|
||||
) # optional in EVPath and SST
|
||||
# depends_on('bison', when='+sst') # optional in FFS, broken package
|
||||
# depends_on('flex', when='+sst') # optional in FFS, depends on BISON
|
||||
|
||||
depends_on("mpi", when="+mpi")
|
||||
depends_on("libzmq", when="+dataman")
|
||||
|
@@ -16,7 +16,7 @@ class Adms(AutotoolsPackage):
|
||||
url = "https://github.com/Qucs/ADMS/releases/download/release-2.3.7/adms-2.3.7.tar.gz"
|
||||
git = "https://github.com/Qucs/ADMS.git"
|
||||
|
||||
maintainers = ["cessenat"]
|
||||
maintainers("cessenat")
|
||||
|
||||
version("master", branch="master")
|
||||
version("2.3.7", sha256="3a78e1283ecdc3f356410474b3ff44c4dcc82cb89772087fd3bbde8a1038ce08")
|
||||
|
@@ -14,7 +14,7 @@ class AdolC(AutotoolsPackage):
|
||||
homepage = "https://github.com/coin-or/ADOL-C"
|
||||
url = "https://github.com/coin-or/ADOL-C/archive/releases/2.7.2.tar.gz"
|
||||
git = "https://github.com/coin-or/ADOL-C.git"
|
||||
maintainers = ["jppelteret"]
|
||||
maintainers("jppelteret")
|
||||
|
||||
version("master", branch="master")
|
||||
version("2.7.2", sha256="701e0856baae91b98397960d5e0a87a549988de9d4002d0e9a56fa08f5455f6e")
|
||||
|
@@ -15,7 +15,7 @@ class Agile(AutotoolsPackage):
|
||||
|
||||
tags = ["hep"]
|
||||
|
||||
maintainers = ["vvolkl"]
|
||||
maintainers("vvolkl")
|
||||
|
||||
version("1.5.1", sha256="e38536300060e4b845ccaaed824c7495944f9117a0d7e4ee74a18bf278e2012f")
|
||||
|
||||
|
@@ -19,7 +19,7 @@ class Akantu(CMakePackage):
|
||||
url = "https://gitlab.com/akantu/akantu/-/archive/v3.0.0/akantu-v3.0.0.tar.gz"
|
||||
git = "https://gitlab.com/akantu/akantu.git"
|
||||
|
||||
maintainers = ["nrichart"]
|
||||
maintainers("nrichart")
|
||||
|
||||
version("master", branch="master")
|
||||
version("3.0.0", sha256="7e8f64e25956eba44def1b2d891f6db8ba824e4a82ff0d51d6b585b60ab465db")
|
||||
|
@@ -17,7 +17,7 @@ class Albany(CMakePackage):
|
||||
homepage = "http://gahansen.github.io/Albany"
|
||||
git = "https://github.com/gahansen/Albany.git"
|
||||
|
||||
maintainers = ["gahansen"]
|
||||
maintainers("gahansen")
|
||||
|
||||
version("develop", branch="master")
|
||||
|
||||
|
@@ -14,7 +14,7 @@ class Alpaka(CMakePackage, CudaPackage):
|
||||
url = "https://github.com/alpaka-group/alpaka/archive/refs/tags/0.6.0.tar.gz"
|
||||
git = "https://github.com/alpaka-group/alpaka.git"
|
||||
|
||||
maintainers = ["vvolkl"]
|
||||
maintainers("vvolkl")
|
||||
|
||||
version("develop", branch="develop")
|
||||
version("0.8.0", sha256="e01bc377a7657d9a3e0c5f8d3f83dffbd7d0b830283c59efcbc1fb98cf88de43")
|
||||
|
@@ -16,7 +16,7 @@ class Alpgen(CMakePackage, MakefilePackage):
|
||||
homepage = "http://mlm.home.cern.ch/mlm/alpgen/"
|
||||
url = "http://mlm.home.cern.ch/mlm/alpgen/V2.1/v214.tgz"
|
||||
|
||||
maintainers = ["iarspider"]
|
||||
maintainers("iarspider")
|
||||
tags = ["hep"]
|
||||
|
||||
version("2.1.4", sha256="2f43f7f526793fe5f81a3a3e1adeffe21b653a7f5851efc599ed69ea13985c5e")
|
||||
|
@@ -13,7 +13,7 @@ class Alquimia(CMakePackage):
|
||||
homepage = "https://github.com/LBL-EESA/alquimia-dev"
|
||||
git = "https://github.com/LBL-EESA/alquimia-dev.git"
|
||||
|
||||
maintainers = ["smolins", "balay"]
|
||||
maintainers("smolins", "balay")
|
||||
|
||||
version("develop")
|
||||
version("1.0.10", commit="b2c11b6cde321f4a495ef9fcf267cb4c7a9858a0") # tag v.1.0.10
|
||||
|
@@ -22,7 +22,7 @@ class Aluminum(CMakePackage, CudaPackage, ROCmPackage):
|
||||
git = "https://github.com/LLNL/Aluminum.git"
|
||||
tags = ["ecp", "radiuss"]
|
||||
|
||||
maintainers = ["bvanessen"]
|
||||
maintainers("bvanessen")
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.0.0-lbann", tag="v1.0.0-lbann")
|
||||
|
@@ -26,7 +26,7 @@ class Amber(Package, CudaPackage):
|
||||
url = "file://{0}/Amber18.tar.bz2".format(os.getcwd())
|
||||
manual_download = True
|
||||
|
||||
maintainers = ["hseara"]
|
||||
maintainers("hseara")
|
||||
|
||||
version("20", sha256="a4c53639441c8cc85adee397933d07856cc4a723c82c6bea585cd76c197ead75")
|
||||
version("18", sha256="2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277")
|
||||
|
@@ -22,7 +22,7 @@ class AmdAocl(BundlePackage):
|
||||
|
||||
homepage = "https://developer.amd.com/amd-aocl/"
|
||||
|
||||
maintainers = ["amd-toolchain-support"]
|
||||
maintainers("amd-toolchain-support")
|
||||
|
||||
version("4.0")
|
||||
version("3.2")
|
||||
|
@@ -30,7 +30,7 @@ class Amdblis(BlisBase):
|
||||
url = "https://github.com/amd/blis/archive/3.0.tar.gz"
|
||||
git = "https://github.com/amd/blis.git"
|
||||
|
||||
maintainers = ["amd-toolchain-support"]
|
||||
maintainers("amd-toolchain-support")
|
||||
|
||||
version("4.0", sha256="cddd31176834a932753ac0fc4c76332868feab3e9ac607fa197d8b44c1e74a41")
|
||||
version("3.2", sha256="5a400ee4fc324e224e12f73cc37b915a00f92b400443b15ce3350278ad46fff6")
|
||||
|
@@ -35,7 +35,7 @@ class Amdfftw(FftwBase):
|
||||
url = "https://github.com/amd/amd-fftw/archive/3.0.tar.gz"
|
||||
git = "https://github.com/amd/amd-fftw.git"
|
||||
|
||||
maintainers = ["amd-toolchain-support"]
|
||||
maintainers("amd-toolchain-support")
|
||||
|
||||
version("4.0", sha256="5f02cb05f224bd86bd88ec6272b294c26dba3b1d22c7fb298745fd7b9d2271c0")
|
||||
version("3.2", sha256="31cab17a93e03b5b606e88dd6116a1055b8f49542d7d0890dbfcca057087b8d0")
|
||||
|
@@ -42,7 +42,7 @@ class Amdlibflame(LibflameBase):
|
||||
url = "https://github.com/amd/libflame/archive/3.0.tar.gz"
|
||||
git = "https://github.com/amd/libflame.git"
|
||||
|
||||
maintainers = ["amd-toolchain-support"]
|
||||
maintainers("amd-toolchain-support")
|
||||
|
||||
version("4.0", sha256="bcb05763aa1df1e88f0da5e43ff86d956826cbea1d9c5ff591d78a3e091c66a4")
|
||||
version("3.2", sha256="6b5337fb668b82d0ed0a4ab4b5af4e2f72e4cedbeeb4a8b6eb9a3ef057fb749a")
|
||||
@@ -63,6 +63,7 @@ class Amdlibflame(LibflameBase):
|
||||
provides("flame@5.2", when="@2:")
|
||||
|
||||
depends_on("python+pythoncmd", type="build")
|
||||
depends_on("gmake@4:", when="@3.0.1,3.1:", type="build")
|
||||
|
||||
@property
|
||||
def lapack_libs(self):
|
||||
|
@@ -27,7 +27,7 @@ class Amdlibm(SConsPackage):
|
||||
homepage = "https://developer.amd.com/amd-aocl/amd-math-library-libm/"
|
||||
git = "https://github.com/amd/aocl-libm-ose.git"
|
||||
url = "https://github.com/amd/aocl-libm-ose/archive/refs/tags/3.0.tar.gz"
|
||||
maintainers = ["amd-toolchain-support"]
|
||||
maintainers("amd-toolchain-support")
|
||||
|
||||
version("4.0", sha256="038c1eab544be77598eccda791b26553d3b9e2ee4ab3f5ad85fdd2a77d015a7d")
|
||||
version("3.2", sha256="c75b287c38a3ce997066af1f5c8d2b19fc460d5e56678ea81f3ac33eb79ec890")
|
||||
|
@@ -28,7 +28,7 @@ class Amdscalapack(ScalapackBase):
|
||||
homepage = "https://developer.amd.com/amd-aocl/scalapack/"
|
||||
git = "https://github.com/amd/scalapack.git"
|
||||
|
||||
maintainers = ["amd-toolchain-support"]
|
||||
maintainers("amd-toolchain-support")
|
||||
|
||||
version("4.0", sha256="f02913b5984597b22cdb9a36198ed61039a1bf130308e778dc31b2a7eb88b33b")
|
||||
version("3.2", sha256="9e00979bb1be39d627bdacb01774bc043029840d542fafc934d16fec3e3b0892")
|
||||
|
@@ -19,7 +19,7 @@ class Amgx(CMakePackage, CudaPackage):
|
||||
homepage = "https://developer.nvidia.com/amgx"
|
||||
url = "https://github.com/nvidia/amgx/archive/v2.1.0.tar.gz"
|
||||
|
||||
maintainers = ["js947"]
|
||||
maintainers("js947")
|
||||
|
||||
version("2.1.0", sha256="6245112b768a1dc3486b2b3c049342e232eb6281a6021fffa8b20c11631f63cc")
|
||||
version("2.0.1", sha256="6f9991f1836fbf4ba2114ce9f49febd0edc069a24f533bd94fd9aa9be72435a7")
|
||||
|
@@ -16,7 +16,7 @@ class Aml(AutotoolsPackage):
|
||||
|
||||
homepage = "https://argo-aml.readthedocs.io/"
|
||||
|
||||
maintainers = ["perarnau"]
|
||||
maintainers("perarnau")
|
||||
|
||||
test_requires_compiler = True
|
||||
|
||||
|
@@ -17,7 +17,7 @@ class Ampl(Package):
|
||||
homepage = "https://ampl.com/"
|
||||
manual_download = True
|
||||
|
||||
maintainers = ["robgics"]
|
||||
maintainers("robgics")
|
||||
|
||||
# Use the version as you would expect the user to know it, not necessarily the
|
||||
# version as it appears in the file name. To get the checksum, use sha256sum.
|
||||
|
@@ -14,7 +14,7 @@ class Ampt(MakefilePackage):
|
||||
homepage = "http://myweb.ecu.edu/linz/ampt/"
|
||||
url = "http://myweb.ecu.edu/linz/ampt/ampt-v1.26t9b-v2.26t9b.zip"
|
||||
|
||||
maintainers = ["vvolkl"]
|
||||
maintainers("vvolkl")
|
||||
|
||||
tags = ["hep"]
|
||||
|
||||
|
@@ -15,7 +15,7 @@ class AmqpCpp(CMakePackage):
|
||||
git = "https://github.com/CopernicaMarketingSoftware/AMQP-CPP.git"
|
||||
url = "https://github.com/CopernicaMarketingSoftware/AMQP-CPP/archive/refs/tags/v4.3.19.tar.gz"
|
||||
|
||||
maintainers = ["lpottier"]
|
||||
maintainers("lpottier")
|
||||
|
||||
version("4.3.19", sha256="ca29bb349c498948576a4604bed5fd3c27d87240b271a4441ccf04ba3797b31d")
|
||||
|
||||
|
@@ -13,7 +13,7 @@ class AmrWind(CMakePackage, CudaPackage, ROCmPackage):
|
||||
homepage = "https://github.com/Exawind/amr-wind"
|
||||
git = "https://github.com/Exawind/amr-wind.git"
|
||||
|
||||
maintainers = ["jrood-nrel", "psakievich"]
|
||||
maintainers("jrood-nrel", "psakievich")
|
||||
|
||||
tags = ["ecp", "ecp-apps"]
|
||||
|
||||
|
@@ -14,16 +14,17 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage):
|
||||
mesh refinement (AMR) applications."""
|
||||
|
||||
homepage = "https://amrex-codes.github.io/amrex/"
|
||||
url = "https://github.com/AMReX-Codes/amrex/releases/download/23.01/amrex-23.01.tar.gz"
|
||||
url = "https://github.com/AMReX-Codes/amrex/releases/download/23.02/amrex-23.02.tar.gz"
|
||||
git = "https://github.com/AMReX-Codes/amrex.git"
|
||||
|
||||
test_requires_compiler = True
|
||||
|
||||
tags = ["ecp", "e4s"]
|
||||
|
||||
maintainers = ["WeiqunZhang", "asalmgren", "etpalmer63"]
|
||||
maintainers("WeiqunZhang", "asalmgren", "etpalmer63")
|
||||
|
||||
version("develop", branch="development")
|
||||
version("23.02", sha256="f443c5eb4b89f4a74bf0e1b8a5943da18ab81cdc76aff12e8282ca43ffd06412")
|
||||
version("23.01", sha256="3b1770653a7c6d3e6167bc3cce98cbf838962102c510d1f872ab08f1115933b7")
|
||||
version("22.12", sha256="7b11e547e70bdd6f4b36682708a755d173eaecd8738536306d4217df4dd1be3d")
|
||||
version("22.11", sha256="8be9d5c6934d73b98c71c9c67ca7113f18794268f257333591d9b2449d7410c4")
|
||||
|
@@ -16,7 +16,7 @@ class Amrvis(MakefilePackage):
|
||||
homepage = "https://github.com/AMReX-Codes/Amrvis"
|
||||
git = "https://github.com/AMReX-Codes/Amrvis.git"
|
||||
|
||||
maintainers = ["etpalmer63"]
|
||||
maintainers("etpalmer63")
|
||||
|
||||
version("main", tag="main")
|
||||
|
||||
|
@@ -19,7 +19,7 @@ class Anaconda2(Package):
|
||||
homepage = "https://www.anaconda.com"
|
||||
url = "https://repo.anaconda.com/archive/Anaconda2-2019.10-Linux-x86_64.sh"
|
||||
|
||||
maintainers = ["ajkotobi"]
|
||||
maintainers("ajkotobi")
|
||||
|
||||
version(
|
||||
"2019.10",
|
||||
|
@@ -20,7 +20,7 @@ class Anaconda3(Package):
|
||||
homepage = "https://www.anaconda.com"
|
||||
url = "https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh"
|
||||
|
||||
maintainers = ["ajkotobi"]
|
||||
maintainers("ajkotobi")
|
||||
|
||||
version(
|
||||
"2022.10",
|
||||
|
@@ -12,7 +12,7 @@ class Andi(AutotoolsPackage):
|
||||
|
||||
homepage = "https://github.com/EvolBioInf/andi"
|
||||
url = "https://github.com/EvolBioInf/andi/archive/v0.10.tar.gz"
|
||||
maintainers = ["snehring"]
|
||||
maintainers("snehring")
|
||||
|
||||
version("0.14", sha256="2c9e11524f38e74fe3f981e6acd9527c1a1ca30994a30c5e86808ba5165a25b7")
|
||||
version("0.10", sha256="1ff371de0b6db4080e402ded2687947dc2d6913e28626edec21dcf5149489ee8")
|
||||
|
@@ -12,7 +12,7 @@ class Antimony(CMakePackage):
|
||||
homepage = "http://antimony.sourceforge.net/"
|
||||
url = "antimony"
|
||||
|
||||
maintainers = ["rblake-llnl"]
|
||||
maintainers("rblake-llnl")
|
||||
|
||||
version("2.8", sha256="7e3e38706c074b72e241ac56ef4ce23e87ef8c718c70f29b2207f1847c43770f")
|
||||
version("2.7", sha256="7ad181cac632282ae77ced09388dd92db87ea4683eed8c45f2b43861ae2acad4")
|
||||
|
@@ -31,7 +31,7 @@ class Aocc(Package):
|
||||
family = "compiler"
|
||||
homepage = "https://developer.amd.com/amd-aocc/"
|
||||
|
||||
maintainers = ["amd-toolchain-support"]
|
||||
maintainers("amd-toolchain-support")
|
||||
|
||||
version(
|
||||
ver="4.0.0",
|
||||
|
@@ -26,7 +26,7 @@ class AoclSparse(CMakePackage):
|
||||
url = "https://github.com/amd/aocl-sparse/archive/3.0.tar.gz"
|
||||
git = "https://github.com/amd/aocl-sparse.git"
|
||||
|
||||
maintainers = ["amd-toolchain-support"]
|
||||
maintainers("amd-toolchain-support")
|
||||
|
||||
version("4.0", sha256="68524e441fdc7bb923333b98151005bed39154d9f4b5e8310b5c37de1d69c2c3")
|
||||
version("3.2", sha256="db7d681a8697d6ef49acf3e97e8bec35b048ce0ad74549c3b738bbdff496618f")
|
||||
|
@@ -84,7 +84,7 @@ class Aomp(Package):
|
||||
homepage = tools_url + "/aomp"
|
||||
url = tools_url + "/aomp/archive/rocm-3.10.0.tar.gz"
|
||||
|
||||
maintainers = ["srekolam", "arjun-raj-kuppala", "estewart08"]
|
||||
maintainers("srekolam", "arjun-raj-kuppala", "estewart08")
|
||||
|
||||
tags = ["e4s"]
|
||||
|
||||
|
@@ -34,7 +34,7 @@ class Apcomp(Package):
|
||||
"https://github.com/Alpine-DAV/ap_compositor/releases/download/v0.0.1/apcomp-v0.0.1.tar.gz"
|
||||
)
|
||||
|
||||
maintainers = ["cyrush"]
|
||||
maintainers("cyrush")
|
||||
|
||||
version("master", branch="master", submodules="True")
|
||||
version("0.0.4", sha256="061876dd55e443de91a40d10662496f6bb58b0a3835aec78f5710f5a737d0494")
|
||||
|
@@ -13,7 +13,7 @@ class AperturePhotometry(Package):
|
||||
|
||||
homepage = "http://www.aperturephotometry.org/"
|
||||
url = "https://web.ipac.caltech.edu/staff/laher/apt/APT_v2.8.4.tar.gz"
|
||||
maintainers = ["snehring"]
|
||||
maintainers("snehring")
|
||||
|
||||
version("3.0.2", "8ac430079825ba274567fb998dd693bb6f99490f5b896d4746178ba796bfdead")
|
||||
version("2.8.4", "28ae136c708a3ebcb83632230e119a03ca1a65499006ab69dc76e21b4921f465")
|
||||
|
@@ -11,7 +11,7 @@
|
||||
class Apex(CMakePackage):
|
||||
"""Autonomic Performance Environment for eXascale (APEX)."""
|
||||
|
||||
maintainers = ["khuck"]
|
||||
maintainers("khuck")
|
||||
homepage = "https://uo-oaciss.github.io/apex"
|
||||
url = "https://github.com/UO-OACISS/apex/archive/v2.3.1.tar.gz"
|
||||
git = "https://github.com/UO-OACISS/apex"
|
||||
|
@@ -12,7 +12,7 @@ class AppleGl(Package):
|
||||
|
||||
homepage = "https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_intro/opengl_intro.html"
|
||||
|
||||
maintainers = ["aphecetche"]
|
||||
maintainers("aphecetche")
|
||||
|
||||
has_code = False
|
||||
|
||||
|
@@ -12,7 +12,7 @@ class AppleGlu(Package):
|
||||
|
||||
homepage = ""
|
||||
|
||||
maintainers = ["aphecetche"]
|
||||
maintainers("aphecetche")
|
||||
|
||||
has_code = False
|
||||
|
||||
|
@@ -33,6 +33,8 @@ class Apptainer(SingularityBase):
|
||||
version("1.1.3", sha256="c7bf7f4d5955e1868739627928238d02f94ca9fd0caf110b0243d65548427899")
|
||||
version("1.0.2", sha256="2d7a9d0a76d5574459d249c3415e21423980d9154ce85e8c34b0600782a7dfd3")
|
||||
|
||||
depends_on("go@1.17.5:", when="@1.1.0:")
|
||||
|
||||
singularity_org = "apptainer"
|
||||
singularity_name = "apptainer"
|
||||
singularity_security_urls = (
|
||||
|
@@ -13,7 +13,7 @@ class Arbor(CMakePackage, CudaPackage):
|
||||
homepage = "https://arbor-sim.org"
|
||||
git = "https://github.com/arbor-sim/arbor.git"
|
||||
url = "https://github.com/arbor-sim/arbor/releases/download/v0.8.1/arbor-v0.8.1-full.tar.gz"
|
||||
maintainers = ["bcumming", "brenthuisman", "haampie", "schmitts"]
|
||||
maintainers("bcumming", "brenthuisman", "haampie", "schmitts")
|
||||
|
||||
version("master", branch="master", submodules=True)
|
||||
version(
|
||||
|
@@ -15,7 +15,7 @@ class Arborx(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
tags = ["e4s", "ecp"]
|
||||
|
||||
maintainers = ["aprokop"]
|
||||
maintainers("aprokop")
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.3", sha256="3f1e17f029a460ab99f8396e2772cec908eefc4bf3868c8828907624a2d0ce5d")
|
||||
|
@@ -18,7 +18,7 @@ class Arc(CMakePackage):
|
||||
url = "https://github.com/FTHPC/ARC"
|
||||
git = "https://github.com/robertu94/ARC"
|
||||
|
||||
maintainers = ["robertu94"]
|
||||
maintainers("robertu94")
|
||||
|
||||
version("master", branch="master")
|
||||
version("2021-12-01", commit="49d4a5df53a082f15a6959aef434224fd7b9beac")
|
||||
|
@@ -18,7 +18,7 @@ class Argobots(AutotoolsPackage):
|
||||
homepage = "https://www.argobots.org/"
|
||||
url = "https://github.com/pmodels/argobots/releases/download/v1.0b1/argobots-1.0b1.tar.gz"
|
||||
git = "https://github.com/pmodels/argobots.git"
|
||||
maintainers = ["shintaro-iwasaki"]
|
||||
maintainers("shintaro-iwasaki")
|
||||
|
||||
tags = ["e4s"]
|
||||
|
||||
|
@@ -17,12 +17,15 @@ class ArmForge(Package):
|
||||
through to complex parallel HPC codes with MPI, OpenMP, threads or CUDA."""
|
||||
|
||||
homepage = "https://www.arm.com/products/development-tools/server-and-hpc/forge"
|
||||
maintainers = ["NickRF"]
|
||||
maintainers("NickRF")
|
||||
|
||||
# TODO: this mess should be fixed as soon as a way to parametrize/constrain
|
||||
# versions (and checksums) based on the target platform shows up
|
||||
|
||||
if platform.machine() == "aarch64":
|
||||
version(
|
||||
"22.1.3", sha256="131884f998b82673e885a7b42cc883210e3a0229b50af374092140cdfd42a408"
|
||||
)
|
||||
version(
|
||||
"22.1.2", sha256="1774ed647a18d2cb47b2e4dd4f6f268f67817dfe6a6bca8ba2f9e71d2f18c690"
|
||||
)
|
||||
@@ -64,6 +67,9 @@ class ArmForge(Package):
|
||||
)
|
||||
version("21.0", sha256="2bcc745d0049d6b25c77c97b2d7bad7b4f804180972a2306a8599ce41f6a4573")
|
||||
elif platform.machine() == "ppc64le":
|
||||
version(
|
||||
"22.1.3", sha256="6479c3a4ae6ce6648c37594eb0266161f06d9f89010fca9299855848661dda49"
|
||||
)
|
||||
version(
|
||||
"22.1.2", sha256="1c59d1ccdd83bbd953d891a8e5f4926949daab7f6f1cd73328128794615d23ad"
|
||||
)
|
||||
@@ -105,6 +111,9 @@ class ArmForge(Package):
|
||||
)
|
||||
version("21.0", sha256="60cfa7dd1cd131ec85e67cb660f2f84cf30bb700d8979cae1f5f88af658fd249")
|
||||
elif platform.machine() == "x86_64":
|
||||
version(
|
||||
"22.1.3", sha256="4f8a8b1df6ad712e89c82eedf4bd85b93b57b3c8d5b37d13480ff058fa8f4467"
|
||||
)
|
||||
version(
|
||||
"22.1.2", sha256="baeac2b49c38547a8f3dd6a5237544eefe8c7695d969784e6f861ce77b610542"
|
||||
)
|
||||
|
@@ -145,7 +145,7 @@ class ArmplGcc(Package):
|
||||
homepage = "https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-libraries"
|
||||
url = "https://developer.arm.com/-/media/Files/downloads/hpc/arm-performance-libraries/22-1/ubuntu-20/arm-performance-libraries_22.1_Ubuntu-20.04_gcc-11.2.tar"
|
||||
|
||||
maintainers = ["annop-w"]
|
||||
maintainers("annop-w")
|
||||
|
||||
for ver, packages in _versions.items():
|
||||
key = "{0}".format(get_os())
|
||||
|
@@ -13,7 +13,7 @@ class Arrayfire(CMakePackage, CudaPackage):
|
||||
|
||||
homepage = "https://arrayfire.org/docs/index.htm"
|
||||
git = "https://github.com/arrayfire/arrayfire.git"
|
||||
maintainers = ["umar456"]
|
||||
maintainers("umar456")
|
||||
|
||||
version("master")
|
||||
version("3.8.1", commit="823e8e399fe8c120c6ec7ec75f09e6106b3074ca", tag="v3.8.1")
|
||||
|
@@ -48,7 +48,7 @@ class Ascent(CMakePackage, CudaPackage):
|
||||
url = "https://github.com/Alpine-DAV/ascent/releases/download/v0.5.1/ascent-v0.5.1-src-with-blt.tar.gz"
|
||||
tags = ["radiuss", "e4s"]
|
||||
|
||||
maintainers = ["cyrush"]
|
||||
maintainers("cyrush")
|
||||
|
||||
version("develop", branch="develop", submodules=True)
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user