<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Oct 31, 2013, at 7:25 PM, Chris Barker <<a href="mailto:chris.barker@noaa.gov">chris.barker@noaa.gov</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">On Thu, Oct 31, 2013 at 9:49 AM, Daniel Holth <span dir="ltr"><<a href="mailto:dholth@gmail.com" target="_blank">dholth@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">

<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"><div class="im">I'm sure you could build your own broken Windows Python, but who<br>

</div>
bothers?</blockquote><div><br></div><div style="">As long as we are clear that we are talking about a social difference here, not a technical one...</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">

IMO it pretty much boils down to the fact that on Windows you<br>
are probably using the <a href="http://python.org/" target="_blank">python.org</a> version of Python and not linking<br>
with random shared libraries from C:\Program Files\, but on Linux you<br>
are probably using one of a few dozen distro x distro-release Pythons<br>
AND your extension probably dynamically links to some other things<br>
your specific distro provides AND maybe you are depending on some<br>
versioned symbols in glibc oh the horror.<br>
<br>
On OS X I would hope you are uploading only wheels built with<br>
<a href="http://python.org">python.org</a>-Python but maybe you aren't, everyone has their<br>
preferences.<br></blockquote><div><br></div><div style="">yes, they do -- but what is the target audience here? yes, a lot of folks use macports, homebrew etc, fewer, but I'm sure some, build their own Python from scratch -- but these are NOT the people that we want binary wheels for -- they don't want them anyway.</div>

<div style=""><br></div><div style="">The folks that we want to provide binary wheels for are NOT going to be building their own esoteric python, really, they are not.</div><div style=""><br></div><div style="">The MacPython community has a long standing tradition of building binaries (if at all) that are compatible with the <a href="http://python.org/">python.org</a> builds (and secondarily with the Apple-supplied Python) -- that is what I'd like to see supported by PyPi -- just like Windows....</div>

<div style=""><br></div><div style="">Sure, someone could upload some oddly-built binary wheel to PyPi -- then it would not work for most users, and they would get complaints and hopefully fix it -- just like uploading a package with any other kind of bug in it.</div>

<div style=""><br></div><div style="">It is kind of a pain to build a truly portable binary package (when it depends on third-party compiled libs), but there is a small but committed group of folks doing that already -- let's make it easier to get stuff out there.</div>

<div style=""><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"><div class="im">> Will a C extension built with Homebrew Python work with the Python Mac<br>


> OS X installer from <a href="http://python.org/" target="_blank">python.org</a>? Probably, but given how painful ABI<br>
> mismatches with shared libraries can be to debug, "probably" doesn't<br>
> cut it until someone has the chance to thoroughly review the potential<br>
> for problems.<br></div></blockquote><div><br></div><div style="">I disagree:</div><div style=""><br></div><div style="">1) I don't care if homebrew built extensions work with other pythons -- you want to build with homebrew, create a homebrew recipe. -- there should be a policy about how binary packages posted on PyPi should be built.</div></div></div></div></blockquote><div><br></div><div>Well it was more of we didn’t know, so we played it safe. I don’t personally have a <a href="http://Python.org">Python.org</a> Installer Python (mine come from Homebrew) and I know others use the System Python. My knowledge of compiled stuff is pretty slim tbh :)</div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">

<div style=""><br></div><div style="">2) We're never going to find out what the problems are until we give it a try.</div><div style=""><br></div><div style="">Fundamentally, I disagree with the premise here: "If we can't guarantee that anything anyone uploads will work for everyone, we shouldn't allow it" -- that's an unattainable goal.</div></div></div></div></blockquote><div><br></div><div>It was less about guarantee and more about “Can we be reasonably sure this is going to work for most people”.</div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">

<div style=""><br></div><div style="">If we do want a more fool-proof approach, then the name auto-generated by wheel should include something that means "<a href="http://python.org">python.org</a>-build" only if built with the <a href="http://python.org/">python.org</a> build.</div>

<div style=""><br></div><div style="">And I suppose we could try to put check code in there to make sure that extensions aren't linked to outside libs. Actually, that would be a handy utility to have, even if it didn't enforce anything. (and by the way, it's rea;lly easy to build a binary for Windows that's linked to an external dll also -- we expect package builders to be careful with that...)</div>

<div style=""><br></div><div style=""><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">I was told a wheel built on Ubuntu probably won’t work on Linux, so I shut off Linux Wheels, at the same time I asked about Windows and OSX wheels, the answers I got from people were they would generally just work on Windows, and nobody gave me a straight answer on OSX.<br>

</blockquote><div><br></div><div style="">Sorry we weren't out there answering!</div></div></div></div></blockquote><div><br></div><div>It’s not your fault! We realized this right before the pip release and sort of quickly added it after a quick check to see if anyone could tell us one way or another.</div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div style=""><br></div><div style="">Linux is a different story -- not only are there a lot of variations out there, but there also is no obvious "standard" one could point to that we'd expect folks to build binary wheels for.</div>

<div><br></div><div style="">OS-X has (to much) variety  though it is less than Linux, and more to the point, there is a standard Python out there -- the <a href="http://python.org/">python.org</a> builds. And there is a tradition of building binaries for that standard. AFAIK, it is pretty much the ONLY build of Python that package maintainers support with binaries (if they support anything). </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">> If you build a Wheel with Homebrew Python will it work on the official OSX installers? What if I have a library installed from Homebrew? </blockquote>

<div><br></div><div style="">probably not, but again, I don't care -- that's not what binary wheels on Python would be for. And more to the point -- this is a policy question -- don't upload a binary wheel to pypi that depends on homebrew (or anything else that Apple didn't provide)</div>

<div style=""><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">Essentially trying to figure out how likely it is that with the existing tags a wheel is going to work if we select based on them.-Chris<br>

</blockquote><div style=""><br></div><div style="">One thing I'm not clear on -- if you do :</div><div style=""><br></div><div style="">pip install something</div><div style=""><br></div><div style="">will pip preferentially select a binary wheel (if enabled on pypi?) -- that may be an issue as folks will surely try to pip install stuff with homebrew, macports, etc. pythons (though the wheels are more likely to work in that direction.</div></div></div></div></blockquote><div><br></div><div>Right this second it would require opting in via —use-wheel to get wheel installs from a simple ``pip install something`` but there’s discussion around making wheels enabled by default.</div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">

<div style=""><br></div><div style="">-Chris</div></div></div></div></blockquote><br></div><div><br></div><br><div>
<br>-----------------<br>Donald Stufft<br>PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

</div>
<br></body></html>