coveragepy: Make coverage packaging be PEP-517 compliant

Describe the bug I observed some warnings when installing coverage related to the packaging of coverage, likely caused by lack of PEP-517 compliance.

Using legacy 'setup.py install' for coverage, since package 'wheel' is not installed.

To Reproduce

pip install coverage

Expected behavior Full PEP-517 compliance (aka removal of setup.py and adoption of pyproject.toml).

Additional context Add any other context about the problem here.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 1
  • Comments: 18 (7 by maintainers)

Commits related to this issue

Most upvoted comments

This is now released as part of coverage 6.5.0.

There’s not actually a problem here with PEP 517 compliance:

❯ pip install --no-binary coverage coverage
Collecting coverage
  Using cached coverage-6.4.1.tar.gz (719 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: coverage
  Building wheel for coverage (pyproject.toml) ... done
  Created wheel for coverage: filename=coverage-6.4.1-cp310-cp310-win_amd64.whl size=186291 sha256=3a568a74b8c95e42043eb4c118e09b6eb89a2d0f5b2b0617cfa7bef5cac793a5
  Stored in directory: c:\users\gustav\appdata\local\pip\cache\wheels\a7\02\73\c1f7efbef9c538f8893948fa77a61364777e01e861fa54fcec
Successfully built coverage
Installing collected packages: coverage
Successfully installed coverage-6.4.1

Certainly, coverage could change its build process to reflect recent standards, but the existing code is recognised and handled correctly, at least by a modern version of pip.

Maybe the OP can give a better explanation of how to reproduce the issue, as it doesn’t seem to reproduce for me.

I’ll note that the error reported, “Using legacy ‘setup.py install’ for coverage, since package ‘wheel’ is not installed” would not normally be given by pip if run with no special options, as wheel is installed into the build environment automatically. Was the problem that the OP was using --no-build-isolation (or some other non-standard option) when running pip?