From 02dac1e9c2d519961439bb14778d0ba79f42be63 Mon Sep 17 00:00:00 2001 From: Mikael Stellio Date: Fri, 20 Mar 2026 13:20:21 +0100 Subject: [PATCH 1/5] Add action for package overlap --- .github/workflows/check_packages_overlap.yml | 23 ++++++++++++++++++++ tools/package_overlap.py | 16 ++++++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/check_packages_overlap.yml diff --git a/.github/workflows/check_packages_overlap.yml b/.github/workflows/check_packages_overlap.yml new file mode 100644 index 0000000000..0a78d1173e --- /dev/null +++ b/.github/workflows/check_packages_overlap.yml @@ -0,0 +1,23 @@ +name: Check Packages Overlap Between Spack-C2SM and Spack +on: + pull_request: + branches: + - main + push: + branches: + - main + workflow_dispatch: + +jobs: + package-overlap: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 1 # --depth 1 and --shallow-submodules + submodules: recursive # --recurse-submodules + + - name: Check Packages Overlap + run: | + python3 tools/package_overlap.py diff --git a/tools/package_overlap.py b/tools/package_overlap.py index 0d89016215..9a93077206 100644 --- a/tools/package_overlap.py +++ b/tools/package_overlap.py @@ -1,7 +1,19 @@ import os +import sys spack = set(os.listdir("./spack/var/spack/repos/builtin/packages")) spack_c2sm = set(os.listdir("./repos/c2sm/packages")) -for folder in sorted(spack & spack_c2sm): - print(folder) +overlapping_packages = sorted(spack & spack_c2sm) + +if not overlapping_packages: + print("::notice::No overlapping packages!") +else: + print("::error::Found overlapping packages between Spack-C2SM and Spack repos") + + print("::group::Overlapping packages") + for package in overlapping_packages: + print(package) + print("::endgroup::") + + sys.exit(1) From da15dd62176536f5c506abe215569aaa8e7d4502 Mon Sep 17 00:00:00 2001 From: Mikael Stellio Date: Tue, 24 Mar 2026 19:00:06 +0100 Subject: [PATCH 2/5] Removed overlapping ecbuild and py-hatchling --- repos/c2sm/packages/ecbuild/package.py | 9 ---- repos/c2sm/packages/py-hatchling/package.py | 59 --------------------- 2 files changed, 68 deletions(-) delete mode 100644 repos/c2sm/packages/ecbuild/package.py delete mode 100644 repos/c2sm/packages/py-hatchling/package.py diff --git a/repos/c2sm/packages/ecbuild/package.py b/repos/c2sm/packages/ecbuild/package.py deleted file mode 100644 index c7c610aa18..0000000000 --- a/repos/c2sm/packages/ecbuild/package.py +++ /dev/null @@ -1,9 +0,0 @@ -from spack.package import * -from spack.pkg.builtin.ecbuild import Ecbuild as SpackEcbuild - - -class Ecbuild(SpackEcbuild): - version( - "3.7.2", - sha256="7a2d192cef1e53dc5431a688b2e316251b017d25808190faed485903594a3fb9", - ) diff --git a/repos/c2sm/packages/py-hatchling/package.py b/repos/c2sm/packages/py-hatchling/package.py deleted file mode 100644 index 057790fd62..0000000000 --- a/repos/c2sm/packages/py-hatchling/package.py +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - - -class PyHatchling(PythonPackage): - """Modern, extensible Python build backend.""" - - homepage = "https://hatch.pypa.io/latest/" - pypi = "hatchling/hatchling-1.4.1.tar.gz" - git = "https://github.com/pypa/hatch" - - license("MIT", checked_by="tgamblin") - - version( - "1.21.0", - sha256="5c086772357a50723b825fd5da5278ac7e3697cdf7797d07541a6c90b6ff754c", - ) - version( - "1.18.0", - sha256="50e99c3110ce0afc3f7bdbadff1c71c17758e476731c27607940cfa6686489ca", - ) - version( - "1.17.0", - sha256="b1244db3f45b4ef5a00106a46612da107cdfaf85f1580b8e1c059fefc98b0930", - ) - version( - "1.14.0", - sha256="462ea91df03ff5d52813b5613fec1313a1a2059d2e37343e572b3f979867c5da", - ) - version( - "1.13.0", - sha256="f8d275a2cc720735286b7c2e2bc35da05761e6d3695c2fa416550395f10c53c7", - ) - version( - "1.10.0", - sha256="5d31f43dffaf6265c808e1b5353662ffa5146d844278b55caa6c7f74f427ec50", - ) - version( - "1.8.1", - sha256="448b04b23faed669b2b565b998ac955af4feea66c5deed3a1212ac9399d2e1cd", - ) - version( - "1.4.1", - sha256="13461b42876ade4f75ee5d2a2c656b288ca0aab7f048ef66657ef166996b2118", - ) - - depends_on("py-editables@0.3:", type=("build", "run")) - depends_on("py-packaging@21.3:", type=("build", "run")) - depends_on("py-pathspec@0.10.1:", when="@1.9:", type=("build", "run")) - depends_on("py-pathspec@0.9:", type=("build", "run")) - - # WORKAROUND: py-pluggy@1: and py-tox' py-pluggy@0.12.0:0 are incompatible - # depends_on("py-pluggy@1:", type=("build", "run")) - depends_on("py-pluggy@0.12:", type=("build", "run")) - - depends_on("py-tomli@1.2.2:", when="^python@:3.10", type=("build", "run")) - depends_on("py-trove-classifiers", when="@1.14:", type=("build", "run")) From 54c41403c649e6499c1810b4e1efe351f8462af6 Mon Sep 17 00:00:00 2001 From: Mikael Stellio Date: Tue, 24 Mar 2026 19:41:25 +0100 Subject: [PATCH 3/5] Allow duplicate icon package --- tools/package_overlap.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/package_overlap.py b/tools/package_overlap.py index 9a93077206..2f78374878 100644 --- a/tools/package_overlap.py +++ b/tools/package_overlap.py @@ -6,6 +6,9 @@ overlapping_packages = sorted(spack & spack_c2sm) +# Allow duplicate icon package only before update to Spack v1.1 +overlapping_packages.remove("icon") + if not overlapping_packages: print("::notice::No overlapping packages!") else: From 3d0e9073e541d02b0ffb94ab150ca860be8bdaf8 Mon Sep 17 00:00:00 2001 From: Mikael Stellio Date: Wed, 25 Mar 2026 14:43:06 +0100 Subject: [PATCH 4/5] Remove py-tabulate and py-typing-extensions They were basically not used or used in packages that are not used --- repos/c2sm/packages/py-tabulate/package.py | 21 ------------------- .../packages/py-typing-extensions/package.py | 21 ------------------- 2 files changed, 42 deletions(-) delete mode 100644 repos/c2sm/packages/py-tabulate/package.py delete mode 100644 repos/c2sm/packages/py-typing-extensions/package.py diff --git a/repos/c2sm/packages/py-tabulate/package.py b/repos/c2sm/packages/py-tabulate/package.py deleted file mode 100644 index 65306081e5..0000000000 --- a/repos/c2sm/packages/py-tabulate/package.py +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack.package import * -from spack.pkg.builtin.py_tabulate import PyTabulate as SpackPyTabulate - - -class PyTabulate(SpackPyTabulate): - """Pretty-print tabular data""" - - # BACKPORT: Add missing versions - version( - "0.9.0", - sha256="0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", - ) - version( - "0.8.10", - sha256="6c57f3f3dd7ac2782770155f3adb2db0b1a269637e42f27599925e64b114f519", - ) diff --git a/repos/c2sm/packages/py-typing-extensions/package.py b/repos/c2sm/packages/py-typing-extensions/package.py deleted file mode 100644 index 6b21268f67..0000000000 --- a/repos/c2sm/packages/py-typing-extensions/package.py +++ /dev/null @@ -1,21 +0,0 @@ -from spack.package import * -from spack.pkg.builtin.py_typing_extensions import ( - PyTypingExtensions as SpackPyTypingExtensions, -) - - -class PyTypingExtensions(SpackPyTypingExtensions): - """Backported and Experimental Type Hints for Python 3.7+""" - - version( - "4.10.0", - sha256="b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb", - ) - version( - "4.5.0", - sha256="5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb", - ) - version( - "4.2.0", - sha256="f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376", - ) From ae26345df2deddb1985ef7971383adc3fcc34af8 Mon Sep 17 00:00:00 2001 From: Mikael Stellio Date: Wed, 25 Mar 2026 15:54:03 +0100 Subject: [PATCH 5/5] Removed tests for removed packages --- test/common_system_test.py | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/test/common_system_test.py b/test/common_system_test.py index 3e960d791b..5ff618e3c6 100644 --- a/test/common_system_test.py +++ b/test/common_system_test.py @@ -10,18 +10,6 @@ def test_install_cosmo_eccodes_definitions(): spack_install("cosmo-eccodes-definitions") -def test_install_ecbuild(): - # Tests are disabled because they fail with: - # The following tests FAILED: - # 1 - ECBUILD-359 (Failed) - # 2 - ECBUILD-401 (Failed) - # 8 - ECBUILD-511 (Failed) - # 11 - bundle-subdir-std (Failed) - # 12 - bundle-subdir-ecbfind (Failed) - # 17 - test_ecbuild_find_package (Failed) - spack_install("ecbuild @3.7.2", test_root=False) - - def test_install_makedepf90(): # Tests are disabled because they fail with: # test1.sh: No such file or directory @@ -58,21 +46,9 @@ def test_install_py_gridtools_cpp(): spack_install("py-gridtools-cpp") -def test_install_py_hatchling(): - spack_install("py-hatchling") - - def test_install_py_inflection(): spack_install("py-inflection") def test_install_py_pytest_factoryboy(): spack_install("py-pytest-factoryboy") - - -def test_install_py_tabulate(): - spack_install("py-tabulate") - - -def test_install_py_typing_extensions(): - spack_install("py-typing-extensions")