From d5eb5106b00cbb0c2d0328d98e59dd2bc194351d Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Thu, 29 Jun 2023 17:37:48 +0200 Subject: Add unit-tests for use cases requiring separate concretization of build deps --- .../repos/duplicates.test/packages/gmake/package.py | 19 +++++++++++++++++++ .../repos/duplicates.test/packages/hdf5/package.py | 17 +++++++++++++++++ .../duplicates.test/packages/pinned-gmake/package.py | 16 ++++++++++++++++ .../duplicates.test/packages/py-numpy/package.py | 20 ++++++++++++++++++++ .../packages/py-setuptools/package.py | 19 +++++++++++++++++++ .../duplicates.test/packages/py-shapely/package.py | 18 ++++++++++++++++++ .../repos/duplicates.test/packages/python/package.py | 18 ++++++++++++++++++ var/spack/repos/duplicates.test/repo.yaml | 2 ++ 8 files changed, 129 insertions(+) create mode 100644 var/spack/repos/duplicates.test/packages/gmake/package.py create mode 100644 var/spack/repos/duplicates.test/packages/hdf5/package.py create mode 100644 var/spack/repos/duplicates.test/packages/pinned-gmake/package.py create mode 100644 var/spack/repos/duplicates.test/packages/py-numpy/package.py create mode 100644 var/spack/repos/duplicates.test/packages/py-setuptools/package.py create mode 100644 var/spack/repos/duplicates.test/packages/py-shapely/package.py create mode 100644 var/spack/repos/duplicates.test/packages/python/package.py create mode 100644 var/spack/repos/duplicates.test/repo.yaml (limited to 'var') diff --git a/var/spack/repos/duplicates.test/packages/gmake/package.py b/var/spack/repos/duplicates.test/packages/gmake/package.py new file mode 100644 index 0000000000..64eed7ef67 --- /dev/null +++ b/var/spack/repos/duplicates.test/packages/gmake/package.py @@ -0,0 +1,19 @@ +# 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 * + + +class Gmake(Package): + """Simple build tool, with different versions""" + + homepage = "http://www.example.com" + url = "http://www.example.com/tdep-1.0.tar.gz" + + tags = ["build-tools"] + + version("4.1", md5="0123456789abcdef0123456789abcdef") + version("4.0", md5="0123456789abcdef0123456789abcdef") + version("3.0", md5="0123456789abcdef0123456789abcdef") + version("2.0", md5="0123456789abcdef0123456789abcdef") diff --git a/var/spack/repos/duplicates.test/packages/hdf5/package.py b/var/spack/repos/duplicates.test/packages/hdf5/package.py new file mode 100644 index 0000000000..98082cbbf9 --- /dev/null +++ b/var/spack/repos/duplicates.test/packages/hdf5/package.py @@ -0,0 +1,17 @@ +# 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 * + + +class Hdf5(Package): + """Requires gmake at a version that doesn't match that of its dependency""" + + homepage = "http://www.example.com" + url = "http://www.example.com/tdep-1.0.tar.gz" + + version("1.0", md5="0123456789abcdef0123456789abcdef") + + depends_on("pinned-gmake", type="link") + depends_on("gmake@4", type="build") diff --git a/var/spack/repos/duplicates.test/packages/pinned-gmake/package.py b/var/spack/repos/duplicates.test/packages/pinned-gmake/package.py new file mode 100644 index 0000000000..71e90b1a82 --- /dev/null +++ b/var/spack/repos/duplicates.test/packages/pinned-gmake/package.py @@ -0,0 +1,16 @@ +# 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 * + + +class PinnedGmake(Package): + """Software that requires gmake at a specific version""" + + homepage = "http://www.example.com" + url = "http://www.example.com/tdep-1.0.tar.gz" + + version("1.0", md5="0123456789abcdef0123456789abcdef") + + depends_on("gmake@3", type="build") diff --git a/var/spack/repos/duplicates.test/packages/py-numpy/package.py b/var/spack/repos/duplicates.test/packages/py-numpy/package.py new file mode 100644 index 0000000000..2af50e4910 --- /dev/null +++ b/var/spack/repos/duplicates.test/packages/py-numpy/package.py @@ -0,0 +1,20 @@ +# 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 * + + +class PyNumpy(Package): + """An extension that depends on pinned build dependencies""" + + homepage = "http://www.example.com" + url = "http://www.example.com/tdep-1.0.tar.gz" + + tags = ["build-tools"] + + version("1.25.0", md5="0123456789abcdef0123456789abcdef") + + extends("python") + depends_on("py-setuptools@=59", type=("build", "run")) + depends_on("gmake@4.1", type="build") diff --git a/var/spack/repos/duplicates.test/packages/py-setuptools/package.py b/var/spack/repos/duplicates.test/packages/py-setuptools/package.py new file mode 100644 index 0000000000..eaf7850697 --- /dev/null +++ b/var/spack/repos/duplicates.test/packages/py-setuptools/package.py @@ -0,0 +1,19 @@ +# 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 * + + +class PySetuptools(Package): + """Build tool for an extendable package""" + + homepage = "http://www.example.com" + url = "http://www.example.com/tdep-1.0.tar.gz" + + tags = ["build-tools"] + + extends("python") + + version("60", md5="0123456789abcdef0123456789abcdef") + version("59", md5="0123456789abcdef0123456789abcdef") diff --git a/var/spack/repos/duplicates.test/packages/py-shapely/package.py b/var/spack/repos/duplicates.test/packages/py-shapely/package.py new file mode 100644 index 0000000000..b471bbda5e --- /dev/null +++ b/var/spack/repos/duplicates.test/packages/py-shapely/package.py @@ -0,0 +1,18 @@ +# 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 * + + +class PyShapely(Package): + """An extension that depends on pinned build dependencies""" + + homepage = "http://www.example.com" + url = "http://www.example.com/tdep-1.0.tar.gz" + + version("1.25.0", md5="0123456789abcdef0123456789abcdef") + + extends("python") + depends_on("py-numpy", type=("build", "link", "run")) + depends_on("py-setuptools@=60", type="build") diff --git a/var/spack/repos/duplicates.test/packages/python/package.py b/var/spack/repos/duplicates.test/packages/python/package.py new file mode 100644 index 0000000000..0c4db4781e --- /dev/null +++ b/var/spack/repos/duplicates.test/packages/python/package.py @@ -0,0 +1,18 @@ +# 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 * + + +class Python(Package): + """A package that can be extended""" + + homepage = "http://www.example.com" + url = "http://www.example.com/tdep-1.0.tar.gz" + + version("3.11.2", md5="0123456789abcdef0123456789abcdef") + + extendable = True + + depends_on("gmake@3", type="build") diff --git a/var/spack/repos/duplicates.test/repo.yaml b/var/spack/repos/duplicates.test/repo.yaml new file mode 100644 index 0000000000..fd021c858c --- /dev/null +++ b/var/spack/repos/duplicates.test/repo.yaml @@ -0,0 +1,2 @@ +repo: + namespace: duplicates.test -- cgit v1.2.3-60-g2f50