There is currently no convenient way to inject our sanity-check.py
script in the inputs of a project that extends another build-system
with pyproject components. Thus we usually don't run sanity-check for
such cases (it's only python build and install).
This patch improves a bit this issue by exposing our script. Since it
doesn't change derivations, this doesn't lead to rebuilds and can be
merged in master.
* guix/build-system/pyproject.scm
(sanity-check.py): Replace variable by...
(default-sanity-check.py): Add exported procedure replacing and
extending former sanity-check.py.
(lower)[sanity-check.py]: Add and use argument.
Change-Id: I422d3d2d53b59548099d381feae9b956f5e2e07a
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
PEP 517 specifies it should be a dictionary and thus meson-python cannot
handle an empty list.
Fixes: <https://issues.guix.gnu.org/62781>
* guix/build-system/pyproject.scm (lower): Change default of configure-flags.
* gnu/packages/build-tools.scm (meson-python)[arguments]: Remove #:build-backend,
which was a workaround for this bug.
[native-inputs]: Remove python-p~a-build and python-wheel, which are
not required when using the default build system.
Change-Id: I240ced5c88cf55cbee0d6005d7657bfb6b653b12
More reliable than regular expressions.
* guix/build-system/pyproject.scm (%pyproject-build-system-modules): Add (guix build toml).
(pyproject-build): Add argument #:backend-path.
* guix/build/pyproject-build-system.scm (build): Add support for
auto-detected and override backend-path.
* gnu/packages/python-build.scm (python-tomli)[arguments]: Remove
'add-self-to-path, because it is not necessary any more.
(python-poetry-core): Same.
(python-hatchling): Same.
(python-pdm-backend): Same.
Also adds python-setuptools and python-wheel to relevant packages,
either to native-inputs or to propagated inputs if the pkg_resources
Python module is loaded at runtime.
* guix/build-system/pyproject.scm (default-python): Default to
python-sans-pip-wrapper.
Change-Id: I2d986c2225114f54459dd6bb360913106e52cdf4
This was obtained by setting up this environment:
guix shell -D guix --with-input=guile@3.0.9=guile-next \
--with-commit=guile-next=e2ed33ef0445c867fe56c247054aa67e834861f2
-- make -j5
then adding 'unused-module' to (@@ (guix build compiler) %warnings),
building, and checking all the "unused module" warnings and removing
those that were definitely unused.
This is an experimental build system based on python-build-system
that implements PEP 517-compliant builds.
* doc/guix.texi (Build Systems): Add pyproject-build-system section.
* doc/contributing.texi (Python Modules): Mention pyproject.toml and the
PYTHON-TOOLCHAIN package, as well as differences to python-build-system.
* guix/build-system/pyproject.scm,
guix/build/pyproject-build-system.scm,
gnu/packages/aux-files/python/sanity-check-next.py,
gnu/packages/python-commencement.scm: New files.
* Makefile.am (MODULES): Register the new build systems.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add python-commencement.scm.
* gnu/packages/python.scm (python-sans-pip, python-sans-pip-wrapper): New
variables.
Co-authored-by: Marius Bakke <marius@gnu.org>