GNU bug report logs - #58587
[PATCH 00/14] Introducing pyproject-build-system.

Previous Next

Package: guix-patches;

Reported by: Marius Bakke <marius <at> gnu.org>

Date: Mon, 17 Oct 2022 20:07:01 UTC

Severity: normal

Tags: patch

Done: Marius Bakke <marius <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Marius Bakke <marius <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>, 58587 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: [bug#58587] [PATCH 00/14] Introducing pyproject-build-system.
Date: Thu, 20 Oct 2022 01:11:49 +0200
[Message part 1 (text/plain, inline)]
zimoun <zimon.toutoune <at> gmail.com> skriver:

> I would add a note, for instance, something like that:

[...]

Good idea, although I don't like to duplicate so much information from
the build system description.  Here is my attempt:

[Message part 2 (text/x-patch, inline)]
diff --git a/doc/contributing.texi b/doc/contributing.texi
index b9260267fa..d12daa7ec3 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -786,6 +786,21 @@ for instance, the module python-dateutil is packaged under the names
 starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as
 described above.
 
+@quotation Note
+Currently there are two different build systems for Python packages in Guix:
+@var{python-build-system} and @var{pyproject-build-system}.  For the
+longest time, Python packages were built from an informally specified
+@file{setup.py} file.  That worked amazingly well, considering Pythons
+success, but was difficult to build tooling around.  As a result, a host
+of alternative build systems emerged and the community eventually settled on a
+@url{https://peps.python.org/pep-0517/, formal standard} for specifying build
+requirements.  @var{pyproject-build-system} is Guix's implementation of this
+standard.  It is considered ``experimental'' in that it does not yet support
+all the various PEP-517 @emph{build backends}, but you are encouraged to try
+it for new Python packages and report any problems.  It will eventually be
+deprecated and merged into @var{python-build-system}.
+@end quotation
+
 @subsubsection Specifying Dependencies
 @cindex inputs, for Python packages
 
[Message part 3 (text/plain, inline)]
>> +@defvr {Scheme Variable} pyproject-build-system
>> +This is a variable exported by @code{guix build-system pyproject}.  It
>> +is a reimplementation of @code{python-build-system} designed around
>                              ^
> s/code/var

Fixed both instances, thanks.  :-)

I also made some substantial changes to the build system:

* Moved 'python-toolchain' into python.scm which seems to work fine.
* Inherit from python-build-system where possible.
* Hint about deprecating 'add-installed-pythonpath', which has always
  annoyed me :-) I think a 'with-installed-pythonpath' would be much
  more ergonomic and plan to submit that later.
* Most importantly, use three ;;; for module commentary.

Patch below:

[0001-fixup-pyproject.patch (text/x-patch, attachment)]
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 2 years and 262 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.