From d6ff426d4816fdfcaa1d4c3ba43b857f3532e1d9 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 27 Feb 2023 13:51:13 -0600 Subject: py-awkward: new version 1.10.*, 2.0.* (#35549) * py-awkward: new version 1.10.*, 2.0.* Lots of changes in 2.0.*, see https://github.com/scikit-hep/awkward/releases. This will need some extra testing. * py-awkward: hatchling * Update var/spack/repos/builtin/packages/py-awkward/package.py * Update var/spack/repos/builtin/packages/py-awkward/package.py * py-scikit-build-core: new and improved py-scikit-build * py-awkward-cpp: new package * py-awkward: add depends_on py-awkward-cpp * py-awkward: depends_on py-packaging * py-awkward-cpp: new versions pinned by py-awkward * py-scikit-build-core: additional depends_on * py-awkward: branch master deprecated * py-pytest-subprocess: new package * py-pytest: new version 7.2.1 * py-scikit-build-core: add tests dependencies * [@spackbot] updating style on behalf of wdconinc * py-scikit-build-core: two more test dependencies * py-pytest: depends_on py-exceptiongroup * py-awkward: add pytest support * py-pytest: suggestions from review * py-scikit-build-core: suggestions from review * Update var/spack/repos/builtin/packages/py-awkward-cpp/package.py Co-authored-by: Adam J. Stewart * py-awkward: depends_on pyyaml when @:1, order old deps last * [@spackbot] updating style on behalf of wdconinc * py-awkward: move some opt deps to test, order test deps * py-awkward: remove test dependencies --------- Co-authored-by: wdconinc Co-authored-by: Adam J. Stewart --- .../builtin/packages/py-awkward-cpp/package.py | 31 ++++++++++++ .../repos/builtin/packages/py-awkward/package.py | 43 ++++++++++++++-- .../packages/py-pytest-subprocess/package.py | 21 ++++++++ .../repos/builtin/packages/py-pytest/package.py | 15 +++--- .../packages/py-scikit-build-core/package.py | 58 ++++++++++++++++++++++ 5 files changed, 157 insertions(+), 11 deletions(-) create mode 100644 var/spack/repos/builtin/packages/py-awkward-cpp/package.py create mode 100644 var/spack/repos/builtin/packages/py-pytest-subprocess/package.py create mode 100644 var/spack/repos/builtin/packages/py-scikit-build-core/package.py diff --git a/var/spack/repos/builtin/packages/py-awkward-cpp/package.py b/var/spack/repos/builtin/packages/py-awkward-cpp/package.py new file mode 100644 index 0000000000..e187e8a82e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-awkward-cpp/package.py @@ -0,0 +1,31 @@ +# 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 PyAwkwardCpp(PythonPackage): + """py-awkward-cpp provides precompiled routines for the py-awkward package. + It is not useful on its own, only as a dependency for py-awkward.""" + + git = "https://github.com/scikit-hep/awkward.git" + pypi = "awkward-cpp/awkward-cpp-9.tar.gz" + homepage = "https://awkward-array.org" + + maintainers("vvolkl", "wdconinc") + + version("9", sha256="db1c91c21f88b89a39b46176edc67a08b37f7283c16a2ed5159e3c874613c61a") + version("8", sha256="a51b554490b3197fc5433822becb2e8208bf78fca82ffa314d839b72b3cc4169") + version("7", sha256="dde733575b2a5ae5b946fe8667b4ae842d937d3b36ebb383d53dc53ea86ea65d") + version("6", sha256="58e32afa8aa44c365e764f4b5d07637c79a79be2da7cfbaa3469d8bd26b0bfa2") + version("5", sha256="e5d6a90d98a14dab36598015e69243b9f83b8851556104cbe778ca9c79923656") + version("4", sha256="fbc4b5e552873e00ffb6286941efc7b629e4fbc4752e28afb9b54854128937f7") + version("3", sha256="6070557762bd95d3642ad9c585609db51f899a1e79ce4f41568835efd7d6e066") + version("2", sha256="5e63f43e3135f76db81e0924a74ecf4870f585c11a9f432568b377c04028868c") + + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-scikit-build-core@0.1.3:+pyproject", type="build") + depends_on("py-pybind11", type=("build", "link")) + depends_on("py-numpy@1.14.5:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-awkward/package.py b/var/spack/repos/builtin/packages/py-awkward/package.py index d81393d918..d033d25a29 100644 --- a/var/spack/repos/builtin/packages/py-awkward/package.py +++ b/var/spack/repos/builtin/packages/py-awkward/package.py @@ -15,7 +15,20 @@ class PyAwkward(PythonPackage): maintainers("vvolkl") - version("master", branch="master") + version("main", branch="main") + version("master", branch="main", deprecated=True) + version("2.0.8", sha256="32a57c29e13a2ae3bc1e6ac53637825bbd22c4286696163bd41a1dec284a8ee5") + version("2.0.7", sha256="05397d659a5a8889c8afae193c0ea51585683038ecc7f666f3da9835ba2f6492") + version("2.0.6", sha256="9e5133ba6be89ff1210d862edf83824fe0c1f21dccfe1d52161329760ffac821") + version("2.0.5", sha256="2a07bb0409411782fea226de5c817eb6e48db06d64323977581e4f304f911029") + version("2.0.4", sha256="fc36ef5934ced78b6d8a40bc94d3ea59667725516b36afea5ed1ef794263a7c7") + version("2.0.3", sha256="563bb70ef7673ba4dd9dd7116493d1b661bba729305d1fa50efa8cc38ab43da9") + version("2.0.2", sha256="c7b8194be5f9b1f19ed64c2a4b01d96b1b5a9a357e5a96186c6692d6b4cf439b") + version("2.0.1", sha256="97fa7e119cc31f479b660a8213df5ba8c938b66f76aadf90b8bdb956c5b5654b") + version("2.0.0", sha256="3782b34643083d6ee7644e9fdb3daeafc4b6030a667f219fd61cb7b234976b68") + version("1.10.2", sha256="303bc0919f0932db3e78a9254c17fcdeb125e4be65cd894b40dfbc3bfddfc054") + version("1.10.1", sha256="c6394ed25fb14a086d63621d9d84fdc228f5d42a64586f215731b36fde17034b") + version("1.10.0", sha256="1d89c7244e6184b35f4bce6bd08ff82eb2ef60be67f572923bc6aaee35dab544") version("1.9.0", sha256="cad799237e4370b50f77e716e78dd3565a7b3fd82fcd5a41a76aa1512d51075d") version("1.8.0", sha256="6655fa22d1b1d1dcb9ccee0d502350ab90c53467a10b540b7624422b594d2e72") version("1.7.0", sha256="e4e642dfe496d2acb245c90e37dc18028e25d5e936421e7371ea6ba0fde6435a") @@ -31,13 +44,33 @@ class PyAwkward(PythonPackage): patch("pybind11.patch", when="@:1.2.2") patch("pybind11_02.patch", when="@1.2.3:1.8.0") - depends_on("py-setuptools@42.0:", type=("build", "run")) - depends_on("py-pyyaml", type="build") + depends_on("py-hatchling@1.10:", when="@2:", type="build") + depends_on("py-hatch-fancy-pypi-readme", when="@2:", type="build") + depends_on("py-setuptools@42.0:", when="@:1", type=("build", "run")) + depends_on("py-pyyaml", when="@:1", type="build") + + _awkward_to_awkward_cpp_map = [ + ("@2.0.0", "@2"), + ("@2.0.1", "@3"), + ("@2.0.2", "@4"), + ("@2.0.3:2.0.4", "@5"), + ("@2.0.5", "@6"), + ("@2.0.6", "@7"), + ("@2.0.7", "@8"), + ("@2.0.8", "@9"), + ] + for _awkward, _awkward_cpp in _awkward_to_awkward_cpp_map: + depends_on("py-awkward-cpp{}".format(_awkward_cpp), when=_awkward, type=("build", "run")) depends_on("python@2.7:2.8,3.5:", type=("build", "run")) - depends_on("python@3.6:", when="@1.9.0:", type=("build", "run")) - depends_on("py-numpy@1.13.1:", type=("build", "run")) + depends_on("python@3.6:", when="@1.9:", type=("build", "run")) + depends_on("python@3.7:", when="@1.10:", type=("build", "run")) + depends_on("py-numpy@1.13.1:", when="@:1", type=("build", "run")) + depends_on("py-numpy@1.14.5:", when="@2:", type=("build", "run")) depends_on("py-pybind11", type=("build", "link")) + depends_on("py-importlib-resources", when="@2: ^python@:3.8", type=("build", "run")) + depends_on("py-typing-extensions@4.1:", when="@2: ^python@:3.10", type=("build", "run")) + depends_on("py-packaging", when="@2:", type=("build", "run")) depends_on("dlpack", when="@1.0.0:") depends_on("rapidjson") depends_on("cmake@3.13:", type="build") diff --git a/var/spack/repos/builtin/packages/py-pytest-subprocess/package.py b/var/spack/repos/builtin/packages/py-pytest-subprocess/package.py new file mode 100644 index 0000000000..f825c1f8fb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pytest-subprocess/package.py @@ -0,0 +1,21 @@ +# 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 PyPytestSubprocess(PythonPackage): + """A plugin to fake subprocess for pytest.""" + + homepage = "https://pytest-subprocess.readthedocs.io/en/latest/" + pypi = "pytest-subprocess/pytest-subprocess-1.5.0.tar.gz" + git = "https://github.com/aklajnert/pytest-subprocess" + + maintainers("wdconinc") + + version("1.5.0", sha256="d7693b96f588f39b84c7b2b5c04287459246dfae6be1dd4098937a728ad4fbe3") + + depends_on("py-setuptools", type="build") + depends_on("py-pytest@4:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-pytest/package.py b/var/spack/repos/builtin/packages/py-pytest/package.py index ff7ba5b428..fcbf83c9f0 100644 --- a/var/spack/repos/builtin/packages/py-pytest/package.py +++ b/var/spack/repos/builtin/packages/py-pytest/package.py @@ -12,6 +12,7 @@ class PyPytest(PythonPackage): homepage = "https://pytest.org/" pypi = "pytest/pytest-5.2.1.tar.gz" + version("7.2.1", sha256="d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42") version("7.1.3", sha256="4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39") version("6.2.5", sha256="131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89") version("6.2.4", sha256="50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b") @@ -63,17 +64,19 @@ class PyPytest(PythonPackage): depends_on("py-pluggy@0.7:", when="@3.7:4.3", type=("build", "run")) depends_on("py-pluggy@0.5:0.7", when="@3.6.4:3.6", type=("build", "run")) depends_on("py-pluggy@0.5:0.6", when="@:3.6.3", type=("build", "run")) - depends_on("py-py@1.8.2:", when="@6:", type=("build", "run")) - depends_on("py-py@1.5.0:", when="@3.3:5", type=("build", "run")) - depends_on("py-py@1.4.33:", when="@3.1.2:3.2.3,3.2.5:3.2", type=("build", "run")) - depends_on("py-py@1.4.33:1.4", when="@3.2.4", type=("build", "run")) - depends_on("py-py@1.4.29:", when="@:3.1.1", type=("build", "run")) - depends_on("py-tomli@1:", when="@7:", type=("build", "run")) depends_on("py-colorama", when="platform=windows", type=("build", "run")) + depends_on("py-exceptiongroup@1:", when="@7: ^python@:3.10", type=("build", "run")) depends_on("py-importlib-metadata@0.12:", when="@4.6:5.0", type=("build", "run")) depends_on("py-importlib-metadata@0.12:", when="@5.1: ^python@:3.7", type=("build", "run")) + depends_on("py-tomli@1:", when="@7.1: ^python@:3.10", type=("build", "run")) + depends_on("py-tomli@1:", when="@7.0", type=("build", "run")) # Historic dependencies + depends_on("py-py@1.8.2:", when="@6:7.1", type=("build", "run")) + depends_on("py-py@1.5.0:", when="@3.3:5", type=("build", "run")) + depends_on("py-py@1.4.33:", when="@3.1.2:3.2.3,3.2.5:3.2", type=("build", "run")) + depends_on("py-py@1.4.33:1.4", when="@3.2.4", type=("build", "run")) + depends_on("py-py@1.4.29:", when="@:3.1.1", type=("build", "run")) depends_on("py-atomicwrites@1.0:", when="@5.3:7.1.2 platform=windows", type=("build", "run")) depends_on("py-atomicwrites@1.0:", when="@3.6:5.2", type=("build", "run")) depends_on("py-toml", when="@6", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-scikit-build-core/package.py b/var/spack/repos/builtin/packages/py-scikit-build-core/package.py new file mode 100644 index 0000000000..1733dc7706 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-scikit-build-core/package.py @@ -0,0 +1,58 @@ +# 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 PyScikitBuildCore(PythonPackage): + """scikit-build-core is a doubly improved build system generator + for CPython C/C++/Fortran/Cython extensions. It features several + improvements over the classic scikit-build build system generator.""" + + homepage = "https://github.com/scikit-build/scikit-build-core" + pypi = "scikit_build_core/scikit_build_core-0.2.0.tar.gz" + git = "https://github.com/scikit-build/scikit-build-core" + + maintainers("wdconinc") + + version("0.2.0", sha256="d2a76d9447a412038dc5e25dd259b03c25278661a0c7c3da766bb971c1a9acd2") + + variant("pyproject", default=False, description="Enable pyproject.toml support") + + depends_on("python@3.7:", type=("build", "run")) + + # Build system + depends_on("py-hatchling", type="build") + depends_on("py-hatch-vcs", type="build") + + # Dependencies + depends_on("py-exceptiongroup", when="^python@:3.10", type=("build", "run")) + depends_on("py-importlib-resources@1.3:", when="^python@:3.8", type=("build", "run")) + depends_on("py-packaging@20.9:", type=("build", "run")) + depends_on("py-tomli@1.1:", when="^python@:3.10", type=("build", "run")) + depends_on("py-typing-extensions@3.10:", when="^python@:3.7", type=("build", "run")) + depends_on("cmake@3.15:", type=("build", "run")) + + # Optional dependencies + depends_on("py-pyproject-metadata@0.5:", when="+pyproject", type=("build", "run")) + depends_on("py-pathspec@0.10.1:", when="+pyproject", type=("build", "run")) + + # Test dependencies + depends_on("py-build +virtualenv", type="test") + depends_on("py-cattrs@22.2:", type="test") + depends_on("py-importlib-metadata", when="^python@:3.7", type="test") + depends_on("py-pathspec@0.10.1:", type="test") + depends_on("py-pybind11", type="test") + depends_on("py-pyproject-metadata@0.5:", type="test") + depends_on("py-pytest@7:", type="test") + depends_on("py-pytest-subprocess@1.5:", type="test") + depends_on("py-setuptools", type="test") + depends_on("py-wheel", type="test") + + @run_after("install") + @on_package_attributes(run_tests=True) + def install_test(self): + with working_dir("tests"): + which("pytest")() -- cgit v1.2.3-70-g09d2