From 9d0ab9655f012cd72c800b9bc3a1edb954dae813 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 14 Nov 2024 13:51:13 -0700 Subject: [PATCH 01/37] Unpin or update several packages in configs/common/packages.yaml --- configs/common/packages | 0 configs/common/packages.yaml | 42 +++++++++++++++++++----------------- 2 files changed, 22 insertions(+), 20 deletions(-) create mode 100644 configs/common/packages diff --git a/configs/common/packages b/configs/common/packages new file mode 100644 index 000000000..e69de29bb diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 1c40bd5e8..d9ac97924 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -26,7 +26,7 @@ packages: cairo: require: '+pic' cdo: - require: '@2.3.0 ~openmp' + require: '@2.4.4 ~openmp' cmake: version: ['3.27.9'] require: '+ownlibs' @@ -143,9 +143,9 @@ packages: require: '@2.46.3 ~shared ~f2py' variants: '+pflogger' # To avoid duplicate packages being built - meson: - require: - - '@1.5.1:' + #meson: + # require: + # - '@1.5.1:' # If making changes here, also check the Discover site configs and the CI workflows met: require: '@11.1.1 +python +grib2' @@ -156,7 +156,7 @@ packages: mpich: require: '~hwloc' nco: - require: '@5.1.6 ~doc' + require: '@5.2.4 ~doc' # ncview - when adding information here, also check Orion # and Discover site configs nemsio: @@ -199,9 +199,9 @@ packages: require: '~tiff' python: require: '@3.11.7' - py-attrs: - # https://github.com/JCSDA/spack-stack/issues/740 - require: '@21.4.0' + #py-attrs: + # # https://github.com/JCSDA/spack-stack/issues/740 + # require: '@21.4.0' py-cartopy: require: '+plotting' py-cryptography: @@ -228,8 +228,8 @@ packages: # https://github.com/JCSDA/spack-stack/issues/1276 py-matplotlib: require: '@3.7.4' - py-meson-python: - require: '@0.15.0' + #py-meson-python: + # require: '@0.15.0' # Comment out for now until build problems are solved # https://github.com/jcsda/spack-stack/issues/522 # see also ewok-env virtual package and container @@ -237,27 +237,28 @@ packages: #py-mysql-connector-python: # require: '@8.0.32' py-netcdf4: - require: '@1.5.8 ~mpi' + #require: '@1.5.8 ~mpi' + require: '~mpi' # py-numpy@1.26 causes many build problems with older Python packages # also check Nautilus site config when making changes here # https://github.com/JCSDA/spack-stack/issues/1276 - py-numpy: - require: - - '@:1.23.5' + #py-numpy: + # require: + # - '@:1.23.5' py-pandas: require: '+excel' - py-pybind11: - require: '@2.11.0' + #py-pybind11: + # require: '@2.11.0' # To avoid duplicate packages py-ruamel-yaml: require: '@0.17.16' # Pin the py-setuptools version to avoid duplicate Python packages py-setuptools: - require: '@63.4.3' + require: '@69' py-setuptools-rust: require: '+rust_bootstrap' - py-shapely: - require: '@1.8.0' + #py-shapely: + # require: '@1.8.0' py-torch: require: '+custom-protobuf ~mkldnn' # To avoid duplicate packages @@ -293,4 +294,5 @@ packages: wrf-io: require: '@1.2.0' zstd: - require: '@1.5.2 +programs' + #require: '@1.5.2 +programs' + require: '+programs' From 4b59184f6a10f23a421468f3ac84dbcf193b6544 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sun, 17 Nov 2024 18:05:39 -0500 Subject: [PATCH 02/37] Update .gitmodules and submodule pointer for spack for code review and testing --- .gitmodules | 6 ++++-- spack | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index a69f3e4f1..08b91dba6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,9 @@ [submodule "spack"] path = spack - url = https://github.com/jcsda/spack - branch = spack-stack-dev + #url = https://github.com/jcsda/spack + #branch = spack-stack-dev + url = https://github.com/climbfuji/spack + branch = bugfix/py_pyhdf_numpy [submodule "doc/CMakeModules"] path = doc/CMakeModules url = https://github.com/noaa-emc/cmakemodules diff --git a/spack b/spack index b6ef265ec..b3b3a5a6f 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit b6ef265ec4582ddca131534a9d314e233919ae69 +Subproject commit b3b3a5a6fd5e030354f79165bc7722258210958e From 4898371618b954b0d99b5bed36de43c8c08696d7 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sun, 17 Nov 2024 18:06:11 -0500 Subject: [PATCH 03/37] Pin py-netcdf to version 1.7.1 with variant mpi enabled --- configs/common/packages | 0 configs/common/packages.yaml | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) delete mode 100644 configs/common/packages diff --git a/configs/common/packages b/configs/common/packages deleted file mode 100644 index e69de29bb..000000000 diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index d9ac97924..49b90f24a 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -236,9 +236,10 @@ packages: # README.md #py-mysql-connector-python: # require: '@8.0.32' + # Variant ~mpi not working for latest py-netcdf4 + # https://github.com/spack/spack/issues/47652 py-netcdf4: - #require: '@1.5.8 ~mpi' - require: '~mpi' + require: '@1.7.1 +mpi' # py-numpy@1.26 causes many build problems with older Python packages # also check Nautilus site config when making changes here # https://github.com/JCSDA/spack-stack/issues/1276 From db66b49c177976d4c5c04956a384d6531983a519 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sun, 17 Nov 2024 20:51:44 -0500 Subject: [PATCH 04/37] Use different versions of cdo for older Intel classic compilers --- configs/common/packages.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 49b90f24a..fd53b6bbf 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -26,7 +26,15 @@ packages: cairo: require: '+pic' cdo: - require: '@2.4.4 ~openmp' + prefer: + - '@2.4.4 ~openmp' + require: + - any_of: ['@2.3.0 ~openmp'] + when: '%intel@2021:' + message: '2.3.0 is the last version to use C++17' + - any_of: ['@2.0.5 ~openmp'] + when: '%intel@:2020' + message: '2.0.5 is the last version to use C++14' cmake: version: ['3.27.9'] require: '+ownlibs' From 5a442d7f81eaeee9c97c0c7b4e17e15648fe2f00 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2024 07:45:34 -0500 Subject: [PATCH 05/37] Also use cdo@2.3.0 with apple-clang@14 --- configs/common/packages.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index fd53b6bbf..70b15b0b5 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -31,10 +31,13 @@ packages: require: - any_of: ['@2.3.0 ~openmp'] when: '%intel@2021:' - message: '2.3.0 is the last version to use C++17' + message: '2.3.0 is the last version to use C++17, use with Intel Classic' + - any_of: ['@2.3.0 ~openmp'] + when: '%apple-clang@:14' + message: '2.3.0 is the last version to use C++17, use with Apple Clang 14 and earlier' - any_of: ['@2.0.5 ~openmp'] when: '%intel@:2020' - message: '2.0.5 is the last version to use C++14' + message: '2.0.5 is the last version to use C++14, use with Intel Classic 2020 and earlier' cmake: version: ['3.27.9'] require: '+ownlibs' From f9575af288a1d655d8fd9fa0c70ecf8c6add5085 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 20 Nov 2024 22:14:01 -0500 Subject: [PATCH 06/37] Update submodule pointer for spack --- spack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack b/spack index b274d591f..3baaff2ad 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit b274d591fc82d38609124e3fe6f8ef1753357947 +Subproject commit 3baaff2aded5ef61e0b47b27b3fde1b0b992c268 From b51652dbe8d424b397d06e2cdd0ab7382f333659 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 11 Dec 2024 14:01:29 -0700 Subject: [PATCH 07/37] Update .gitmodules and submodule pointer for spack for code review and testing --- .gitmodules | 6 ++++-- spack | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index a69f3e4f1..ca6f4f48e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,9 @@ [submodule "spack"] path = spack - url = https://github.com/jcsda/spack - branch = spack-stack-dev + #url = https://github.com/jcsda/spack + #branch = spack-stack-dev + url = https://github.com/climbfuji/spack + branch = feature/py_cylc_flow_836 [submodule "doc/CMakeModules"] path = doc/CMakeModules url = https://github.com/noaa-emc/cmakemodules diff --git a/spack b/spack index d987cad01..2eace37c8 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit d987cad010a459bc43126c84b0d13c809a4afe66 +Subproject commit 2eace37c8763767cbb1ce657f6cf434950a61878 From ebe83fdd740454d96f46039b897b593371666a21 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 11 Dec 2024 14:03:39 -0700 Subject: [PATCH 08/37] Configure variant cylc for neptune-python-env, enable in neptune-dev template, disable cycl variant in skylab-dev template --- configs/templates/neptune-dev/spack.yaml | 4 ++-- configs/templates/skylab-dev/spack.yaml | 2 +- .../repos/spack-stack/packages/neptune-python-env/package.py | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/configs/templates/neptune-dev/spack.yaml b/configs/templates/neptune-dev/spack.yaml index 0f5ae6907..680b340a9 100644 --- a/configs/templates/neptune-dev/spack.yaml +++ b/configs/templates/neptune-dev/spack.yaml @@ -8,8 +8,8 @@ spack: definitions: - compilers: ['%aocc', '%apple-clang', '%gcc', '%intel', '%oneapi'] - packages: - - neptune-env +espc ^esmf@=8.8.0b06 - - neptune-python-env +xnrl ^neptune-env +espc ^esmf@=8.8.0b06 + - neptune-env +espc ^esmf@=8.8.0b06 + - neptune-python-env +xnrl +cylc ^neptune-env +espc ^esmf@=8.8.0b06 specs: - matrix: diff --git a/configs/templates/skylab-dev/spack.yaml b/configs/templates/skylab-dev/spack.yaml index a58b63201..2d1f9d08c 100644 --- a/configs/templates/skylab-dev/spack.yaml +++ b/configs/templates/skylab-dev/spack.yaml @@ -8,7 +8,7 @@ spack: definitions: - compilers: ['%aocc', '%apple-clang', '%gcc', '%intel', '%oneapi'] - packages: - - ewok-env +ecflow +cylc + - ewok-env +ecflow ~cylc - ai-env - geos-gcm-env ^esmf@=8.6.1 - jedi-fv3-env diff --git a/spack-ext/repos/spack-stack/packages/neptune-python-env/package.py b/spack-ext/repos/spack-stack/packages/neptune-python-env/package.py index 2e20105b8..18837b9f1 100644 --- a/spack-ext/repos/spack-stack/packages/neptune-python-env/package.py +++ b/spack-ext/repos/spack-stack/packages/neptune-python-env/package.py @@ -20,6 +20,7 @@ class NeptunePythonEnv(BundlePackage): version("1.5.0") variant("xnrl", default=False, description="Build non-pulic XNRL") + variant("cylc", default=False, description="Build cylc") depends_on("neptune-env", type="run") # Enable the Python variant for ESMF @@ -40,4 +41,7 @@ class NeptunePythonEnv(BundlePackage): with when("+xnrl"): depends_on("py-xnrl", type="run") + with when("+cylc"): + depends_on("py-cylc-flow", type="run") + # There is no need for install() since there is no code. From 9b2757c72b2fc023facbb97b9727a43078c65305 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 13 Dec 2024 08:42:19 -0700 Subject: [PATCH 09/37] Remove hardcoded version of py-numpy from all tier-1 site configs --- configs/sites/tier1/aws-pcluster/packages_intel.yaml | 2 +- configs/sites/tier1/derecho/packages_intel.yaml | 2 +- configs/sites/tier1/gaea-c5/packages.yaml | 2 +- configs/sites/tier1/gaea-c6/packages.yaml | 2 +- configs/sites/tier1/hera/packages_intel.yaml | 2 +- configs/sites/tier1/hercules/packages_intel.yaml | 2 +- configs/sites/tier1/nautilus/packages_gcc.yaml | 2 +- configs/sites/tier1/noaa-aws/packages_intel.yaml | 2 +- configs/sites/tier1/noaa-azure/packages_intel.yaml | 2 +- configs/sites/tier1/noaa-gcloud/packages_intel.yaml | 2 +- configs/sites/tier1/orion/packages_intel.yaml | 2 +- configs/sites/tier1/s4/packages.yaml | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/configs/sites/tier1/aws-pcluster/packages_intel.yaml b/configs/sites/tier1/aws-pcluster/packages_intel.yaml index 20f5c020f..7a7fec11c 100644 --- a/configs/sites/tier1/aws-pcluster/packages_intel.yaml +++ b/configs/sites/tier1/aws-pcluster/packages_intel.yaml @@ -31,5 +31,5 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH diff --git a/configs/sites/tier1/derecho/packages_intel.yaml b/configs/sites/tier1/derecho/packages_intel.yaml index 60535c698..5e1962e14 100644 --- a/configs/sites/tier1/derecho/packages_intel.yaml +++ b/configs/sites/tier1/derecho/packages_intel.yaml @@ -37,6 +37,6 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH diff --git a/configs/sites/tier1/gaea-c5/packages.yaml b/configs/sites/tier1/gaea-c5/packages.yaml index ba5e06efa..9d59b8bbd 100644 --- a/configs/sites/tier1/gaea-c5/packages.yaml +++ b/configs/sites/tier1/gaea-c5/packages.yaml @@ -35,7 +35,7 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH ### All other external packages listed alphabetically diff --git a/configs/sites/tier1/gaea-c6/packages.yaml b/configs/sites/tier1/gaea-c6/packages.yaml index 90c651753..224b56831 100644 --- a/configs/sites/tier1/gaea-c6/packages.yaml +++ b/configs/sites/tier1/gaea-c6/packages.yaml @@ -34,7 +34,7 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH ### All other external packages listed alphabetically diff --git a/configs/sites/tier1/hera/packages_intel.yaml b/configs/sites/tier1/hera/packages_intel.yaml index 0893faf15..514424a99 100644 --- a/configs/sites/tier1/hera/packages_intel.yaml +++ b/configs/sites/tier1/hera/packages_intel.yaml @@ -30,7 +30,7 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH zlib-ng: require: diff --git a/configs/sites/tier1/hercules/packages_intel.yaml b/configs/sites/tier1/hercules/packages_intel.yaml index d49bd9822..d7c7dbe21 100644 --- a/configs/sites/tier1/hercules/packages_intel.yaml +++ b/configs/sites/tier1/hercules/packages_intel.yaml @@ -30,4 +30,4 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' diff --git a/configs/sites/tier1/nautilus/packages_gcc.yaml b/configs/sites/tier1/nautilus/packages_gcc.yaml index 5bf3ce644..c97a48ba8 100644 --- a/configs/sites/tier1/nautilus/packages_gcc.yaml +++ b/configs/sites/tier1/nautilus/packages_gcc.yaml @@ -31,4 +31,4 @@ packages: - '@1.2.1 +mkl' py-numpy: require:: - - '@:1.23 ^intel-oneapi-mkl' + - '^intel-oneapi-mkl' diff --git a/configs/sites/tier1/noaa-aws/packages_intel.yaml b/configs/sites/tier1/noaa-aws/packages_intel.yaml index 1b739954d..665c8aaa0 100644 --- a/configs/sites/tier1/noaa-aws/packages_intel.yaml +++ b/configs/sites/tier1/noaa-aws/packages_intel.yaml @@ -30,5 +30,5 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH diff --git a/configs/sites/tier1/noaa-azure/packages_intel.yaml b/configs/sites/tier1/noaa-azure/packages_intel.yaml index 1b739954d..665c8aaa0 100644 --- a/configs/sites/tier1/noaa-azure/packages_intel.yaml +++ b/configs/sites/tier1/noaa-azure/packages_intel.yaml @@ -30,5 +30,5 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH diff --git a/configs/sites/tier1/noaa-gcloud/packages_intel.yaml b/configs/sites/tier1/noaa-gcloud/packages_intel.yaml index 1b739954d..665c8aaa0 100644 --- a/configs/sites/tier1/noaa-gcloud/packages_intel.yaml +++ b/configs/sites/tier1/noaa-gcloud/packages_intel.yaml @@ -30,5 +30,5 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH diff --git a/configs/sites/tier1/orion/packages_intel.yaml b/configs/sites/tier1/orion/packages_intel.yaml index d49bd9822..d7c7dbe21 100644 --- a/configs/sites/tier1/orion/packages_intel.yaml +++ b/configs/sites/tier1/orion/packages_intel.yaml @@ -30,4 +30,4 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' diff --git a/configs/sites/tier1/s4/packages.yaml b/configs/sites/tier1/s4/packages.yaml index 1a85fdd87..9206efe31 100644 --- a/configs/sites/tier1/s4/packages.yaml +++ b/configs/sites/tier1/s4/packages.yaml @@ -34,7 +34,7 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' ### All other external packages listed alphabetically autoconf: From 2411498ab1563e7749f22fa615db36377c1d1e3f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 13 Dec 2024 20:28:21 -0700 Subject: [PATCH 10/37] Bug fixes for S4 site config: correct GNU backend for Intel, no external curl/openssl, use external qt --- configs/sites/tier1/s4/compilers.yaml | 20 ++++++++++++--- configs/sites/tier1/s4/packages.yaml | 36 ++++++++++++++------------- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/configs/sites/tier1/s4/compilers.yaml b/configs/sites/tier1/s4/compilers.yaml index dff2729fb..6e8ebb5c7 100644 --- a/configs/sites/tier1/s4/compilers.yaml +++ b/configs/sites/tier1/s4/compilers.yaml @@ -13,9 +13,9 @@ compilers: - intel/2023.2 environment: prepend_path: - PATH: /opt/gcc/13.3/bin - LD_LIBRARY_PATH: /opt/intel/oneapi/2023.2/compiler/2023.2.0/linux/compiler/lib/intel64_lin:/opt/gcc/13.3/lib64:/opt/gcc/13.3/lib - CPATH: /opt/gcc/13.3/include + PATH: /opt/gcc/10.2.0/bin + LD_LIBRARY_PATH: /opt/intel/oneapi/2023.2/compiler/2023.2.0/linux/compiler/lib/intel64_lin:/opt/gcc/10.2.0/lib64:/opt/gcc/10.2.0/lib + CPATH: /opt/gcc/10.2.0/include extra_rpaths: [] - compiler: spec: gcc@=13.3.0 @@ -31,6 +31,20 @@ compilers: - gcc/13.3 environment: {} extra_rpaths: [] +- compiler: + spec: gcc@=10.2.0 + paths: + cc: /opt/gcc/10.2.0/bin/gcc + cxx: /opt/gcc/10.2.0/bin/g++ + f77: /opt/gcc/10.2.0/bin/gfortran + fc: /opt/gcc/10.2.0/bin/gfortran + flags: {} + operating_system: rocky8 + target: x86_64 + modules: + - gcc/10.2 + environment: {} + extra_rpaths: [] - compiler: spec: gcc@=8.5.0 paths: diff --git a/configs/sites/tier1/s4/packages.yaml b/configs/sites/tier1/s4/packages.yaml index 9206efe31..08acf079c 100644 --- a/configs/sites/tier1/s4/packages.yaml +++ b/configs/sites/tier1/s4/packages.yaml @@ -1,12 +1,15 @@ packages: all: - compiler:: [intel@2021.10.0,gcc@13.3.0] + compiler:: [intel@2021.10.0,gcc@10.2.0] providers: mpi:: [intel-oneapi-mpi@2021.10.0] # Remove the next three lines to switch to intel-oneapi-mkl blas:: [openblas] fftw-api:: [fftw] lapack:: [openblas] + # spack concretizer gets confused and wants an AVX512 architecture for some packages + require: + - 'arch=linux-rocky8-skylake' ### MPI, Python, MKL mpi: @@ -77,10 +80,11 @@ packages: externals: - spec: cpio@2.12 prefix: /usr - curl: - externals: - - spec: curl@7.61.1+gssapi+ldap+nghttp2 - prefix: /usr + # OS curl/openssl cause problems + #curl: + # externals: + # - spec: curl@7.61.1+gssapi+ldap+nghttp2 + # prefix: /usr diffutils: externals: - spec: diffutils@3.6 @@ -145,10 +149,11 @@ packages: externals: - spec: openssh@8.0p1 prefix: /usr - openssl: - externals: - - spec: openssl@1.1.1k - prefix: /usr + # OS curl/openssl cause problems + #openssl: + # externals: + # - spec: openssl@1.1.1k + # prefix: /usr perl: externals: - spec: perl@5.26.3~cpanm+opcode+open+shared+threads @@ -157,14 +162,11 @@ packages: externals: - spec: pkgconf@1.4.2 prefix: /usr - # TODO - installing via spack-stack works, for example for - # spack-stack-1.8.0, but would be good if we didn't have to. - # https://github.com/JCSDA/spack-stack/issues/1329 - #qt: - # buildable: False - # externals: - # - spec: qt@5.9.7 - # prefix: /usr + qt: + buildable: False + externals: + - spec: qt@5.15.3 + prefix: /usr rsync: externals: - spec: rsync@3.1.3 From 6c61e0f3c70a962938d69afd48a3f6e17af5556f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 16 Dec 2024 08:52:49 -0700 Subject: [PATCH 11/37] Remove 'prefer' for cdo in configs/common/packages.yaml, since it clashes with the 'require' block below --- configs/common/packages.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index ee6783423..1c7ee1757 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -26,8 +26,6 @@ packages: cairo: require: '+pic' cdo: - prefer: - - '@2.4.4 ~openmp' require: - any_of: ['@2.3.0 ~openmp'] when: '%intel@2021:' From 520a0b67ef19b6134264a60089527c8770767683 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 17 Dec 2024 17:43:23 -0700 Subject: [PATCH 12/37] Remove commented-out package entries from configs/common/packages.yaml and pin zstd to 1.5.6 --- configs/common/packages.yaml | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 0edf1a5c6..13fdb34c2 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -151,11 +151,6 @@ packages: mapl: require: '@2.46.3 ~shared ~f2py' variants: '+pflogger' - # To avoid duplicate packages being built - #meson: - # require: - # - '@1.5.1:' - # If making changes here, also check the Discover site configs and the CI workflows met: require: '@11.1.1 +python +grib2' metplus: @@ -211,9 +206,6 @@ packages: require: '~tiff' python: require: '@3.11.7' - #py-attrs: - # # https://github.com/JCSDA/spack-stack/issues/740 - # require: '@21.4.0' py-cartopy: require: '+plotting' # Avoid full rust dependency: version 43+ requires py-maturin @@ -235,34 +227,15 @@ packages: require: '@3.8.0' py-h5py: require: '~mpi' - ## To avoid duplicate packages - #py-jinja2: - # require: '@3.1.2' # https://github.com/JCSDA/spack-stack/issues/1276 py-matplotlib: require: '@3.7.4' - #py-meson-python: - # require: '@0.15.0' - # Comment out for now until build problems are solved - # https://github.com/jcsda/spack-stack/issues/522 - # see also ewok-env virtual package and container - # README.md - #py-mysql-connector-python: - # require: '@8.0.32' # Variant ~mpi not working for latest py-netcdf4 # https://github.com/spack/spack/issues/47652 py-netcdf4: require: '@1.7.1 +mpi' - # py-numpy@1.26 causes many build problems with older Python packages - # also check Nautilus site config when making changes here - # https://github.com/JCSDA/spack-stack/issues/1276 - #py-numpy: - # require: - # - '@:1.23.5' py-pandas: require: '+excel' - #py-pybind11: - # require: '@2.11.0' # To avoid duplicate packages py-ruamel-yaml: require: '@0.17.16' @@ -271,8 +244,6 @@ packages: require: '@69' py-setuptools-rust: require: '+rust_bootstrap' - #py-shapely: - # require: '@1.8.0' py-torch: require: '+custom-protobuf ~mkldnn' # To avoid duplicate packages @@ -308,5 +279,4 @@ packages: wrf-io: require: '@1.2.0' zstd: - #require: '@1.5.2 +programs' - require: '+programs' + require: '@1.5.6 +programs' From 862e49027e5ecb3e5780eb1c0fe4e23d507cb322 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 17 Dec 2024 17:55:18 -0700 Subject: [PATCH 13/37] Merge upstream branch --- configs/common/packages.yaml | 27 +++++++++++++++++++--- configs/sites/tier1/atlantis/packages.yaml | 9 ++++---- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 13fdb34c2..0da2f9597 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -211,10 +211,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: @@ -230,12 +229,34 @@ packages: # https://github.com/JCSDA/spack-stack/issues/1276 py-matplotlib: require: '@3.7.4' +<<<<<<< Updated upstream +======= + #py-meson-python: + # require: '@0.15.0' +>>>>>>> Stashed changes # Variant ~mpi not working for latest py-netcdf4 # https://github.com/spack/spack/issues/47652 py-netcdf4: require: '@1.7.1 +mpi' +<<<<<<< Updated upstream py-pandas: require: '+excel' +======= + # py-numpy@1.26 causes many build problems with older Python packages + # also check Nautilus site config when making changes here + # https://github.com/JCSDA/spack-stack/issues/1276 + #py-numpy: + # require: + # - '@:1.23.5' + # Sigh, it's complicated. With py-cython@3 (needed to avoid duplicate packages), + # pandas must be 2.2 or later. For those versions, the +excel variant adds dependencies + # on py-python-calamina, py-maturin, and rust (full rust, not just rust-bootstrap). + # @climbfuji thinks we can live without the excel variant ... + #py-pandas: + # require: '+excel' + #py-pybind11: + # require: '@2.11.0' +>>>>>>> Stashed changes # To avoid duplicate packages py-ruamel-yaml: require: '@0.17.16' diff --git a/configs/sites/tier1/atlantis/packages.yaml b/configs/sites/tier1/atlantis/packages.yaml index dc2c16aaf..28af51235 100644 --- a/configs/sites/tier1/atlantis/packages.yaml +++ b/configs/sites/tier1/atlantis/packages.yaml @@ -89,10 +89,11 @@ packages: externals: - spec: gawk@4.2.1 prefix: /usr - libtool: - externals: - - spec: libtool@2.4.6 - prefix: /usr + # Don't use, incomplete installation + #libtool: + # externals: + # - spec: libtool@2.4.6 + # prefix: /usr findutils: externals: - spec: findutils@4.6.0 From da8dfd47e140d2ac39f0b4432396e4751417faa0 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 17 Dec 2024 18:01:49 -0700 Subject: [PATCH 14/37] Fix typo in configs/common/packages.yaml --- configs/common/packages.yaml | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 0da2f9597..a94ca5aa0 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -228,35 +228,11 @@ packages: require: '~mpi' # https://github.com/JCSDA/spack-stack/issues/1276 py-matplotlib: - require: '@3.7.4' -<<<<<<< Updated upstream -======= - #py-meson-python: - # require: '@0.15.0' ->>>>>>> Stashed changes + 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' -<<<<<<< Updated upstream - py-pandas: - require: '+excel' -======= - # py-numpy@1.26 causes many build problems with older Python packages - # also check Nautilus site config when making changes here - # https://github.com/JCSDA/spack-stack/issues/1276 - #py-numpy: - # require: - # - '@:1.23.5' - # Sigh, it's complicated. With py-cython@3 (needed to avoid duplicate packages), - # pandas must be 2.2 or later. For those versions, the +excel variant adds dependencies - # on py-python-calamina, py-maturin, and rust (full rust, not just rust-bootstrap). - # @climbfuji thinks we can live without the excel variant ... - #py-pandas: - # require: '+excel' - #py-pybind11: - # require: '@2.11.0' ->>>>>>> Stashed changes # To avoid duplicate packages py-ruamel-yaml: require: '@0.17.16' From c11338142baa16c0b1cb6a7752e1881153c8696d Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 19 Dec 2024 15:11:40 -0700 Subject: [PATCH 15/37] Remove '+excel' from py-pandas dependency in spack-ext/repos/spack-stack/packages/jedi-tools-env --- spack-ext/repos/spack-stack/packages/jedi-tools-env/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack-ext/repos/spack-stack/packages/jedi-tools-env/package.py b/spack-ext/repos/spack-stack/packages/jedi-tools-env/package.py index 5e0ac1578..a373bbe3c 100644 --- a/spack-ext/repos/spack-stack/packages/jedi-tools-env/package.py +++ b/spack-ext/repos/spack-stack/packages/jedi-tools-env/package.py @@ -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") From 3f1fd934af000c67d061c932d82d05deb808b53b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 19 Dec 2024 15:44:37 -0700 Subject: [PATCH 16/37] In configs/common/packages.yaml, pin py-numpy to 1.26 to avoid duplicate packages being built --- configs/common/packages.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 5bb61841a..e976c8086 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -234,6 +234,10 @@ packages: py-netcdf4: require: '@1.7.1 +mpi' # To avoid duplicate packages + py-numpy: + require: + - '@1.26' + # To avoid duplicate packages py-ruamel-yaml: require: '@0.17.16' # Pin the py-setuptools version to avoid duplicate Python packages From dadb7b1414e3d461093c2c16dc3e40aea09f9ff2 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 20 Dec 2024 14:51:36 -0700 Subject: [PATCH 17/37] Update submodule pointer for spack --- spack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack b/spack index d0ba7f700..4ada4d7e6 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit d0ba7f700c5b4386df3f2a0500b9012c0e7818d7 +Subproject commit 4ada4d7e66c4f14df5b3476021abf3922ba31d45 From b7b81b77b5480a30e232b93b9ff756bb7a10a360 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 20 Dec 2024 19:37:37 -0700 Subject: [PATCH 18/37] Update submodule pointer for spack --- spack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack b/spack index 4ada4d7e6..9ec2ef68b 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit 4ada4d7e66c4f14df5b3476021abf3922ba31d45 +Subproject commit 9ec2ef68b1c317cd1816552b024df58f5c114dc7 From be1b69c5f06f623880bde384f73af4129590d14b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 26 Dec 2024 10:13:12 -0700 Subject: [PATCH 19/37] Add configs/templates/cylc-dev --- configs/templates/cylc-dev/spack.yaml | 19 +++++++++++++++++++ spack | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 configs/templates/cylc-dev/spack.yaml diff --git a/configs/templates/cylc-dev/spack.yaml b/configs/templates/cylc-dev/spack.yaml new file mode 100644 index 000000000..9d049563e --- /dev/null +++ b/configs/templates/cylc-dev/spack.yaml @@ -0,0 +1,19 @@ +# Template for CYLC (flow, rose, GUI). Supported with GCC only +spack: + concretizer: + unify: true + + view: false + include: [] + + definitions: + - compilers: ['%gcc'] + - packages: + - py-cylc-flow@8.3.6 + - py-cylc-rose@1.3.0 + - py-cylc-uiserver@1.3.0 + + specs: + - matrix: + - [$packages] + - [$compilers] diff --git a/spack b/spack index 9ec2ef68b..7924e1e61 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit 9ec2ef68b1c317cd1816552b024df58f5c114dc7 +Subproject commit 7924e1e61ecfb9c84b67b2916454f686411d6141 From 329f253c5b1410651b1fbd090047a7f6db35e985 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 26 Dec 2024 15:45:02 -0700 Subject: [PATCH 20/37] Update git and git-lfs packages on Atlantis --- configs/sites/tier1/atlantis/packages.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configs/sites/tier1/atlantis/packages.yaml b/configs/sites/tier1/atlantis/packages.yaml index 6f6055deb..7dc8ad892 100644 --- a/configs/sites/tier1/atlantis/packages.yaml +++ b/configs/sites/tier1/atlantis/packages.yaml @@ -41,12 +41,12 @@ packages: prefix: /usr git: externals: - - spec: git@2.39.2+tcltk - prefix: /software8/depot/git-2.39.2 + - spec: git@2.43.5+tcltk + prefix: /usr git-lfs: externals: - - spec: git-lfs@3.3.0 - prefix: /software8/depot/git-2.39.2 + - spec: git-lfs@3.4.1 + prefix: /usr gmake: externals: - spec: gmake@4.2.1 From dd2173c27e1d28f13180ce82418dd2fd08f456de Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 26 Dec 2024 15:45:27 -0700 Subject: [PATCH 21/37] Update configs/templates/cylc-dev/spack.yaml: new versions of py-cylc-rose and py-cylc-uiserver, configure view for Python packages --- configs/templates/cylc-dev/spack.yaml | 29 +++++++++++++++++++-------- spack | 2 +- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/configs/templates/cylc-dev/spack.yaml b/configs/templates/cylc-dev/spack.yaml index 9d049563e..48bfe0f5e 100644 --- a/configs/templates/cylc-dev/spack.yaml +++ b/configs/templates/cylc-dev/spack.yaml @@ -1,19 +1,32 @@ -# Template for CYLC (flow, rose, GUI). Supported with GCC only +# Template for CYLC (flow, rose, GUI). Supported with GCC only. +# Creates a view that allows users to define (manually for now) +# simple environments with just PATH and CYLC_PYTHONPATH set: +# +# #!/bin/bash +# export VIEWDIR=/path/to/env/view-pys +# export PATH=$VIEWDIR/bin:$PATH +# export CYLC_PYTHONPATH=$VIEWDIR/lib/python3.11/site-packages +# spack: concretizer: unify: true - view: false + view: + cylc: + root: $SPACK_ENV/view-pys + select: [^python] + link: run + link_type: symlink include: [] definitions: - compilers: ['%gcc'] - packages: - - py-cylc-flow@8.3.6 - - py-cylc-rose@1.3.0 - - py-cylc-uiserver@1.3.0 + - py-cylc-flow@8.3.6 + - py-cylc-rose@1.4.2 + - py-cylc-uiserver@1.5.1 specs: - - matrix: - - [$packages] - - [$compilers] + - matrix: + - [$packages] + - [$compilers] diff --git a/spack b/spack index 7924e1e61..c12792ff5 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit 7924e1e61ecfb9c84b67b2916454f686411d6141 +Subproject commit c12792ff587861448bc1fce00cce62cb8ddb45df From d2726d231f81409554fa10c1ca4014a29b7c2e67 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 26 Dec 2024 15:49:30 -0700 Subject: [PATCH 22/37] Add cylc-dev to templates for buildcache builds in .github/workflows/ubuntu-ci-x86_64-gnu.yaml --- .github/workflows/ubuntu-ci-x86_64-gnu.yaml | 34 ++++++++++++--------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ubuntu-ci-x86_64-gnu.yaml b/.github/workflows/ubuntu-ci-x86_64-gnu.yaml index a8f295b7c..d94e22e9c 100644 --- a/.github/workflows/ubuntu-ci-x86_64-gnu.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-gnu.yaml @@ -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}" @@ -113,20 +115,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 + # 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} ..." From f8f60b9b69db0fa9849dcf83d0c3d50b237ec756 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 26 Dec 2024 16:44:50 -0700 Subject: [PATCH 23/37] Update submodule pointer for spack --- spack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack b/spack index c12792ff5..4f6695cb2 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit c12792ff587861448bc1fce00cce62cb8ddb45df +Subproject commit 4f6695cb2ba53c3563131d9a5833229c69ad365f From 1048dc53717a073033d40f863835599ccd120c9f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 7 Jan 2025 19:05:59 -0700 Subject: [PATCH 24/37] Update submodule pointer for spack --- spack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack b/spack index 6ad67d157..9d3e64c3f 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit 6ad67d1576d20fe695038f8cd69722a85b41460c +Subproject commit 9d3e64c3f0c9607a1f60971ce5aa4c65ed52b392 From ede071b8ef116f7ec9932a32de6e754e7af2648e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 7 Jan 2025 19:09:46 -0700 Subject: [PATCH 25/37] Revert adding cylc variant to neptune-env --- configs/templates/neptune-dev/spack.yaml | 4 ++-- .../repos/spack-stack/packages/neptune-python-env/package.py | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/configs/templates/neptune-dev/spack.yaml b/configs/templates/neptune-dev/spack.yaml index 9f88eb883..3e03f9164 100644 --- a/configs/templates/neptune-dev/spack.yaml +++ b/configs/templates/neptune-dev/spack.yaml @@ -8,8 +8,8 @@ spack: definitions: - compilers: ['%aocc', '%apple-clang', '%gcc', '%intel', '%oneapi'] - packages: - - neptune-env +espc ^esmf@=8.8.0b10 - - neptune-python-env +xnrl +cylc ^neptune-env +espc ^esmf@=8.8.0b10 + - neptune-env +espc ^esmf@=8.8.0b10 + - neptune-python-env +xnrl ^neptune-env +espc ^esmf@=8.8.0b10 specs: - matrix: diff --git a/spack-ext/repos/spack-stack/packages/neptune-python-env/package.py b/spack-ext/repos/spack-stack/packages/neptune-python-env/package.py index 18837b9f1..2e20105b8 100644 --- a/spack-ext/repos/spack-stack/packages/neptune-python-env/package.py +++ b/spack-ext/repos/spack-stack/packages/neptune-python-env/package.py @@ -20,7 +20,6 @@ class NeptunePythonEnv(BundlePackage): version("1.5.0") variant("xnrl", default=False, description="Build non-pulic XNRL") - variant("cylc", default=False, description="Build cylc") depends_on("neptune-env", type="run") # Enable the Python variant for ESMF @@ -41,7 +40,4 @@ class NeptunePythonEnv(BundlePackage): with when("+xnrl"): depends_on("py-xnrl", type="run") - with when("+cylc"): - depends_on("py-cylc-flow", type="run") - # There is no need for install() since there is no code. From 7a3b46025b859fd9f342c215d4797386ecc7e96c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 8 Jan 2025 09:01:35 -0700 Subject: [PATCH 26/37] [skip ci] Debug cylc-dev build in .github/workflows/ubuntu-ci-x86_64-gnu.yaml --- .github/workflows/ubuntu-ci-x86_64-gnu.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ubuntu-ci-x86_64-gnu.yaml b/.github/workflows/ubuntu-ci-x86_64-gnu.yaml index d94e22e9c..66e1a3652 100644 --- a/.github/workflows/ubuntu-ci-x86_64-gnu.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-gnu.yaml @@ -51,7 +51,8 @@ jobs: # Set up spack-stack source ./setup.sh - declare -a TEMPLATES=("unified-dev" "skylab-dev" "cylc-dev") + #declare -a TEMPLATES=("unified-dev" "skylab-dev" "cylc-dev") + declare -a TEMPLATES=("cylc-dev") for TEMPLATE in "${TEMPLATES[@]}"; do if [[ "${TEMPLATE}" == *"unified-dev"* ]]; then export ENVNAME=ue-gcc-11.4.0-buildcache @@ -106,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 From 4f0f4639a530323d10c516448f982951415e4e25 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 8 Jan 2025 13:59:41 -0700 Subject: [PATCH 27/37] Exclude old/deprecated meson@0.61 from 'spack external find' on Ubuntu self-hosted runner --- .github/workflows/ubuntu-ci-x86_64-gnu.yaml | 3 ++- .github/workflows/ubuntu-ci-x86_64-intel.yaml | 3 ++- .github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml | 2 +- .github/workflows/ubuntu-ci-x86_64-oneapi.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ubuntu-ci-x86_64-gnu.yaml b/.github/workflows/ubuntu-ci-x86_64-gnu.yaml index 66e1a3652..0f12bc21e 100644 --- a/.github/workflows/ubuntu-ci-x86_64-gnu.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-gnu.yaml @@ -71,7 +71,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 diff --git a/.github/workflows/ubuntu-ci-x86_64-intel.yaml b/.github/workflows/ubuntu-ci-x86_64-intel.yaml index 708efb581..c6138a994 100644 --- a/.github/workflows/ubuntu-ci-x86_64-intel.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-intel.yaml @@ -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 diff --git a/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml b/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml index 417dd8029..3aadfb4ed 100644 --- a/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml @@ -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 diff --git a/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml b/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml index 7c11fbb2e..9e36dae82 100644 --- a/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml @@ -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 From 9e180cc7750fe48b2cc3b7ce1f6629ee5dc4eb42 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 8 Jan 2025 15:47:58 -0700 Subject: [PATCH 28/37] Update submodule pointer for spack --- spack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack b/spack index 9d3e64c3f..6ad5ffa68 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit 9d3e64c3f0c9607a1f60971ce5aa4c65ed52b392 +Subproject commit 6ad5ffa68b8a1f99f151ee4b0549821ba53e436b From 772bb08aa62cef1078b20cd3839447ccaa8f0355 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 8 Jan 2025 15:52:34 -0700 Subject: [PATCH 29/37] Replace bad 'set +e' with 'set -e' in all self-hosted runner workflows --- .github/workflows/macos-ci-aarch64.yaml | 2 +- .github/workflows/ubuntu-ci-x86_64-intel.yaml | 2 +- .github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml | 2 +- .github/workflows/ubuntu-ci-x86_64-oneapi.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/macos-ci-aarch64.yaml b/.github/workflows/macos-ci-aarch64.yaml index 22366b897..c882ccca2 100644 --- a/.github/workflows/macos-ci-aarch64.yaml +++ b/.github/workflows/macos-ci-aarch64.yaml @@ -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 echo "Packages in spack binary cache:" spack buildcache list fi diff --git a/.github/workflows/ubuntu-ci-x86_64-intel.yaml b/.github/workflows/ubuntu-ci-x86_64-intel.yaml index c6138a994..00b39a81d 100644 --- a/.github/workflows/ubuntu-ci-x86_64-intel.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-intel.yaml @@ -145,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 diff --git a/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml b/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml index 3aadfb4ed..17779f482 100644 --- a/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml @@ -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 diff --git a/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml b/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml index 9e36dae82..e2c79175d 100644 --- a/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml @@ -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 From f120565b5cceae8f1c129b526e3b2d9c55f96190 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 8 Jan 2025 17:05:23 -0700 Subject: [PATCH 30/37] Revert .gitmodules and update submodule pointer for spack --- .gitmodules | 6 ++---- spack | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index ca6f4f48e..a69f3e4f1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,7 @@ [submodule "spack"] path = spack - #url = https://github.com/jcsda/spack - #branch = spack-stack-dev - url = https://github.com/climbfuji/spack - branch = feature/py_cylc_flow_836 + url = https://github.com/jcsda/spack + branch = spack-stack-dev [submodule "doc/CMakeModules"] path = doc/CMakeModules url = https://github.com/noaa-emc/cmakemodules diff --git a/spack b/spack index 6ad5ffa68..8e178db6d 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit 6ad5ffa68b8a1f99f151ee4b0549821ba53e436b +Subproject commit 8e178db6dd7f9246e8f27f31520c8dec136ba66c From 28b0fae9b53ae4f48e5deef5cb3a01d4fd65ce11 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 8 Jan 2025 17:05:52 -0700 Subject: [PATCH 31/37] Revert temporary changes in .github/workflows/ubuntu-ci-x86_64-gnu.yaml --- .github/workflows/ubuntu-ci-x86_64-gnu.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ubuntu-ci-x86_64-gnu.yaml b/.github/workflows/ubuntu-ci-x86_64-gnu.yaml index 0f12bc21e..14a80693e 100644 --- a/.github/workflows/ubuntu-ci-x86_64-gnu.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-gnu.yaml @@ -51,8 +51,7 @@ jobs: # Set up spack-stack source ./setup.sh - #declare -a TEMPLATES=("unified-dev" "skylab-dev" "cylc-dev") - declare -a TEMPLATES=("cylc-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 From 9f8a7f5b76f7a961f98a765d64c3b352a7c0542f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 9 Jan 2025 16:32:47 -0700 Subject: [PATCH 32/37] Update .gitmodules and submodule pointer for spack for code review and testing --- .gitmodules | 6 ++++-- spack | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index a69f3e4f1..e28019a85 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,9 @@ [submodule "spack"] path = spack - url = https://github.com/jcsda/spack - branch = spack-stack-dev + #url = https://github.com/jcsda/spack + #branch = spack-stack-dev + url = https://github.com/climbfuji/spack + branch = bugfix/freetype_zlibapi_depbuildenv [submodule "doc/CMakeModules"] path = doc/CMakeModules url = https://github.com/noaa-emc/cmakemodules diff --git a/spack b/spack index 8e178db6d..53c39cad5 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit 8e178db6dd7f9246e8f27f31520c8dec136ba66c +Subproject commit 53c39cad5d87a18fc77b235d99e2224448b77216 From a5904ba33b0e00c99002b8fb35db3b66d5fb7d6d Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 9 Jan 2025 16:33:46 -0700 Subject: [PATCH 33/37] In configs/templates/cylc-dev/spack.yaml: rename view; path is relative to spack.yaml directory --- configs/templates/cylc-dev/spack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/templates/cylc-dev/spack.yaml b/configs/templates/cylc-dev/spack.yaml index 48bfe0f5e..184e41acc 100644 --- a/configs/templates/cylc-dev/spack.yaml +++ b/configs/templates/cylc-dev/spack.yaml @@ -13,7 +13,7 @@ spack: view: cylc: - root: $SPACK_ENV/view-pys + root: view select: [^python] link: run link_type: symlink From 3f79cfc4c326a3cd552e256427588925f20c6280 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 9 Jan 2025 17:09:15 -0700 Subject: [PATCH 34/37] configs/common/packages_{intel,oneapi}.yaml: Build qt with gcc for Intel Classic/LLVM --- configs/common/packages_intel.yaml | 3 +++ configs/common/packages_oneapi.yaml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/configs/common/packages_intel.yaml b/configs/common/packages_intel.yaml index 56c0dbbde..e853f7a12 100644 --- a/configs/common/packages_intel.yaml +++ b/configs/common/packages_intel.yaml @@ -30,6 +30,9 @@ packages: boost: require: - '%gcc' + qt: + require: + - '%gcc' ecflow: require: - '%gcc' diff --git a/configs/common/packages_oneapi.yaml b/configs/common/packages_oneapi.yaml index 6dec75f43..f148f1ecf 100644 --- a/configs/common/packages_oneapi.yaml +++ b/configs/common/packages_oneapi.yaml @@ -21,3 +21,6 @@ packages: require: '%gcc' libbsd: require: '%gcc' + qt: + require: + - '%gcc' From 9a443a6a10759d2dd74c2e570188b1c8c0ab0094 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 10 Jan 2025 08:41:14 -0700 Subject: [PATCH 35/37] Revert .gitmodules and update submodule pointer for spack --- .gitmodules | 6 ++---- spack | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index e28019a85..a69f3e4f1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,7 @@ [submodule "spack"] path = spack - #url = https://github.com/jcsda/spack - #branch = spack-stack-dev - url = https://github.com/climbfuji/spack - branch = bugfix/freetype_zlibapi_depbuildenv + url = https://github.com/jcsda/spack + branch = spack-stack-dev [submodule "doc/CMakeModules"] path = doc/CMakeModules url = https://github.com/noaa-emc/cmakemodules diff --git a/spack b/spack index 53c39cad5..dd99fc1e1 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit 53c39cad5d87a18fc77b235d99e2224448b77216 +Subproject commit dd99fc1e177cbae412e1753f3a81499df90cee27 From ab2e628a5d29e3c00abb307cd746fc02c52d3060 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 10 Jan 2025 14:36:20 -0700 Subject: [PATCH 36/37] [skip ci] Update configs/sites/tier1/narwhal/compilers.yaml: add comment to use compilers without Cray wrappers for building cylc-env --- configs/sites/tier1/narwhal/compilers.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configs/sites/tier1/narwhal/compilers.yaml b/configs/sites/tier1/narwhal/compilers.yaml index ec9b170c0..2ef73aab1 100644 --- a/configs/sites/tier1/narwhal/compilers.yaml +++ b/configs/sites/tier1/narwhal/compilers.yaml @@ -48,10 +48,16 @@ compilers:: - compiler: spec: gcc@10.3.0 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: From 6b53f10420dc9e15f7ec2196886c788d7ce684c4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 10 Jan 2025 14:40:38 -0700 Subject: [PATCH 37/37] [skip ci] Update comment about cylc-wrapper in configs/templates/cylc-dev/spack.yaml --- configs/templates/cylc-dev/spack.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/configs/templates/cylc-dev/spack.yaml b/configs/templates/cylc-dev/spack.yaml index 184e41acc..c77313021 100644 --- a/configs/templates/cylc-dev/spack.yaml +++ b/configs/templates/cylc-dev/spack.yaml @@ -1,11 +1,12 @@ # Template for CYLC (flow, rose, GUI). Supported with GCC only. # Creates a view that allows users to define (manually for now) -# simple environments with just PATH and CYLC_PYTHONPATH set: +# simple wrappers for cylc that can be aliased as "cylc": # -# #!/bin/bash -# export VIEWDIR=/path/to/env/view-pys -# export PATH=$VIEWDIR/bin:$PATH -# export CYLC_PYTHONPATH=$VIEWDIR/lib/python3.11/site-packages +##!/bin/bash +##CYLC_INSTALL_DIR=/path/to/env/view/bin +##PATH=${CYLC_INSTALL_DIR}:$PATH +##unset PYTHONPATH +##cylc "$@" # spack: concretizer: