<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>
python.org-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 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 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 "python.org-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 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 style><br></div><div style>-Chris</div><div style><br></div><div style><br></div><div style><br></div></div>-- <br><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R (206) 526-6959 voice<br>
7600 Sand Point Way NE (206) 526-6329 fax<br>Seattle, WA 98115 (206) 526-6317 main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a>
</div></div>