py-hatchling: add new packages, document new build backend (#31512)

* py-hatchling: add new package, document new build backend

* Minor doc changes

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
This commit is contained in:
Adam J. Stewart
2022-07-11 16:23:28 -07:00
committed by GitHub
parent 18b51e19df
commit 5bd1074afb
3 changed files with 72 additions and 2 deletions

View File

@@ -48,8 +48,9 @@ important to understand.
**build backend**
Libraries used to define how to build a wheel. Examples
include `setuptools <https://setuptools.pypa.io/>`__,
`flit <https://flit.readthedocs.io/>`_, and
`poetry <https://python-poetry.org/>`_.
`flit <https://flit.readthedocs.io/>`_,
`poetry <https://python-poetry.org/>`_, and
`hatchling <https://hatch.pypa.io/latest/>`_.
^^^^^^^^^^^
Downloading
@@ -326,6 +327,33 @@ for specifying the version requirements. Note that ``~=`` works
differently in poetry than in setuptools and flit for versions that
start with a zero.
"""""""""
hatchling
"""""""""
If the ``pyproject.toml`` lists ``hatchling.build`` as the
``build-backend``, it uses the hatchling build system. Look for
dependencies under the following keys:
* ``requires-python``
This specifies the version of Python that is required
* ``project.dependencies``
These packages are required for building and installation. You can
add them with ``type=('build', 'run')``.
* ``project.optional-dependencies``
This section includes keys with lists of optional dependencies
needed to enable those features. You should add a variant that
optionally adds these dependencies. This variant should be ``False``
by default.
See https://hatch.pypa.io/latest/config/dependency/ for more
information.
""""""
wheels
""""""
@@ -666,3 +694,4 @@ For more information on build backend tools, see:
* setuptools: https://setuptools.pypa.io/
* flit: https://flit.readthedocs.io/
* poetry: https://python-poetry.org/
* hatchling: https://hatch.pypa.io/latest/

View File

@@ -0,0 +1,18 @@
# Copyright 2013-2022 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 PyEditables(PythonPackage):
"""A Python library for creating "editable wheels"."""
homepage = "https://github.com/pfmoore/editables"
pypi = "editables/editables-0.3.tar.gz"
version('0.3', sha256='167524e377358ed1f1374e61c268f0d7a4bf7dbd046c656f7b410cde16161b1a')
depends_on('python@3.7:', type=('build', 'run'))
depends_on('py-setuptools@42:', type='build')

View File

@@ -0,0 +1,23 @@
# Copyright 2013-2022 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 PyHatchling(PythonPackage):
"""Modern, extensible Python build backend."""
homepage = "https://hatch.pypa.io/latest/"
pypi = "hatchling/hatchling-1.4.1.tar.gz"
version('1.4.1', sha256='13461b42876ade4f75ee5d2a2c656b288ca0aab7f048ef66657ef166996b2118')
depends_on('python@3.7:', type=('build', 'run'))
depends_on('py-editables@0.3:', type=('build', 'run'))
depends_on('py-importlib-metadata', when='^python@:3.7', type=('build', 'run'))
depends_on('py-packaging@21.3:', type=('build', 'run'))
depends_on('py-pathspec@0.9:', type=('build', 'run'))
depends_on('py-pluggy@1:', type=('build', 'run'))
depends_on('py-tomli@1.2.2:', when='^python@:3.10', type=('build', 'run'))