[v2,2/4] Add python3-hatchling (from meta-oe)

Message ID 20220620131458.4177628-2-ross.burton@arm.com
State Accepted, archived
Commit 846e806181f1349be29cbce78c5041735dfd7e6f
Headers show
Series [v2,1/4] Add python3-pathspec (from meta-python) | expand

Commit Message

Ross Burton June 20, 2022, 1:14 p.m. UTC
Recipes in core are now needing to use the Hatch build system, so
move the hatchling recipe and class from meta-oe to oe-core.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 meta/classes/python_hatchling.bbclass         |  5 +++++
 meta/conf/distro/include/maintainers.inc      |  1 +
 .../python/python3-hatchling_1.3.0.bb         | 21 +++++++++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 meta/classes/python_hatchling.bbclass
 create mode 100644 meta/recipes-devtools/python/python3-hatchling_1.3.0.bb

Comments

Luca Ceresoli June 21, 2022, 9:51 a.m. UTC | #1
Hi Ross,

On Mon, 20 Jun 2022 14:14:56 +0100
"Ross Burton" <ross.burton@arm.com> wrote:

> Recipes in core are now needing to use the Hatch build system, so
> move the hatchling recipe and class from meta-oe to oe-core.
> 
> Signed-off-by: Ross Burton <ross.burton@arm.com>
> ---
>  meta/classes/python_hatchling.bbclass         |  5 +++++
>  meta/conf/distro/include/maintainers.inc      |  1 +
>  .../python/python3-hatchling_1.3.0.bb         | 21 +++++++++++++++++++
>  3 files changed, 27 insertions(+)
>  create mode 100644 meta/classes/python_hatchling.bbclass
>  create mode 100644 meta/recipes-devtools/python/python3-hatchling_1.3.0.bb
> 
> diff --git a/meta/classes/python_hatchling.bbclass b/meta/classes/python_hatchling.bbclass
> new file mode 100644
> index 00000000000..b3cbe23601b
> --- /dev/null
> +++ b/meta/classes/python_hatchling.bbclass
> @@ -0,0 +1,5 @@
> +inherit python_pep517 python3native python3-dir setuptools3-base
> +
> +DEPENDS += "python3-hatchling-native"
> +
> +PEP517_BUILD_API = "hatchling.build"
> diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
> index abc100e44b2..085593b0e9e 100644
> --- a/meta/conf/distro/include/maintainers.inc
> +++ b/meta/conf/distro/include/maintainers.inc
> @@ -611,6 +611,7 @@ RECIPE_MAINTAINER:pn-python3-extras = "Oleksandr Kravchuk <open.source@oleksandr
>  RECIPE_MAINTAINER:pn-python3-flit-core = "Tim Orling <tim.orling@konsulko.com>"
>  RECIPE_MAINTAINER:pn-python3-git = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
>  RECIPE_MAINTAINER:pn-python3-gitdb = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
> +RECIPE_MAINTAINER:pn-python3-hatchling = "Ross Burton <ross.burton@arm.com>"
>  RECIPE_MAINTAINER:pn-python3-hypothesis = "Tim Orling <tim.orling@konsulko.com>"
>  RECIPE_MAINTAINER:pn-python3-idna = "Bruce Ashfield <bruce.ashfield@gmail.com>"
>  RECIPE_MAINTAINER:pn-python3-imagesize = "Tim Orling <tim.orling@konsulko.com>"
> diff --git a/meta/recipes-devtools/python/python3-hatchling_1.3.0.bb b/meta/recipes-devtools/python/python3-hatchling_1.3.0.bb
> new file mode 100644
> index 00000000000..6e7ccd743f5
> --- /dev/null
> +++ b/meta/recipes-devtools/python/python3-hatchling_1.3.0.bb
> @@ -0,0 +1,21 @@
> +SUMMARY = "The extensible, standards compliant build backend used by Hatch"
> +HOMEPAGE = "https://hatch.pypa.io/"
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cbe2fd33fc9297692812fc94b7d27fd9"
> +
> +inherit pypi python_hatchling
> +
> +DEPENDS += "python3-pluggy-native python3-tomli-native python3-pathspec-native python3-packaging-native python3-editables-native"

Another missing dependency:

  ERROR: Nothing PROVIDES 'python3-editables-native' (but
 /home/pokybuild/yocto-worker/reproducible/build/meta/recipes-devtools/python/python3-hatchling_1.3.0.bb, virtual:native:/home/pokybuild/yocto-worker/reproducible/build/meta/recipes-devtools/python/python3-hatchling_1.3.0.bb DEPENDS on or otherwise requires it). Close matches:

https://autobuilder.yoctoproject.org/typhoon/#/builders/117/builds/1039/steps/12/logs/stdio

Patch

diff --git a/meta/classes/python_hatchling.bbclass b/meta/classes/python_hatchling.bbclass
new file mode 100644
index 00000000000..b3cbe23601b
--- /dev/null
+++ b/meta/classes/python_hatchling.bbclass
@@ -0,0 +1,5 @@ 
+inherit python_pep517 python3native python3-dir setuptools3-base
+
+DEPENDS += "python3-hatchling-native"
+
+PEP517_BUILD_API = "hatchling.build"
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index abc100e44b2..085593b0e9e 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -611,6 +611,7 @@  RECIPE_MAINTAINER:pn-python3-extras = "Oleksandr Kravchuk <open.source@oleksandr
 RECIPE_MAINTAINER:pn-python3-flit-core = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-git = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER:pn-python3-gitdb = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER:pn-python3-hatchling = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-python3-hypothesis = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-idna = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-imagesize = "Tim Orling <tim.orling@konsulko.com>"
diff --git a/meta/recipes-devtools/python/python3-hatchling_1.3.0.bb b/meta/recipes-devtools/python/python3-hatchling_1.3.0.bb
new file mode 100644
index 00000000000..6e7ccd743f5
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-hatchling_1.3.0.bb
@@ -0,0 +1,21 @@ 
+SUMMARY = "The extensible, standards compliant build backend used by Hatch"
+HOMEPAGE = "https://hatch.pypa.io/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cbe2fd33fc9297692812fc94b7d27fd9"
+
+inherit pypi python_hatchling
+
+DEPENDS += "python3-pluggy-native python3-tomli-native python3-pathspec-native python3-packaging-native python3-editables-native"
+DEPENDS:remove:class-native = "python3-hatchling-native"
+
+SRC_URI[sha256sum] = "1401d45d3dd6a5910f64d539acaa943486d5e8b7dda1a97f2b0040fdddc5b85e"
+
+# Until we have a proper tool to invoke PEP517 builds, hatchling can't
+# bootstrap itself automatically.
+PEP517_BUILD_API = "hatchling.ouroboros"
+
+do_compile:prepend() {
+    export PYTHONPATH=src
+}
+
+BBCLASSEXTEND = "native nativesdk"