<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jan 14, 2016 at 12:55 AM, Nathaniel Smith <span dir="ltr"><<a href="mailto:njs@pobox.com" target="_blank">njs@pobox.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi all,<br>
<br>
Just wanted give distutils-sig a heads-up that there seems to be some<br>
momentum gathering around a plot to bring linux wheels to pypi:<br>
<br>
  <a href="https://github.com/manylinux/manylinux" rel="noreferrer" target="_blank">https://github.com/manylinux/manylinux</a><br>
<br>
Basically the idea is to define a standard baseline linux environment<br>
(available libraries + version numbers + ABI of these), give it a name<br>
(for now, "manylinux"), and then provide tools to build wheels against<br>
this environment, teach pip how to recognize that the system it's on<br>
conforms to the environment, and then convince pypi to start accepting<br>
wheels with this as a platform tag :-). And if we carefully define the<br>
baseline environment based on the experiences of the popular<br>
scientific python distros (Continuum's Anaconda + Enthought's Canopy)<br>
we can be highly confident that essentially all desktop + server linux<br>
distros will be compatible with these wheels.<br></blockquote><div><br></div>Hi Nathaniel,<div><br></div><div>This is exciting news. As you probably know, I've been working in this space as well. In fact, the January 2016 release of Galaxy[1] will be the first to use wheels to distribute or framework dependencies, and they're installed via pip. We also have a Docker-based build system that automates the process of building these wheels[2].</div><div><br></div><div>Unfortunately, this necessitates our own modified versions of pip[3] and wheel[4] for messing with the platform tags. My previous discussion here on distutils-sig on the subject stalled on the discussion of these environments, but it sounds like you're making progress where that stopped.</div><div><br></div><div>If there is momentum to manylinux and it will gain the favor of pip/PyPI maintainers, I would be happy to transfer my effort there. I've written a linux distro detection library that may be of some use if it's not possible to base all environments off Centos 5. I, and the Galaxy project as a whole, are very motivated to make official Linux wheels a reality.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">This strategy is orthogonal to the more ambitious efforts to define an<br>
interface between wheels and the platform package manager; they can<br>
proceed in parallel and potentially complement each other. The goal<br>
here is just to get linux up to feature parity with windows and osx.<br>
<br>
Status:<br>
- we have a draft policy<br>
- there's a cool tool for scanning wheels and checking whether they<br>
conform to the policy: <a href="https://github.com/manylinux/auditwheel" rel="noreferrer" target="_blank">https://github.com/manylinux/auditwheel</a><br>
- there's a draft docker image to make it easy to build such wheels<br>
(<a href="https://github.com/manylinux/manylinux/pull/2" rel="noreferrer" target="_blank">https://github.com/manylinux/manylinux/pull/2</a>)<br>
<br>
To do:<br>
- bikeshed the name ("manylinux" was picked after about 2 minutes of<br>
discussion so as to get started. maybe "genericlinux" would be better?<br>
I dunno.)<br></blockquote><div><br></div><div>FWIW, as an illumos proponent, this same work as is being done for Linux will transfer over to other "distro" OSes like illumos.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
- build some test wheels<br>
- write a proper PEP<br>
- convince pip and pypi maintainers that this is a good idea ;-)<br>
<span class=""><font color="#888888"><br>
-n<br>
<br>
--<br>
Nathaniel J. Smith -- <a href="http://vorpus.org" rel="noreferrer" target="_blank">http://vorpus.org</a><br>
_______________________________________________<br>
Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/distutils-sig" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/distutils-sig</a><br>
</font></span></blockquote></div><br></div><div class="gmail_extra"><br class="">Not directly related, but Galaxy is moving toward Conda as its tool dependency distribution system, so we are likely to converge efforts in other places as well.<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">--nate</div><div class="gmail_extra"><br></div><div class="gmail_extra">[1] <a href="https://github.com/galaxyproject/galaxy/">https://github.com/galaxyproject/galaxy/</a></div><div class="gmail_extra">[2] <a href="https://github.com/galaxyproject/starforge/">https://github.com/galaxyproject/starforge/</a></div><div class="gmail_extra">[3] <a href="https://github.com/natefoo/pip/tree/linux-wheels">https://github.com/natefoo/pip/tree/linux-wheels</a></div><div class="gmail_extra">[4] <a href="https://bitbucket.org/natefoo/wheel">https://bitbucket.org/natefoo/wheel</a></div></div>