Skip to content

Commit

Permalink
Merge branch 'develop' into package_check_util
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexanderRichert-NOAA authored Feb 13, 2024
2 parents 270dd67 + b7b36e0 commit e567794
Show file tree
Hide file tree
Showing 17 changed files with 58 additions and 49 deletions.
8 changes: 5 additions & 3 deletions .github/workflows/macos-ci-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,9 @@ jobs:
export SPACK_SYSTEM_CONFIG_PATH="${ENVDIR}/site"
# Find external packages
spack external find --scope system --exclude bison --exclude openssl
spack external find --scope system \
--exclude bison --exclude openssl \
--exclude python
spack external find --scope system perl
spack external find --scope system wget
PATH="/opt/homebrew/opt/curl/bin:$PATH" \
Expand All @@ -77,7 +79,7 @@ jobs:
# *DH
# Set compiler and MPI
spack config add "packages:all:providers:mpi:[openmpi@4.1.6]"
spack config add "packages:all:providers:mpi:[openmpi@5.0.1]"
spack config add "packages:all:compiler:[[email protected]]"
sed -i '' "s/\['\%aocc', '\%apple-clang', '\%gcc', '\%intel'\]/\['\%apple-clang'\]/g" $ENVDIR/spack.yaml
Expand Down Expand Up @@ -136,7 +138,7 @@ jobs:
module use ${ENVDIR}/install/modulefiles/Core
module load stack-apple-clang/14.0.3
module load stack-openmpi/4.1.6
module load stack-openmpi/5.0.1
module load stack-python/3.10.13
module available
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/macos-ci-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,11 @@ jobs:
export SPACK_SYSTEM_CONFIG_PATH="${ENVDIR}/site"
# Find external packages
spack external find --scope system --exclude bison --exclude openssl
spack external find --scope system \
--exclude bison --exclude openssl \
--exclude python --exclude gettext
# Need to find gettext outside of default (presumed to be a system) path for krb5
spack external find --path=/usr/local/Cellar/gettext/0.21.1 gettext
spack external find --scope system perl
spack external find --scope system wget
PATH="/usr/local/opt/curl/bin:$PATH" \
Expand All @@ -70,7 +74,7 @@ jobs:
# *DH
# Set compiler and MPI
spack config add "packages:all:providers:mpi:[openmpi@4.1.6]"
spack config add "packages:all:providers:mpi:[openmpi@5.0.1]"
spack config add "packages:all:compiler:[[email protected]]"
sed -i '' "s/\['\%aocc', '\%apple-clang', '\%gcc', '\%intel'\]/\['\%apple-clang'\]/g" $ENVDIR/spack.yaml
Expand Down Expand Up @@ -127,7 +131,7 @@ jobs:
module use ${ENVDIR}/install/modulefiles/Core
module load stack-apple-clang/14.0.0
module load stack-openmpi/4.1.6
module load stack-openmpi/5.0.1
module load stack-python/3.10.13
module available
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/ubuntu-ci-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ jobs:
export SPACK_SYSTEM_CONFIG_PATH="${ENVDIR}/site"
# Find external packages
spack external find --scope system --exclude bison --exclude openssl
spack external find --scope system \
--exclude bison --exclude openssl \
--exclude python
spack external find --scope system sed
spack external find --scope system perl
spack external find --scope system wget
Expand Down
2 changes: 0 additions & 2 deletions configs/common/modules_lmod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -285,5 +285,3 @@ modules:
- PKG_CONFIG_PATH
lib64/pkgconfig:
- PKG_CONFIG_PATH
'':
- CMAKE_PREFIX_PATH
2 changes: 0 additions & 2 deletions configs/common/modules_tcl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -284,5 +284,3 @@ modules:
- PKG_CONFIG_PATH
lib64/pkgconfig:
- PKG_CONFIG_PATH
'':
- CMAKE_PREFIX_PATH
31 changes: 14 additions & 17 deletions configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
ecbuild:
version: ['3.7.2']
eccodes:
version: ['2.32.0']
version: ['2.33.0']
variants: +png
ecflow:
version: ['5.11.4']
Expand All @@ -49,7 +49,7 @@
version: ['1.24.5']
variants: linalg=eigen,lapack compression=lz4,bzip2
ecmwf-atlas:
version: ['0.35.1']
version: ['0.36.0']
variants: +fckit +trans +tesselation +fftw
ectrans:
version: ['1.2.0']
Expand Down Expand Up @@ -113,8 +113,8 @@
version: ['4.2.15']
variants: +external-xdr ~fortran ~netcdf
hdf5:
version: ['1.14.0']
variants: +hl +fortran +mpi ~threadsafe +szip
version: ['1.14.3']
variants: +hl +fortran +mpi ~threadsafe ~szip
ip:
version: ['4.3.0']
variants: precision=4,d,8
Expand All @@ -124,8 +124,6 @@
version: ['2.0.32']
jedi-cmake:
version: ['1.4.0']
jpeg:
version: ['9.1.0']
landsfcutil:
version: ['2.4.1']
libjpeg-turbo:
Expand All @@ -148,10 +146,8 @@
require: "+int64 +real64"
mpich:
variants: ~hwloc +two_level_namespace
mysql:
variants: +download_boost
nco:
version: ['5.0.6']
version: ['5.1.6']
variants: ~doc
# ncview - when adding information here, also check Orion
# and Discover site configs
Expand All @@ -166,7 +162,7 @@
netcdf-c:
version: ['4.9.2']
# If using 4.9.1, turn off byterange variant to fix compile error: ~byterange
variants: +dap +mpi ~parallel-netcdf
variants: +dap +mpi ~parallel-netcdf ~szip
netcdf-cxx4:
version: ['4.3.1']
netcdf-fortran:
Expand All @@ -183,17 +179,17 @@
version: ['0.3.24']
variants: +noavx512
openmpi:
variants: +internal-hwloc +two_level_namespace
variants: ~internal-hwloc +two_level_namespace
# Pin openssl to avoid duplicate packages being built
openssl:
variants: +shared
p4est:
version: ['2.8']
parallelio:
version: ['2.5.10']
version: ['2.6.2']
variants: +pnetcdf
parallel-netcdf:
version: ['1.12.2']
version: ['1.12.3']
pflogger:
version: ['1.12.0']
variants: +mpi
Expand Down Expand Up @@ -221,6 +217,9 @@
# to avoid duplicate packages being built (cylc dependencies soft-want @3:)
py-cython:
require: "@0.29.36"
## https://github.com/JCSDA/spack-stack/issues/980
#py-gitpython:
# require: "@3.1.27"
py-h5py:
version: ['3.7.0']
variants: ~mpi
Expand All @@ -237,9 +236,6 @@
require: ['@1.22.3']
py-pandas:
variants: +excel
# To avoid pip._vendor.pep517.wrappers.BackendInvalid errors with newer
# versions of py-poetry-core when using external/homebrew Python as
# we do at the moment in spack-stack.
# Pin the py-setuptools version to avoid duplicate Python packages
py-setuptools:
require: ['@63.4.3']
Expand All @@ -263,6 +259,7 @@
variants: precision=4,d,8
udunits:
version: ['2.2.28']
# Note - we can remove upp from stack at some point?
upp:
version: ['10.0.10']
w3emc:
Expand All @@ -278,7 +275,7 @@
wrf-io:
version: ['1.2.0']
yafyaml:
version: ['0.5.1']
version: ['1.2.0']
zlib:
version: ['1.2.13']
zstd:
Expand Down
6 changes: 5 additions & 1 deletion configs/sites/derecho/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ compilers::
PATH: '/opt/cray/pe/gcc/12.2.0/bin'
CPATH: '/opt/cray/pe/gcc/12.2.0/snos/include'
LD_LIBRARY_PATH: '/glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/compiler/lib/intel64_lin:/opt/cray/pe/gcc/12.2.0/snos/lib:/opt/cray/pe/gcc/12.2.0/lib64'
set:
# https://github.com/JCSDA/spack-stack/issues/957
FI_CXI_RX_MATCH_MODE: 'hybrid'
extra_rpaths: []
- compiler:
spec: [email protected]
Expand All @@ -33,6 +36,7 @@ compilers::
- gcc/12.2.0
environment:
set:
CRAYPE_LINK_TYPE: 'dynamic'
# https://github.com/JCSDA/spack-stack/issues/957
FI_CXI_RX_MATCH_MODE: 'hybrid'
extra_rpaths: []

1 change: 1 addition & 0 deletions configs/templates/skylab-dev/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ spack:
- ewok-env +ecflow +cylc
- geos-gcm-env
- jedi-fv3-env
- jedi-geos-env
- jedi-mpas-env
- jedi-neptune-env
- jedi-ufs-env
Expand Down
4 changes: 2 additions & 2 deletions configs/templates/ufs-weather-model-static/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ spack:
- [email protected]
- [email protected]
- [email protected]
- [email protected]+hl+mpi~shared~tools
- [email protected]+hl+mpi~shared~tools~szip
- [email protected]
- [email protected]~shared
- libjpeg-turbo~shared
- [email protected] libs=static
- [email protected]~shared~pflogger~fargparse~extdata2g
- [email protected]~parallel-netcdf+mpi~shared~dap
- [email protected]~parallel-netcdf+mpi~shared~dap~szip
- [email protected]~shared
- [email protected]~shared
- [email protected]+fortran~pnetcdf~shared
Expand Down
1 change: 1 addition & 0 deletions configs/templates/unified-dev/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ spack:
- gmao-swell-env
- gsi-env
- jedi-fv3-env
- jedi-geos-env
- jedi-mpas-env
- jedi-neptune-env
- jedi-tools-env
Expand Down
13 changes: 6 additions & 7 deletions doc/source/MaintainersSection.rst
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,7 @@ NOAA RDHPCS Gaea C5
On Gaea C5, ``miniconda``, ``qt``, ``ecflow``, and ``mysql`` need to be installed as a one-off before spack can be used.

qt (qt@5)
The default ``qt@5`` in ``/usr`` is incomplete and thus insufficient for building ``ecflow``. After loading/unloading the modules as shown below, refer to :numref:`Section %s <MaintainersSection_Qt5>` to install ``[email protected]`` in ``/lustre/f2/dev/wpo/role.epic/contrib/spack-stack/c5/qt-5.15.2``. :numref:`Section %s <MaintainersSection_Qt5>` describes how to export the X windows environment in order to install ``qt@5`` using the role account.
The default ``qt@5`` in ``/usr`` is incomplete and thus insufficient for building ``ecflow``. After loading/unloading the modules as shown below, refer to :numref:`Section %s <MaintainersSection_Qt5>` to install ``[email protected]`` in ``/ncrc/proj/epic/spack-stack/qt-5.15.2``. :numref:`Section %s <MaintainersSection_Qt5>` describes how to export the X windows environment in order to install ``qt@5`` using the role account.

.. code-block:: console
Expand All @@ -566,22 +566,21 @@ qt (qt@5)
module load PrgEnv-gnu/8.3.3
ecflow
``ecFlow`` must be built manually using the GNU compilers and linked against a static ``boost`` library. After installing `qt5` and loading the following modules, follow the instructions in :numref:`Section %s <MaintainersSection_ecFlow>`. Because of the dependency on ``miniconda``, that module must be loaded automatically in the ``ecflow`` module (similar to ``[email protected]``). Ensure to follow the extra instructions in that section for Gaea C5 in ``/lustre/f2/dev/wpo/role.epic/contrib/spack-stack/c5/ecflow-5.8.4``.
``ecFlow`` must be built manually using the GNU compilers and linked against a static ``boost`` library. After installing `qt5` and loading the following modules, follow the instructions in :numref:`Section %s <MaintainersSection_ecFlow>`. Because of the dependency on ``miniconda``, that module must be loaded automatically in the ``ecflow`` module (similar to ``[email protected]``). Ensure to follow the extra instructions in that section for Gaea C5 in ``/ncrc/proj/epic/spack-stack/ecflow-5.8.4``.

Ensure to follow the extra instructions in that section for Gaea.

.. code-block:: console
module unload intel-classic cray-mpich PrgEnv-intel
module load gcc/10.3.0
module load PrgEnv-gnu/8.3.3
module use /ncrc/proj/epic/spack-stack/modulefiles/
module load qt/5.15.2
module load python/3.9.12
module load cmake/3.23.1
module use /lustre/f2/dev/wpo/role.epic/contrib/spack-stack/c5/modulefiles
module load qt/5.15.2
mysql
``mysql`` must be installed separately from ``spack`` using a binary tarball provided by the MySQL community. Follow the instructions in :numref:`Section %s <MaintainersSection_MySQL>` to install ``mysql`` in ``/lustre/f2/dev/wpo/role.epic/contrib/spack-stack/c5/mysql-8.0.31``.
``mysql`` must be installed separately from ``spack`` using a binary tarball provided by the MySQL community. Follow the instructions in :numref:`Section %s <MaintainersSection_MySQL>` to install ``mysql`` in ``/ncrc/proj/epic/spack-stack/mysql-8.0.36``.

.. _MaintainersSection_Hera:

Expand Down
8 changes: 5 additions & 3 deletions doc/source/NewSiteConfigs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,9 @@ Remember to activate the ``lua`` module environment and have MacTeX in your sear

.. code-block:: console
spack external find --scope system --exclude bison --exclude openssl
spack external find --scope system \
--exclude bison --exclude openssl \
--exclude python
spack external find --scope system libiconv
spack external find --scope system perl
spack external find --scope system wget
Expand Down Expand Up @@ -249,7 +251,7 @@ Remember to activate the ``lua`` module environment and have MacTeX in your sear
# Check your clang version then add it to your site compiler config.
clang --version
spack config add "packages:all:compiler:[apple-clang@YOUR-VERSION]"
spack config add "packages:all:providers:mpi:[openmpi@4.1.6]"
spack config add "packages:all:providers:mpi:[openmpi@5.0.1]"
8. If applicable (depends on the environment), edit the main config file for the environment and adjust the compiler matrix to match the compilers for macOS, as above:

Expand Down Expand Up @@ -449,7 +451,7 @@ It is recommended to increase the stacksize limit by using ``ulimit -S -s unlimi
spack external find --scope system \
--exclude bison --exclude cmake \
--exclude curl --exclude openssl \
--exclude openssh
--exclude openssh --exclude python
spack external find --scope system wget
spack external find --scope system mysql
spack external find --scope system texlive
Expand Down
8 changes: 4 additions & 4 deletions doc/source/PreConfiguredSites.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Ready-to-use spack-stack 1.6.0 installations are available on the following, ful
+---------------------+----------------------------------+-----------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
| NOAA (NCEP) | Acorn | Intel | ``/lfs/h1/emc/nceplibs/noscrub/spack-stack/spack-stack-1.6.0/envs/unified-env-intel{19,2022}`` | Hang Lei / Alex Richert |
+---------------------+----------------------------------+-----------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
| | Gaea C5 | Intel | ``/lustre/f2/dev/wpo/role.epic/contrib/spack-stack/c5/spack-stack-1.6.0/envs/unified-env`` | Cam Book / Dom Heinzeller |
| | Gaea C5 | Intel | ``/ncrc/proj/epic/spack-stack/spack-stack-1.6.0/envs/unified-env`` | Cam Book / Dom Heinzeller |
| +----------------------------------+-----------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
| NOAA (RDHPCS) | Hera | GCC, Intel | ``/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.6.0/envs/unified-env`` | Mark Potts / Dom Heinzeller |
| +----------------------------------+-----------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
Expand Down Expand Up @@ -454,15 +454,15 @@ The following is required for building new spack environments and for using spac
module load cray-mpich/8.1.25
module load python/3.9.12
module use /lustre/f2/dev/wpo/role.epic/contrib/spack-stack/c5/modulefiles
module use /ncrc/proj/epic/spack-stack/modulefiles
module load ecflow/5.8.4
module load mysql/8.0.31
module load mysql/8.0.36
For ``spack-stack-1.6.0`` with Intel, load the following modules after loading miniconda and ecflow:

.. code-block:: console
module use /lustre/f2/dev/wpo/role.epic/contrib/spack-stack/c5/spack-stack-1.6.0/envs/unified-env/install/modulefiles/Core
module use /ncrc/proj/epic/spack-stack/spack-stack-1.6.0/envs/unified-env/install/modulefiles/Core
module load stack-intel/2023.1.0
module load stack-cray-mpich/8.1.25
module load stack-python/3.10.13
Expand Down
2 changes: 1 addition & 1 deletion spack
Submodule spack updated 8794 files
4 changes: 2 additions & 2 deletions spack-ext/lib/jcsda-emc/spack-stack/stack/stack_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ def write(self):
# Activate environment
env = ev.Environment(manifest_dir=env_dir)
ev.activate(env)
env_scope = env.env_file_config_scope_name()
env_scope = env.scope_name

# Save original data in spack.yaml because it has higest precedence.
# spack.config.add will overwrite as it goes.
Expand Down Expand Up @@ -271,7 +271,7 @@ def write(self):
os.makedirs(env_pkgs_path, exist_ok=False)
with open(os.path.join(env_repo_path, "repo.yaml"), "w") as f:
f.write("repo:\n namespace: envrepo")
repo_paths = spack.config.get("repos", scope=spack.config.default_list_scope())
repo_paths = spack.config.get("repos")
repo_paths = [p.replace("$spack/", spack.paths.spack_root + "/") for p in repo_paths]
for pkg_name in self.modifypkg:
pkg_found = False
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def test_setup_meta_modules():

# Setup env and pretend that a build exists
# by creating the module directory structure.
scope = env.env_file_config_scope_name()
scope = env.scope_name
spack.config.add("packages:all:compiler:[{}]".format(comp), scope=scope)
spack.config.add("packages:all:providers:mpi:[{}]".format(mpi), scope=scope)
spack.config.add("packages:openmpi:version:[{}]".format(mpi_ver))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,6 @@ class JediMpasEnv(BundlePackage):

depends_on("jedi-base-env", type="run")
depends_on("metis", type="run")
depends_on("jasper", type="run")

# There is no need for install() since there is no code.

0 comments on commit e567794

Please sign in to comment.