Lars-Dominik Braun skriver: > I pushed the 3rd version of my new PEP 517-based python-build-system > into wip-python-pep517. I removed the dependency on python-pypa-build > for building packages and instead implemented building with a single > python invokation. This simplifies bootstrapping Python. The 'install > phase also learned how to create scripts in bin/ from an entry points > specification. This is great, thank you. > Currently 600 of 2212 packages using python-build-system are failing to > build. That’s alot, but most failures so far were related to testsuites, > which were not enabled correctly previously because 'check was not > replaced manually. And some fail because upstream does not separate > sources and tests and a name clash occurs. This also happens when C > extensions are build and there does not seem to be a workaround. Can you elaborate on the name clash issue? > This number does not include Python 2 packages, which will probably > break with this new build system. Since Python 2 is EOL anyway I suggest > to entirely remove Python 2 support before merging this changeset. After > merging we should upgrade the entire Python ecosystem, because alot of > packages are already years old. Unfortunately we need Python 2 for some time still. It is used to bootstrap old versions of GHC, Node, and probably other things. Do you think it is feasible to provide this as a new build system, say pep517-build-system, during a transitional period? Then we can a) start using it right away for the increasing amount of packages that lack a setup.py; and b) flesh out most bugs before eventually merging it back (possibly piecemeal) into python-build-system. I've had a cursory look and it looks good overall. A few comments: * Zipping a wheel just to unpack it afterwards is weird, but there seems to be no way around it. * I also think trying "python setup.py test" is unnecessary. * It would be nice to support the "no tests" case without having to add explicit #:tests? everywhere. Perhaps along the lines of... (match use-test-backend ('pytest (apply invoke ...)) [...] (_ (match (find-files "." "^test_.*\\.py$") (() (format #t "no tests found~%")) (_ (apply invoke `("python" "-m" "unittest" ,@test-flags)))))) WDYT? Great work, and apologies for not chiming in earlier!