Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new template cylc-dev (and test building in GitHub actions) #1410

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
9d0ab96
Unpin or update several packages in configs/common/packages.yaml
climbfuji Nov 14, 2024
4b59184
Update .gitmodules and submodule pointer for spack for code review an…
climbfuji Nov 17, 2024
4898371
Pin py-netcdf to version 1.7.1 with variant mpi enabled
climbfuji Nov 17, 2024
819a2f1
Merge branch 'feature/spst-upd-20241031-follow-up-mpiifx-mpiifort-sit…
climbfuji Nov 18, 2024
db66b49
Use different versions of cdo for older Intel classic compilers
climbfuji Nov 18, 2024
5a442d7
Also use [email protected] with apple-clang@14
climbfuji Nov 18, 2024
f63c7f0
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Nov 20, 2024
f9575af
Update submodule pointer for spack
climbfuji Nov 21, 2024
5cbd9f4
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Dec 2, 2024
8ee0c5b
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Dec 5, 2024
02ccc78
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Dec 6, 2024
6cc18d5
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Dec 6, 2024
46ad103
Merge branch 'develop' into feature/unpin_update_common_packages
climbfuji Dec 9, 2024
71aee0b
Merge branch 'develop' into feature/unpin_update_common_packages
climbfuji Dec 10, 2024
ee2d6a4
Merge branch 'develop' into feature/unpin_update_common_packages
climbfuji Dec 11, 2024
b51652d
Update .gitmodules and submodule pointer for spack for code review an…
climbfuji Dec 11, 2024
ebe83fd
Configure variant cylc for neptune-python-env, enable in neptune-dev …
climbfuji Dec 11, 2024
11ca0a2
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Dec 11, 2024
fa21d33
Merge branch 'develop' into feature/unpin_update_common_packages
climbfuji Dec 13, 2024
9b2757c
Remove hardcoded version of py-numpy from all tier-1 site configs
climbfuji Dec 13, 2024
2411498
Bug fixes for S4 site config: correct GNU backend for Intel, no exter…
climbfuji Dec 14, 2024
6c61e0f
Remove 'prefer' for cdo in configs/common/packages.yaml, since it cla…
climbfuji Dec 16, 2024
705f80f
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Dec 18, 2024
520a0b6
Remove commented-out package entries from configs/common/packages.yam…
climbfuji Dec 18, 2024
eef5c0b
Merge branch 'feature/unpin_update_common_packages' of https://github…
climbfuji Dec 18, 2024
862e490
Merge upstream branch
climbfuji Dec 18, 2024
da8dfd4
Fix typo in configs/common/packages.yaml
climbfuji Dec 18, 2024
02cc2d5
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Dec 19, 2024
c113381
Remove '+excel' from py-pandas dependency in spack-ext/repos/spack-st…
climbfuji Dec 19, 2024
f7990ce
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Dec 19, 2024
3f1fd93
In configs/common/packages.yaml, pin py-numpy to 1.26 to avoid duplic…
climbfuji Dec 19, 2024
dadb7b1
Update submodule pointer for spack
climbfuji Dec 20, 2024
b7b81b7
Update submodule pointer for spack
climbfuji Dec 21, 2024
040366e
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Dec 21, 2024
be1b69c
Add configs/templates/cylc-dev
climbfuji Dec 26, 2024
329f253
Update git and git-lfs packages on Atlantis
climbfuji Dec 26, 2024
dd2173c
Update configs/templates/cylc-dev/spack.yaml: new versions of py-cylc…
climbfuji Dec 26, 2024
d2726d2
Add cylc-dev to templates for buildcache builds in .github/workflows/…
climbfuji Dec 26, 2024
f8f60b9
Update submodule pointer for spack
climbfuji Dec 26, 2024
e78b289
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Dec 26, 2024
50afc84
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Jan 7, 2025
1048dc5
Update submodule pointer for spack
climbfuji Jan 8, 2025
ede071b
Revert adding cylc variant to neptune-env
climbfuji Jan 8, 2025
7a3b460
[skip ci] Debug cylc-dev build in .github/workflows/ubuntu-ci-x86_64-…
climbfuji Jan 8, 2025
4f0f463
Exclude old/deprecated [email protected] from 'spack external find' on Ubunt…
climbfuji Jan 8, 2025
9e180cc
Update submodule pointer for spack
climbfuji Jan 8, 2025
0c87803
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji Jan 8, 2025
772bb08
Replace bad 'set +e' with 'set -e' in all self-hosted runner workflows
climbfuji Jan 8, 2025
f120565
Revert .gitmodules and update submodule pointer for spack
climbfuji Jan 9, 2025
28b0fae
Revert temporary changes in .github/workflows/ubuntu-ci-x86_64-gnu.yaml
climbfuji Jan 9, 2025
9f8a7f5
Update .gitmodules and submodule pointer for spack for code review an…
climbfuji Jan 9, 2025
a5904ba
In configs/templates/cylc-dev/spack.yaml: rename view; path is relati…
climbfuji Jan 9, 2025
3f79cfc
configs/common/packages_{intel,oneapi}.yaml: Build qt with gcc for In…
climbfuji Jan 10, 2025
9a443a6
Revert .gitmodules and update submodule pointer for spack
climbfuji Jan 10, 2025
ab2e628
[skip ci] Update configs/sites/tier1/narwhal/compilers.yaml: add comm…
climbfuji Jan 10, 2025
6b53f10
[skip ci] Update comment about cylc-wrapper in configs/templates/cylc…
climbfuji Jan 10, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/macos-ci-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ jobs:
set +e
spack mirror add local-binary file:///Users/ec2-user/spack-stack/build-cache/
spack buildcache update-index local-binary || (echo "No valid binary cache found, proceed without" && spack mirror rm local-binary)
set +e
set -e
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch here and elsewhere.

echo "Packages in spack binary cache:"
spack buildcache list
fi
Expand Down
39 changes: 22 additions & 17 deletions .github/workflows/ubuntu-ci-x86_64-gnu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,14 @@ jobs:
# Set up spack-stack
source ./setup.sh

declare -a TEMPLATES=("unified-dev" "skylab-dev")
declare -a TEMPLATES=("unified-dev" "skylab-dev" "cylc-dev")
for TEMPLATE in "${TEMPLATES[@]}"; do
if [[ "${TEMPLATE}" == *"unified-dev"* ]]; then
export ENVNAME=ue-gcc-11.4.0-buildcache
elif [[ "${TEMPLATE}" == *"skylab-dev"* ]]; then
export ENVNAME=se-gcc-11.4.0-buildcache
elif [[ "${TEMPLATE}" == *"cylc-dev"* ]]; then
export ENVNAME=ce-gcc-11.4.0-buildcache
fi
echo "Creating environment ${ENVNAME} from template ${TEMPLATE}"

Expand All @@ -68,7 +70,8 @@ jobs:
# Find external packages
spack external find --scope system \
--exclude bison --exclude openssl \
--exclude curl --exclude python
--exclude curl --exclude python \
--exclude meson
spack external find --scope system grep
spack external find --scope system sed
spack external find --scope system perl
Expand Down Expand Up @@ -104,7 +107,7 @@ jobs:
set +e
spack mirror add local-binary file:///home/ubuntu/spack-stack/build-cache/
spack buildcache update-index local-binary || (echo "No valid binary cache found, proceed without" && spack mirror rm local-binary)
set +e
set -e
echo "Packages in spack binary cache:"
spack buildcache list
fi
Expand All @@ -113,20 +116,22 @@ jobs:
# This allows us to "spin up" builds that altogether take longer than
# six hours, and/or fail later in the build process.

# base-env
echo "base-env ..."
spack install --fail-fast --source --no-check-signature base-env 2>&1 | tee log.install.gnu-11.4.0-buildcache.base-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ base-env

# jedi-base-env
echo "jedi-base-env ..."
spack install --fail-fast --source --no-check-signature jedi-base-env 2>&1 | tee log.install.gnu-11.4.0-buildcache.jedi-base-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ jedi-base-env

# jedi-ufs-env
echo "jedi-ufs-env ..."
spack install --fail-fast --source --no-check-signature jedi-ufs-env 2>&1 | tee log.install.gnu-11.4.0-buildcache.jedi-ufs-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ jedi-ufs-env
if [[ "${TEMPLATE}" == *"unified-dev"* || "${TEMPLATE}" == *"skylab-dev"* ]]; then
climbfuji marked this conversation as resolved.
Show resolved Hide resolved
# base-env
echo "base-env ..."
spack install --fail-fast --source --no-check-signature base-env 2>&1 | tee log.install.gnu-11.4.0-buildcache.base-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ base-env

# jedi-base-env
echo "jedi-base-env ..."
spack install --fail-fast --source --no-check-signature jedi-base-env 2>&1 | tee log.install.gnu-11.4.0-buildcache.jedi-base-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ jedi-base-env

# jedi-ufs-env
echo "jedi-ufs-env ..."
spack install --fail-fast --source --no-check-signature jedi-ufs-env 2>&1 | tee log.install.gnu-11.4.0-buildcache.jedi-ufs-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ jedi-ufs-env
fi

# the rest
echo "${TEMPLATE} ..."
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/ubuntu-ci-x86_64-intel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ jobs:
# Find external packages
spack external find --scope system \
--exclude bison --exclude openssl \
--exclude curl --exclude python
--exclude curl --exclude python \
--exclude meson
spack external find --scope system grep
spack external find --scope system sed
spack external find --scope system perl
Expand Down Expand Up @@ -144,7 +145,7 @@ jobs:
set +e
spack mirror add local-binary file:///home/ubuntu/spack-stack/build-cache/
spack buildcache update-index local-binary || (echo "No valid binary cache found, proceed without" && spack mirror rm local-binary)
set +e
set -e
echo "Packages in spack binary cache:"
spack buildcache list
fi
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
spack external find --scope system \
--exclude bison --exclude openssl \
--exclude curl --exclude python \
--exclude gmake
--exclude meson --exclude gmake
spack external find --scope system grep
spack external find --scope system sed
spack external find --scope system perl
Expand Down Expand Up @@ -150,7 +150,7 @@ jobs:
set +e
spack mirror add local-binary file:///home/ubuntu/spack-stack/build-cache/
spack buildcache update-index local-binary || (echo "No valid binary cache found, proceed without" && spack mirror rm local-binary)
set +e
set -e
echo "Packages in spack binary cache:"
spack buildcache list
fi
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ubuntu-ci-x86_64-oneapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
spack external find --scope system \
--exclude bison --exclude openssl \
--exclude curl --exclude python \
--exclude gmake
--exclude meson --exclude gmake
spack external find --scope system grep
spack external find --scope system sed
spack external find --scope system perl
Expand Down Expand Up @@ -150,7 +150,7 @@ jobs:
set +e
spack mirror add local-binary file:///home/ubuntu/spack-stack/build-cache/
spack buildcache update-index local-binary || (echo "No valid binary cache found, proceed without" && spack mirror rm local-binary)
set +e
set -e
echo "Packages in spack binary cache:"
spack buildcache list
fi
Expand Down
13 changes: 7 additions & 6 deletions configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -215,10 +215,9 @@ packages:
# Avoid full rust dependency: version 43+ requires py-maturin
py-cryptography:
require: '@:42 +rust_bootstrap'
# Introduced in https://github.com/JCSDA/spack-stack/pull/894, pin py-cython
# to avoid duplicate packages being built (cylc dependencies soft-want @3:)
# Pin py-cython to avoid duplicate packages
py-cython:
require: '@0.29.36'
require: '@3'
# As long as we need the "delayed" variant for py-dask,
# we are restricted to version 2021.03.0 (last one that has it)
# and newer than 2021.01.0 because of these issues:
Expand All @@ -233,13 +232,15 @@ packages:
require: '~mpi'
# https://github.com/JCSDA/spack-stack/issues/1276
py-matplotlib:
require: '@3.7.4'
require: '@3.7.4'
# Variant ~mpi not working for latest py-netcdf4
# https://github.com/spack/spack/issues/47652
py-netcdf4:
require: '@1.7.1 +mpi'
py-pandas:
require: '+excel'
# To avoid duplicate packages
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't the concretizer unify: true prevent duplication?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will lead to concretization errors if unify: true is set. Unfortunately, the concretizer isn't perfect, it still has its bugs. But I am happy to move this (numpy and cython) into the cylc-dev template instead of applying it to all environments for now (but new packages that are coming down the road will want the same settings for unified-env/neptune-env, too).

py-numpy:
require:
- '@1.26'
# To avoid duplicate packages
py-ruamel-yaml:
require: '@0.17.16'
Expand Down
3 changes: 3 additions & 0 deletions configs/common/packages_intel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ packages:
boost:
require:
- '%gcc'
qt:
require:
- '%gcc'
ecflow:
require:
- '%gcc'
Expand Down
3 changes: 3 additions & 0 deletions configs/common/packages_oneapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ packages:
require: '%gcc'
libbsd:
require: '%gcc'
qt:
require:
- '%gcc'
6 changes: 6 additions & 0 deletions configs/sites/tier1/narwhal/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,16 @@ compilers::
- compiler:
spec: [email protected]
paths:
# Still need Cray wrappers for most environments
cc: cc
cxx: CC
f77: ftn
fc: ftn
# For cylc-dev, can't use Cray wrappers
#cc: /opt/cray/pe/gcc/10.3.0/snos/bin/gcc
#cxx: /opt/cray/pe/gcc/10.3.0/snos/bin/g++
#f77: /opt/cray/pe/gcc/10.3.0/snos/bin/gfortran
#fc: /opt/cray/pe/gcc/10.3.0/snos/bin/gfortran
flags: {}
operating_system: sles15
modules:
Expand Down
33 changes: 33 additions & 0 deletions configs/templates/cylc-dev/spack.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Template for CYLC (flow, rose, GUI). Supported with GCC only.
# Creates a view that allows users to define (manually for now)
# simple wrappers for cylc that can be aliased as "cylc":
#
##!/bin/bash
##CYLC_INSTALL_DIR=/path/to/env/view/bin
##PATH=${CYLC_INSTALL_DIR}:$PATH
##unset PYTHONPATH
##cylc "$@"
#
spack:
concretizer:
unify: true

view:
cylc:
root: view
select: [^python]
link: run
link_type: symlink
include: []

definitions:
- compilers: ['%gcc']
- packages:
- [email protected]
- [email protected]
- [email protected]

specs:
- matrix:
- [$packages]
- [$compilers]
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class JediToolsEnv(BundlePackage):
# depends_on("aws-parallelcluster", type="run")
depends_on("py-click", type="run")
depends_on("py-openpyxl", type="run")
depends_on("py-pandas +excel", type="run")
depends_on("py-pandas", type="run")
depends_on("py-pygithub", type="run")
depends_on("py-scipy", type="run")
depends_on("py-sphinx", type="run")
Expand Down