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

Wheel binary format #3

Open
rubik opened this issue Apr 26, 2013 · 4 comments
Open

Wheel binary format #3

rubik opened this issue Apr 26, 2013 · 4 comments

Comments

@rubik
Copy link

rubik commented Apr 26, 2013

Great tool!
Have you considered using Wheels as binary format? They're pretty advanced and got accepted through some PEPs. Here it is a couple of interesing links:

https://wheel.readthedocs.org
https://bitbucket.org/dholth/wheel

@xolox
Copy link
Member

xolox commented Apr 28, 2013

Hi Michele and thanks for the feedback! During the development of the first prototype of pip-accel we did play around with wheels for a day or two, because they seemed like the ideal solution. Unfortunately I think binary distributions are currently better suited because:

  1. The last time I checked wheels were only supported by a pip beta release;
  2. IIRC wheels as implemented by pip bundle all dependencies which does not match my use case (it's the wrong granularity level). I could process the wheels to split things up again, but before it comes to that I would simply go with binary distributions because they're supported everywhere.

If things mature a bit and there is a way around issue 2 I could see pip-accel using wheels in the future.

@rubik
Copy link
Author

rubik commented Apr 30, 2013

AFAIK wheels are a binary distribution.

  1. I think that the situation is the same (I don't know exactly what progress is being made on the pip front). Here however: http://www.pip-installer.org/en/wheel/usage.html it seems that wheel-related commands will be included in the next major pip version (1.4).
  2. Every wheel contains a single package and are more similar to the setuptools eggs than to pip bundles. Dependencies are not included and you have one wheel per package, which means dependencies will get each one a separated wheel. This makes things faster (e.g. when you don't want to download deps, &c.).

@xolox
Copy link
Member

xolox commented Apr 30, 2013

Of course, you're right, wheels are a binary distribution! With binary distribution I was specifically referring to the archive format created by python setup.py bdist_dumb but that was very implicit indeed. About every wheel containing a single package: That's good to hear, I guess I was confusing wheels and bundles.

It seems like in the future wheels can completely replace binary distribution archives created with bdist_dumb so I think I will prepare pip-accel to add support for wheels, make it optional, collect as much feedback as possible and then change the default binary distribution format to wheels, at which point I should be able to remove the nasty preprocessing of binary distribution archives created with bdist_dumb :-)

By the way, if features like this are accepted into mainline pip I wonder if there remains a place for pip-accel at all... Oh well, as long as we get reproducible environments that are fast to create I don't care (that much) which tool is used to do it.

@kreativitea
Copy link

pip now uses wheels by default, perhaps we don't need this anymore?

pypa/pip#2618

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

No branches or pull requests

3 participants