Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make the build system pep518 compatible #2647

Closed
sileht opened this issue Nov 10, 2022 · 2 comments
Closed

make the build system pep518 compatible #2647

sileht opened this issue Nov 10, 2022 · 2 comments

Comments

@sileht
Copy link

sileht commented Nov 10, 2022

Installation of this package is going to break soon.

$ pip install peewee
Collecting peewee
  Using cached peewee-3.15.3.tar.gz (858 kB)
  Preparing metadata (setup.py) ... done
Installing collected packages: peewee
  DEPRECATION: peewee is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
  Running setup.py install for peewee ... done
Successfully installed peewee-3.15.3

does the project has planned to upgrade the build system ?

@coleifer
Copy link
Owner

For fucks sake, pypa is so obnoxious! I don't know how to make our setup process compatible with this toml nonsense because we offer several installation modes:

  1. When cython is available we will cythonize the extension files
  2. When sqlite headers are available we will compile the extensions
  3. If sqlite headers are not available we do an installation without the optional extensions.

I think part of the issue is that you don't have the wheel package installed, and thus pip cannot run setup.py bdist_wheel. For some insane reason the pip folks have not found it in their interests to make wheel part of either the standard library or the dependencies of pip itself, but in the future will effectively treat it as a dependency for projects that don't or can't use "toml".

At any rate, I'm going to hold off on any knee-jerk changes to this library and suggest for now that you install wheel first. Going forward, I may need to look into just pushing wheels to pypi, but I don't want to do that because a) concerns about conditionally compiling the extensions, b) cross-platform support for C extensions, and c) breaking everyone's existing installation workflow.

@coleifer
Copy link
Owner

Actually, I'm going to try adding the absolute minimal pyproject.toml and see where that gets us.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants