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

Distribute wheels to support PEP 518 and pip 10 #278

Closed
sqlalchemy-bot opened this issue Apr 16, 2018 · 9 comments
Closed

Distribute wheels to support PEP 518 and pip 10 #278

sqlalchemy-bot opened this issue Apr 16, 2018 · 9 comments
Labels
blocker bug Something isn't working duplicate This issue or pull request already exists installation

Comments

@sqlalchemy-bot
Copy link

Migrated issue, originally created by Ashwin Vishnu (@avmo)

We use Mako as a build dependency in fluiddyn/fluidfft. PEP 518 support would cure our setup bootstrapping problem.

However since PEP 517 is not implemented yet, adding a pyproject.toml like this:

[build-system]
# Minimum requirements for the build system to execute.
requires = [
    "setuptools", "wheel",  "numpy", "Cython",  "Mako"
]

will result in

(test-pip10) ~/s/f/fluidfft ❯❯❯ pip install -e .                                                                                                                           
Obtaining file:///home/avmo/src/fluidmeta/fluidfft
  Could not find a version that satisfies the requirement Mako (from versions: )
No matching distribution found for Mako

According to https://pip.pypa.io/en/latest/reference/pip/#pep-518-support, this is because pip 10 supports only finding wheels, not source distributions. It is too much to ask, but since mako seems like a pure python package, will it be possible to distribute a universal wheel?

Otherwise we have to wait for PEP 517 support, which can be months :)

@sqlalchemy-bot
Copy link
Author

Michael Bayer (@zzzeek) wrote:

mako is not actively maintained. what exactly is your "setup bootstrapping problem" ? if you're looking for a higher velocity project maybe Jinja is delivering wheels and/or following all these new pip features.

@sqlalchemy-bot
Copy link
Author

Ashwin Vishnu (@avmo) wrote:

In fluidfft we rely on mako to generate cython code, for instance https://bitbucket.org/fluiddyn/fluidfft/src/default/src_cy/template2d_mako.pxd. So this requires mako (and also numpy and cython) to be installed prior to running setup.py. It does not matter if we specify these as dependencies in setup(...) function call. This is the bootstrapping problem.

According to a pip developer for PEP 517, it might take a long time for pip to implement.

It would be nice if we can keep using mako, and we do not mind if it is not actively maintained - it works as it is now. Nor do we require a lot of advanced templates. Are wheels not possible with mako?

@sqlalchemy-bot
Copy link
Author

Michael Bayer (@zzzeek) wrote:

Wheels were removed because we have dynamic logic to install Markupsafe, which was because Armin removed Python 2.6 support a little sooner than the rest of the world. See #249, still opened. On the Mako side, I am hesitant to get into the suggested implementations since they are complicated and I'm looking for a solution that isn't going to break the next time pip changes things around. The best solution would be to drop python 2.6 and 3.3 support, but also the argparse requirement would need to be figured out for 2.7.

@sqlalchemy-bot
Copy link
Author

Michael Bayer (@zzzeek) wrote:

woop argparse is in 2.7, fixed that part

@sqlalchemy-bot
Copy link
Author

Ashwin Vishnu (@avmo) wrote:

Anyways, feel free to put this on hold. We took your advice and used
Jinja as a fallback option, without changing the templates :) Thanks

@sqlalchemy-bot
Copy link
Author

Michael Bayer (@zzzeek) wrote:

the irony that the issue Mako has with wheels were caused by Armin in the first place :)

@sqlalchemy-bot
Copy link
Author

Ashwin Vishnu (@avmo) wrote:

It is interesting how Jinja2 keeps Python 2.6 support, when it also depends on MarkupSafe.

It is indeed painful if a lot of people are still relying on Python 2.6 support - esp. these days when libraries are starting to drop support for Python 2 altogether. And #249 was opened in 2015. I don't think people would crucify you for dropping Python 2.6 / 3.3 support. Maybe both Jinja2 and Mako should take a stand together and start deprecation :)

@sqlalchemy-bot
Copy link
Author

Michael Bayer (@zzzeek) wrote:

then how is Jinja accomplishing all that + wheels ?

@sqlalchemy-bot sqlalchemy-bot added bug Something isn't working blocker installation labels Nov 26, 2018
@zzzeek
Copy link
Member

zzzeek commented Nov 27, 2018

this is a dupe of #249.

@zzzeek zzzeek closed this as completed Nov 27, 2018
@zzzeek zzzeek added the duplicate This issue or pull request already exists label Nov 27, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocker bug Something isn't working duplicate This issue or pull request already exists installation
Projects
None yet
Development

No branches or pull requests

2 participants