gnu: python-pluggy: Update to 1.6.0.
* gnu/packages/python-build.scm (python-pluggy): Update to 1.6.0.
[build-system]: Use pyproject.
Change-Id: I0084e9fae704fc7ec3eb0f41823e948784aedf3f
gnu: python-trove-classifiers: Update to 2025.5.9.12.
* gnu/packages/python-build.scm (python-trove-classifiers): Update to 2025.5.9.12.
Change-Id: Iac57d876d1df1300c1ad59e2c3e8a05116be9e1e
gnu: python-pathspec: Update to 0.12.1.
* gnu/packages/python-build.scm (python-pathspec): Update to 0.12.1.
[build-system]: Use pyproject.
[arguments] <test-backend>: Use 'unittest.
[native-inputs]: Add python-flit-core and python-setuptools.
Change-Id: I2ac5abfd1acc54849ad523cde8afd5da320849e0
gnu: python-setuptools-scm: Update to 8.3.1.
* gnu/packages/python-build.scm (python-setuptools-scm): Update to 8.3.1.
[build-system]: Use pyproject.
[arguments] <build-backend>: Use "setuptools.build_meta".
[propagated-inputs]: Remove python-tomli, and
python-typing-extenstions; add python-setuptools.
Change-Id: I810fc2a642a23380e8d5773c507361aeedd2f67d
gnu: python-packaging-bootstrap: Update to 25.0.
* gnu/packages/python-build.scm (python-packaging-bootstrap): Update to 25.0.
[propagated-inputs]: Remove python-pyparsing and python-six-bootstrap.
Change-Id: I57729f30f4b2d216bde3f2224c330fda24043299
gnu: python-wheel: Update to 0.46.1.
* gnu/packages/python-build.scm (python-wheel): Update to 0.46.1.
[build-system]: Use pyproject.
[native-inputs]: Add python-flit-core.
Change-Id: I5b2e801b6c440bfd5b902e81004e9e28c59e8b19
gnu: python-flit-core: Fix input label name.
* gnu/packages/python-build.scm (python-flit-core): Fix input label name.
[propagated-inputs]: Label python-tomli as such.
Change-Id: Id271db1bc8a5ce2ac8bce76556d0ddc31b71bf1f
gnu: python-tomli: Update to 2.2.1.
* gnu/packages/python-build.scm (python-tomli): Update to 2.2.1.
[native-inputs]: Remove python-six-bootstrap.
Change-Id: I6d16fdd95e4fad6a100f3070d22a26f2706fea2a
gnu: python-flit-core-bootstrap: Switch to pyproject.
* gnu/packages/python-build.scm (python-flit-core-bootstrap):
[build-system]: Use pyproject.
[arguments] <phases>: Add 'fix-license; use default 'install.
Change-Id: I79baaf6885c0c07ad508f110307fc31487439fd4
gnu: python-flit-core-bootstrap: Update to 3.12.0.
* gnu/packages/python-build.scm (python-flit-core-bootstrap): Update to 3.12.0.
Change-Id: I9975f7603b2921325c513f7500b1f0dd7759c2d1
gnu: python-toml: Switch to pyproject.
* gnu/packages/python-build.scm (python-toml):
[build-system]: Use pyproject.
[native-inputs]: Add python-setuptools.
Change-Id: If5836a9c2229c7c6f681e211c8346cdc5c37f505
gnu: mallard-ducktype: Switch to pyproject.
* gnu/packages/python-xyz.scm (mallard-ducktype)[build-system]: Switch
to pyproject-build-system.
[native-inputs]: Add python-setuptools.
Change-Id: I86592f5332819b160f0f804a3495ef1b0491ff78
gnu: python-libxml2: Switch to pyproject.
* gnu/packages/xml.scm (python-libxml2)[build-system]: Switch to
pypojrect-build-system.
[native-inputs]: Add python-setuptools.
Change-Id: I4a8ac976b9bdb508f4c1efa4b29407a96615aeb2
gnu: python-lxml: Switch to pyproject.
* gnu/packages/xml.scm (python-lxml) [build-system]: Switch to
pyproject-build-system.
[native-inputs]: Add python-setuptools.
(python-lxml-4.9)[arguments] <phases>: Add custom 'check.
Change-Id: Ib64a5e181dbc70fdb03607e05d79549ef2e51738
gnu: python-setuptools: Update to 80.9.0.
* gnu/packages/python-build.scm (python-setuptools): Update to 80.9.0.
Change-Id: I76ecbbfd4aeb3334fc3544912ded256ff058f3db
build-system/pyproject: Handle wheel not found exception.
The current error is very uninformative, use a proper exception to
give more information when this happens:
`In procedure map: Wrong type argument: #f`
After this patch:
`In procedure raise-exception:
ERROR:
1. &no-wheels-found`
* guix/build/pyproject-build-system.scm (&no-wheels-found): Add exception.
(install): Handle exception.
Change-Id: Ie72d3b50dfededb2d598162672cdb4321c42b632
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system/pyproject: Avoid PEP427 substitution on binary files.
In some rare cases, the dest-path can be an elf-file, which are
unreadable by substitute*, leading to an error instead of just
continuing which makes more sense in this case.
* guix/build-system/pyproject.scm (check): Guard substitution attempt
with basic readability guarantees.
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system/pyproject: Add stestr, unittest and custom options.
* guix/build-system/pyproject.scm (check): Add stestr, unittest and
custom test-backends.
Change-Id: I2d44b3b8dd928ab844b4479fb073afff845e13ee
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system/pyproject: Use copy-recursively instead of merge-dirs.
Using rename-file, the destination had to be empty otherwise it would error
out. This has been fixed by the use of copy-recursively, really merging them.
Changing this makes merge-directories mostly a duplicate of
copy-recursively, thus fully switch to copy-recursively.
* guix/build/pyproject-build-system.scm (install)
<python-hashbang>: Remove it, used only once.
<merge-directories>: Remove it, replace its calls by copy-recursively
and delete-file-recursively.
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system/pyproject: Add python test-backend.
* guix/build/pyproject-build-system(check): Add python test-backend.
This will help in cases where a simple `python -m module args` call has
to be made instead of fully replacing the 'check phase, e.g. unittest
or django. This is never enabled unless #:test-backend 'python is set,
so it doesn't break anything.
As an example, the following snippet...
(arguments
(list #:phases #~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "python" "-m" "unittest"
"diff_match_patch.tests")))))))
...can be transformed like this:
(arguments
'(#:test-backend 'python
#:test-flags (list "-m" "unittest" "diff_match_patch.tests")))
Change-Id: I4919a3e01d64864e3c328609fbcce7df5b3dfe51
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>