On Wednesday, March 12th, 2025 at 00:11, Miro Hrončok mhroncok@redhat.com wrote:
Hello packagers.
As a followup to this email sent a month ago to the python-devel list, I now plan to make the incorrect (and unsafe) usage of %pyproject_buildrequires -t/-e and %tox without a suitable tox configuration fail the build.
This is a breaking change, but I believe it's the only way to prevent packages with always passing %checks.
If your package has no tox configuration, do not use the -t/-e option for %pyproject_buildrequires, do not use %tox.
This change will land to rawhide first and later to all stable releases as well.
For reference: https://src.fedoraproject.org/rpms/pyproject-rpm-macros/pull-request/512
On 05. 02. 25 10:47, Miro Hrončok wrote:
Hello Pythonistas.
When we updated tox from version 3 to 4, it no longer fails when here is no suitable tox configuration found. This was a deliberate upstream choice.
Unfortunately, it means that packages that use %pyproject_buildrequires with -t or -e now silently succeed if there is no tox configuration found.
I identified 95 packages that are affected by this, see below.
Unfortunately, it is tricky to detect a missing tox configuration directly from %pyproject_buildrequires. For now, I did this by looking for a specific information in tox output, but that might not be stable.
I built all Rawhide packages matching %{?pyproject_buildrequires\s+(.+\s)?- \S*[te] in a copr with a modified version of %pyproject_buildrequires which fails when this happens.
https://copr.fedorainfracloud.org/coprs/churchyard/pyproject-buildrequires-n... tox-error/builds/
For all the failures, I looked into the logs and identified the 95 failures are caused by that (see below).
If this affects your package, please consider if your usage of -t/-e for %pyproject_buildrequires is a mistake (and remove it), or see if some explicit build dependencies are missing (and the package only builds by chance).
Sometimes, upstreams which use tox don't put their tox configuration into sdist (%pypi_source) and only keep it in git.
Sometimes, upstreams don't use tox at all and the usage of -t/-e is wrong.
If you have questions, I am happy to help.
Maintainers by package: patool eclipseo eclipseo patool python-towncrier scancode-toolkit
-- Miro Hrončok -- Phone: +420777974800 IRC: mhroncok
This should be fixed in patool 4.0.0
Best regards
-- Robert-André Mauchin FAS: eclipseo