Subject: Re: [bug#58310] [PATCH 04/14] gnu: Add python-hatchling-bootstrap.

From: zimoun <[email-masked]>
Date: Wed, 02 Nov 2022 18:11:26 +0100

Hi,

CC: python team

On mer., 05 oct. 2022 at 13:41, Garek Dyszel via Guix-patches via <[email-masked]> wrote:
> * gnu/packages/python-build.scm (python-hatchling-bootstrap): New variable.
> ---
>  gnu/packages/python-build.scm | 63 +++++++++++++++++++++++++++++++++++
>  1 file changed, 63 insertions(+)
>
> diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm
> index e17cde16d9..f90d23874f 100644
> --- a/gnu/packages/python-build.scm
> +++ b/gnu/packages/python-build.scm
> @@ -516,3 +516,66 @@ (define-public python-editables
>  ``editable mode''.  In other words, changes to the package source will be
>  reflected in the package visible to Python, without needing a reinstall.")
>      (license license:expat)))
> +
> +;; This depends on packages in python-xyz.scm:
> +;; python-version, python-importlib-metadata, python-pathspec,
> +;; python-pluggy-1.0, and python-platformdirs.
> +(define-public python-hatchling-bootstrap
> +  (package
> +    (name "python-hatchling-bootstrap")
> +    (version "1.10.0")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/pypa/hatch")
> +                    (commit (string-append "hatchling-v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +                ;;"1q25kqw71g8mjwfjz9ph0iigdqa26zzxgmqm0v0bp0z1j8rcl237"
> +                "1yqkwck2aihfdm9ljv5q4nygmmqyp35xwyp8lqn2f4vq9p6njq3c"))))
> +    ;; python-pypa-build needed for bootstrapping.
> +    ;; Otherwise we get a circular reference:
> +    ;; python-hatchling trying to build itself, without
> +    ;; first having hatchling installed.
> +    (inputs (list python-pypa-build
> +                  python-editables
> +                  python-importlib-metadata
> +                  python-version
> +                  python-packaging-next
> +                  python-pathspec
> +                  python-pluggy-1.0 ;TODO: Not detected by pytest?
> +                  python-tomli
> +                  python-platformdirs))

The issue here is that many dependencies are from the module (gnu
packages python-xyz).  Well, moving this python-hatchling-bootstrap and
the next patch adding python-hatch to python-xyz does not look like the
correct home.  And dragging these dependencies to python-build neither.

What could be the best solution here?

Cheers,
simon