Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
f645224
Update .gitmodules and submodule pointer for repos/builtin for code r…
climbfuji Jan 29, 2026
9c503cd
Comment out local-source mirrors and revert temporary spack-v1 build …
climbfuji Jan 29, 2026
8e6bc00
Add logic to add temporary source caches after concretization
climbfuji Jan 29, 2026
06628d0
Bug fix in util/nrl/batch_install.sh
climbfuji Jan 30, 2026
e8448e2
Revert spack source-cache changes for NRL sites
climbfuji Jan 30, 2026
af42f4a
Revert .gitmodules and update submodule pointer for repos/builtin
climbfuji Jan 30, 2026
33c9103
Apply suggestion from @climbfuji
climbfuji Jan 30, 2026
586ef76
[skip ci] Update util/nrl/batch_install.sh: create bootstrap mirror s…
climbfuji Jan 30, 2026
abfd06f
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Feb 2, 2026
10ec4c2
Add configs/sites/tier1/nautilus/packages_oneapi-2024.2.1.yaml
climbfuji Feb 2, 2026
8e18d7e
Update NRL sites: pin compilers to specific versions
climbfuji Feb 2, 2026
f355e6e
[skip ci] util/nrl/batch_install.sh: Nautilus with oneapi@2024.2.1
climbfuji Feb 2, 2026
d2132e0
[skip ci] Fix wrong paths in util/nrl/batch_install.sh
climbfuji Feb 2, 2026
e9a91f2
Require parallelio +pnetcdf
climbfuji Feb 3, 2026
c445f5a
Speed up util/nrl/batch_install.sh and prevent misleading error messages
climbfuji Feb 3, 2026
1a079e5
Update .gitmodules and submodule pointer for spack for code review an…
climbfuji Feb 3, 2026
d842f5e
Revert .gitmodules and update submodule pointer for spack
climbfuji Feb 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ packages:
parallelio:
require:
- '@2.6.2'
- +pnetcdf
# DH* CAN WE UPDATE? NEED A NEW SHARED-INTEL PATCH?
parallel-netcdf:
require:
Expand Down
4 changes: 4 additions & 0 deletions configs/sites/tier1/atlantis/packages_clang-21.1.0.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
packages:
all:
require:
- any_of: ['%llvm@=21.1.0']
when: '%llvm'
mpi:
buildable: False
require:
Expand Down
4 changes: 4 additions & 0 deletions configs/sites/tier1/atlantis/packages_gcc-13.4.0.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
packages:
all:
require:
- any_of: ['%gcc@=13.4.0']
when: '%gcc'
mpi:
buildable: False
require:
Expand Down
6 changes: 6 additions & 0 deletions configs/sites/tier1/atlantis/packages_oneapi-2024.2.1.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
packages:
all:
require:
- any_of: ['%intel-oneapi-compilers@=2024.2.1']
when: '%intel-oneapi-compilers'
- any_of: ['%gcc@=11.2.0']
when: '%gcc'
mpi:
buildable: false
require:
Expand Down
6 changes: 6 additions & 0 deletions configs/sites/tier1/atlantis/packages_oneapi-2025.3.0.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
packages:
all:
require:
- any_of: ['%intel-oneapi-compilers@=2025.3.0']
when: '%intel-oneapi-compilers'
- any_of: ['%gcc@=11.2.0']
when: '%gcc'
mpi:
buildable: false
require:
Expand Down
4 changes: 4 additions & 0 deletions configs/sites/tier1/blueback/packages_gcc-13.3.0.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
packages:
all:
require:
- any_of: ['%gcc@=13.3.0']
when: '%gcc'
mpi:
buildable: false
require:
Expand Down
6 changes: 6 additions & 0 deletions configs/sites/tier1/blueback/packages_oneapi-2025.0.4.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
packages:
all:
require:
- any_of: ['%intel-oneapi-compilers@=2025.0.4']
when: '%intel-oneapi-compilers'
- any_of: ['%gcc@=13.3.0']
when: '%gcc'
mpi:
buildable: false
require:
Expand Down
4 changes: 4 additions & 0 deletions configs/sites/tier1/narwhal/packages_gcc-12.2.0.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
packages:
all:
require:
- any_of: ['%gcc@=12.2.0']
when: '%gcc'
mpi:
buildable: false
require:
Expand Down
6 changes: 6 additions & 0 deletions configs/sites/tier1/narwhal/packages_oneapi-2024.2.0.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
packages:
all:
require:
- any_of: ['%intel-oneapi-compilers@=2024.2.0']
when: '%intel-oneapi-compilers'
- any_of: ['%gcc@=12.2.0']
when: '%gcc'
mpi:
buildable: false
require:
Expand Down
4 changes: 4 additions & 0 deletions configs/sites/tier1/nautilus/packages_gcc-13.3.1.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
packages:
all:
require:
- any_of: ['%gcc@=13.3.1']
when: '%gcc'
mpi:
buildable: False
require:
Expand Down
57 changes: 57 additions & 0 deletions configs/sites/tier1/nautilus/packages_oneapi-2024.2.1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
packages:
all:
require:
- any_of: ['%intel-oneapi-compilers@=2024.2.1']
when: '%intel-oneapi-compilers'
- any_of: ['%gcc@=11.2.1']
when: '%gcc'
mpi:
buildable: false
require:
- intel-oneapi-mpi@2021.13
intel-oneapi-compilers:
buildable: false
externals:
- spec: intel-oneapi-compilers@2024.2.1
prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1
modules:
- tbb/2021.13
- compiler-rt/2024.2.1
- compiler/2024.2.1
extra_attributes:
compilers:
c: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1/compiler/2024.2/bin/icx
cxx: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1/compiler/2024.2/bin/icpx
fortran: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1/compiler/2024.2/bin/ifort
environment:
prepend_path:
PATH: /opt/rh/gcc-toolset-11/root/usr/bin
CPATH: /opt/rh/gcc-toolset-11/root/usr/include
extra_rpaths:
- /opt/rh/gcc-toolset-11/root/usr/lib64
- /opt/rh/gcc-toolset-11/root/usr/lib
gcc:
buildable: false
externals:
- spec: gcc@11.2.1 languages:='c,c++'
prefix: /opt/rh/gcc-toolset-11/root/usr
modules:
- scl/gcc-toolset-11
extra_attributes:
compilers:
c: /opt/rh/gcc-toolset-11/root/usr/bin/gcc
cxx: /opt/rh/gcc-toolset-11/root/usr/bin/g++
fortran: /opt/rh/gcc-toolset-11/root/usr/bin/gfortran
intel-oneapi-mpi:
buildable: false
externals:
- spec: intel-oneapi-mpi@2021.13
prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1
modules:
- mpi/2021.13
- slurm
intel-oneapi-mkl:
buildable: false
externals:
- spec: intel-oneapi-mkl@2024.2
prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1
6 changes: 6 additions & 0 deletions configs/sites/tier1/nautilus/packages_oneapi-2025.3.0.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
packages:
all:
require:
- any_of: ['%intel-oneapi-compilers@=2025.3.0']
when: '%intel-oneapi-compilers'
- any_of: ['%gcc@=11.2.1']
when: '%gcc'
mpi:
buildable: false
require:
Expand Down
4 changes: 4 additions & 0 deletions configs/sites/tier2/blackpearl/packages_gcc-13.2.1.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
packages:
all:
require:
- any_of: ['%gcc@=13.2.1']
when: '%gcc'
mpi:
require:
- "openmpi@=5.0.8"
Expand Down
6 changes: 6 additions & 0 deletions configs/sites/tier2/blackpearl/packages_oneapi-2024.2.1.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
packages:
all:
require:
- any_of: ['%intel-oneapi-compilers@=2024.2.1']
when: '%intel-oneapi-compilers'
- any_of: ['%gcc@=11.4.1']
when: '%gcc'
mpi:
buildable: False
require:
Expand Down
4 changes: 4 additions & 0 deletions configs/sites/tier2/bounty/packages_clang-21.1.1.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
packages:
all:
require:
- any_of: ['%llvm@=21.1.1']
when: '%llvm'
mpi:
require:
- "openmpi@=5.0.8"
Expand Down
4 changes: 4 additions & 0 deletions configs/sites/tier2/bounty/packages_gcc-13.3.1.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
packages:
all:
require:
- any_of: ['%gcc@=13.3.1']
when: '%gcc'
mpi:
require:
- "openmpi@=5.0.8"
Expand Down
6 changes: 6 additions & 0 deletions configs/sites/tier2/bounty/packages_oneapi-2025.3.0.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
packages:
all:
require:
- any_of: ['%intel-oneapi-compilers@=2025.3.0']
when: '%intel-oneapi-compilers'
- any_of: ['%gcc@=11.5.0']
when: '%gcc'
mpi:
buildable: False
require:
Expand Down
4 changes: 0 additions & 4 deletions configs/templates/neptune-dev-llvm/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,3 @@ spack:
esmf:
require:
- +python
# Avoid duplicate builds of parallelio +pnetcdf and ~pnetcdf
parallelio:
require:
- ~pnetcdf
4 changes: 0 additions & 4 deletions configs/templates/neptune-dev/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,3 @@ spack:
esmf:
require:
- +python
# Avoid duplicate builds of parallelio +pnetcdf and ~pnetcdf
parallelio:
require:
- ~pnetcdf
4 changes: 0 additions & 4 deletions configs/templates/neptune-ops/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,3 @@ spack:
esmf:
require:
- ~python
# Avoid duplicate builds of parallelio +pnetcdf and ~pnetcdf
parallelio:
require:
- ~pnetcdf
2 changes: 1 addition & 1 deletion spack
68 changes: 39 additions & 29 deletions util/nrl/batch_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ case ${SPACK_STACK_BATCH_HOST} in
SPACK_STACK_CARGO_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/cargo-mirror"
;;
nautilus)
SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.3.0" "gcc@=13.3.1")
SPACK_STACK_BATCH_COMPILERS=("oneapi@=2024.2.1" "oneapi@=2025.3.0" "gcc@=13.3.1")
SPACK_STACK_BATCH_TEMPLATES=("neptune-dev" "unified-dev" "cylc-dev")
SPACK_STACK_MODULE_CHOICE="tcl"
SPACK_STACK_BOOTSTRAP_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/bootstrap-mirror"
Expand Down Expand Up @@ -333,6 +333,7 @@ fi
ignore_env_exist=${SPACK_STACK_IGNORE_ENV_EXIST:-false}

# Loop through all compilers and templates for this host
first_pass="true"
for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do

if [[ ! ${compiler} == *"@="* ]]; then
Expand Down Expand Up @@ -445,6 +446,14 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do
nautilus)
umask 0022
module purge
case ${compiler} in
oneapi@=2024.2.1)
module use /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1/modulefiles
;;
oneapi@=2025.3.0)
module use /p/app/projects/NEPTUNE/spack-stack/oneapi-2025.3.0/modulefiles
;;
esac
;;
navy-aws)
umask 0022
Expand Down Expand Up @@ -479,7 +488,28 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do
module li

source setup.sh
spack clean -a
if [[ "${first_pass}" == "true" ]]; then
spack clean -a
else
# Don't remove software and configuration needed to bootstrap Spack
spack clean -d -f -m -p -s
fi

# Update bootstrap mirror if requested before creating any
# environments. It is sufficient to do this one time only.
if [[ "${update_bootstrap_mirror}" == "true"* ]]; then
tmp_bootstrap_mirror_path=${PWD}/tmp-bootstrap-mirror
echo "Creating bootstrap mirror ${tmp_bootstrap_mirror_path} ..."
rm -fr ${tmp_bootstrap_mirror_path}
spack bootstrap mirror --binary-packages ${tmp_bootstrap_mirror_path} 2>&1 | tee log.bootstrap-mirror.001
rsync -a ${tmp_bootstrap_mirror_path}/ ${bootstrap_mirror_path}/
rm -fr ${tmp_bootstrap_mirror_path}
# Update buildcache index
spack buildcache update-index ${bootstrap_mirror_path}/bootstrap_cache
# Fix permissions for the bootstrap mirror
fix_permissions ${host} ${bootstrap_mirror_path} 0
update_bootstrap_mirror="false"
fi

if [[ ! ${env_exists} == "true" ]]; then
spack stack create env --name=${env_name} \
Expand All @@ -495,33 +525,15 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do
# Workaround for ParallelWorks (no NRL Enterprise GitHub access yet)
sed -i 's/+adp/~adp/g' ${env_dir}/spack.yaml

# Update bootstrap mirror if requested
if [[ "${update_bootstrap_mirror}" == "true"* ]]; then
tmp_bootstrap_mirror_path=${PWD}/tmp-bootstrap-mirror-${env_name}
echo "Creating bootstrap mirror ${tmp_bootstrap_mirror_path} ..."
rm -fr ${tmp_bootstrap_mirror_path}
spack bootstrap mirror --binary-packages ${tmp_bootstrap_mirror_path} 2>&1 | tee log.bootstrap-mirror.${env_name}.001
rsync -a ${tmp_bootstrap_mirror_path}/ ${bootstrap_mirror_path}/
rm -fr ${tmp_bootstrap_mirror_path}
# Update buildcache index
spack buildcache update-index ${bootstrap_mirror_path}/bootstrap_cache
fi

echo "Registering bootstrap mirror ${bootstrap_mirror_path} ..."
if [[ ! -d ${bootstrap_mirror_path} ]]; then
echo "ERROR, directory ${bootstrap_mirror_path} not found"
exit 1
fi
# If the environment already existed, then it is possible that the bootstrap
# sources were already added. In this case, ignore errors from these commands.
if [[ ${env_exists} == "true" ]]; then
set +e
fi
spack bootstrap add --trust local-sources ${bootstrap_mirror_path}/metadata/sources
spack bootstrap add --trust local-binaries ${bootstrap_mirror_path}/metadata/binaries
if [[ ${env_exists} == "true" ]]; then
set -e
fi
spack bootstrap list | grep local-sources || \
spack bootstrap add --trust local-sources ${bootstrap_mirror_path}/metadata/sources
spack bootstrap list | grep local-binaries || \
spack bootstrap add --trust local-binaries ${bootstrap_mirror_path}/metadata/binaries

# Check that the site has mirrors configured for local source and build caches,
# and extract the local path on disk. Need to strip leading "file://" from path
Expand Down Expand Up @@ -610,9 +622,6 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do

# When creating or updating buildcaches, fix permissions for mirrors.
# Mirrors do not contain executables, therefore skip looking for them.
if [[ "${update_bootstrap_mirror}" == "true" ]]; then
fix_permissions ${host} ${bootstrap_mirror_path} 0
fi
if [[ "${update_source_cache}" == "true" ]]; then
fix_permissions ${host} ${source_mirror_path} 0
fi
Expand All @@ -623,9 +632,10 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do
fix_permissions ${host} ${cargo_mirror_path} 0
fi

# Clean up
spack clean -a
# Clean up (don't remove software and configuration needed to bootstrap Spack)
spack clean -d -f -m -p -s
spack env deactivate
first_pass="false"

done

Expand Down