Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-02 Thread Marcus Smith


 The “local wheel” path isn’t the greatest right now, but to do this

 # Assumes you’ve already populated the wheelhouse with pip wheel
 pip install —find-links ~/.pip/wheelhouse whatever


fwiw, I found one of the discussions we had ~year ago about wheel
caching.  https://github.com/pypa/pip/pull/684
at the time, we weren't even sure if wheel was going to get merged, so
something like pip wheel (that was outside of the main install pipeline)
seemed like the first step.
but now that things are moving along,  an automatic wheel cache sounds
awesome.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-02 Thread Marcus Smith


 One question: should pip be able to install a incompatible binary wheel
 directly without even a warning? It does now, but I don't think it should.


pip does confirm the wheel file is compatible with your platform/python
(based on the file tags), when downloading from indexes and links.
BUT, just noticed, when installing directly from a specific file, it seems
it's not checking, so I'll look into that and log an issue.
Marcus
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-02 Thread Chris Barker - NOAA Federal
On Nov 1, 2013, at 11:25 PM, Marcus Smith qwc...@gmail.com wrote:

 pip does confirm the wheel file is compatible with your platform/python 
 (based on the file tags), when downloading from indexes and links.
 BUT, just noticed, when installing directly from a specific file, it seems 
 it's not checking, so I'll look into that and log an issue

Great, thanks!
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Christian Tismer

On 19.10.13 03:22, Nick Coghlan wrote:



On 19 Oct 2013 04:59, Chris Barker chris.bar...@noaa.gov 
mailto:chris.bar...@noaa.gov wrote:


 Someone on another list indicated that pip installing binary wheels
 from PyPi will ONLY work for Windows.

 Is that the case? I think it's desperately needed for OS-X as well.

 Linux is so diverse that I can't imagine it being useful, but OS-X has
 only so many versions, and the python.org http://python.org OS-X 
binaries are very clear

 in their requirements -- it would be very useful if folks could easily
 get binary wheels for OS-X

We do plan to support it, but the pip devs uncovered a hole in the 
current wheel spec that means it generates the same filename on *nix 
systems for wheels that need to have different names for the download 
side of things to work properly - hence the current Windows-only 
restriction.


Once ensurepip has landed in Python 3.4 and pip 1.5 is released, we 
should be able to get back to updating the various metadata specs, 
with the aim of getting cross-platform wheel support in pip 1.6 :)




Ok, but then wheel should be explicit about that and not pretend to
work on OS X. I tried that a week ago on a PySide install on OS X,
which compiled very long, and crashed at the end.
If wheel does not support bdist_wheel on a platform, it should refuse
to install at all, IMHO.

cheers - chris

--
Christian Tismer :^)   mailto:tis...@stackless.com
Software Consulting  : Have a break! Take a ride on Python's
Karl-Liebknecht-Str. 121 :*Starship* http://starship.python.net/
14482 Potsdam: PGP key - http://pgp.uni-mainz.de
phone +49 173 24 18 776  fax +49 (30) 700143-0023
PGP 0x57F3BF04   9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
  whom do you want to sponsor today?   http://www.stackless.com/

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Daniel Holth
On Fri, Nov 1, 2013 at 6:39 AM, Christian Tismer tis...@stackless.com wrote:
 On 19.10.13 03:22, Nick Coghlan wrote:


 On 19 Oct 2013 04:59, Chris Barker chris.bar...@noaa.gov wrote:

 Someone on another list indicated that pip installing binary wheels
 from PyPi will ONLY work for Windows.

 Is that the case? I think it's desperately needed for OS-X as well.

 Linux is so diverse that I can't imagine it being useful, but OS-X has
 only so many versions, and the python.org OS-X binaries are very clear
 in their requirements -- it would be very useful if folks could easily
 get binary wheels for OS-X

 We do plan to support it, but the pip devs uncovered a hole in the current
 wheel spec that means it generates the same filename on *nix systems for
 wheels that need to have different names for the download side of things to
 work properly - hence the current Windows-only restriction.

 Once ensurepip has landed in Python 3.4 and pip 1.5 is released, we should
 be able to get back to updating the various metadata specs, with the aim of
 getting cross-platform wheel support in pip 1.6 :)


 Ok, but then wheel should be explicit about that and not pretend to
 work on OS X. I tried that a week ago on a PySide install on OS X,
 which compiled very long, and crashed at the end.
 If wheel does not support bdist_wheel on a platform, it should refuse
 to install at all, IMHO.

 cheers - chris

A reminder that *uploading non-Windows binary wheels to pypi* is the
only thing that is restricted. That is because it was tried with eggs
and found to be frustrating.

bdist_wheel is supposed to work on all platforms.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Ronald Oussoren
On Oct 31, 2013, at 07:24 PM, Donald Stufft don...@stufft.io wrote: On Oct 31, 2013, at 1:15 PM, Ronald Oussoren ronaldousso...@mac.com wrote: Is it "just" a matter of researching if the various build options on OSX really lead to binaries with the same ABI, or is more work needed? Basically it’s this:  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.I can't promise anything, but I'll try to provide some documentation on what does and does not work on OSX.From what I've seen the problem with Ubuntu wheels not working on other Linux's is due to changes in the glibc ABI (that is, code compiled with glibc X+1 might not work with glibc X), and that shouldn't be a problem on OSX.  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? 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.Again, someone (and if no-one beats me to it, I) will have to document and test the various scenarios.The only real problem I expect is with extensions linking to shared libraries that aren't in the normal OSX install and aren't provided in the wheel. That is, a wheel for lxml that's linked with the Homebrew version of libxml2. That will only work on systems with Homebrew that have libxml2 installed. Once we know what, if any, problems exist for the various platforms then we can come up with fixes for them. This just hasn’t been high priority for me because of PEP453 work. To be honest the same problems likely exists on Windows, it’s just less likely and the benefits of prebuilt binaries greater.I'm not sure about thebenefits ofprebuilt binaries.Apparently building universal binaries on OSX is hard for a lot of users, although I've never had problems with that. But I've written lots of cross-platform C code when cross-platform Unix code was more than just supporting osx, linux and freebsd and am therefore not a good example of a Python users just wants to build an extension that works with his Python code :-)RonaldP.S. sorry if this message is somewhat garbled, I'm sending this from iCloud webmail and that doesn't always work properly with mailing lists  - Donald Stufft PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA ___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Paul Moore
On 1 November 2013 13:41, Ronald Oussoren ronaldousso...@mac.com wrote:

 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? 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.


 Again, someone (and if no-one beats me to it, I) will have to document and
 test the various scenarios.

The key point here is the granularity of the PEP 425 tags used by wheel.

The risk is that a wheel created on another system might declare (via
its filename) that it is compatible with your system, and then not be,
causing segfaults or similar when used. On Windows, thanks to the
history of bdist_wininst, and the small number of people who build
their own *anything* on Windows, there is really only one ABI/C
Library/whatever to worry about and that is the python.org one.
(Actually, there are two - 32 and 64 bit).

If all builds on OSX are compatible at the ABI/CLib/architecture level
then there should be no problem. Equally, if incompatible builds
result in wheels with different compatibility tags, also no problem.
It's only if 2 incompatible environments use the same tags that there
could be an issue.

I don't believe that linking with external libraries should be a
problem here - if wheel X depends on library Y, then either it should
include it or it should simply document Needs library Y installed.
It's not a *compatibility* issue as such. But maybe the Unix concept
of executables linking to libraries in hard-coded paths might be an
issue here, I don't know enough about how that works to say.

Hope this clarifies things a bit.
Paul
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Chris Barker
On Fri, Nov 1, 2013 at 6:59 AM, Paul Moore p.f.mo...@gmail.com wrote:

 The key point here is the granularity of the PEP 425 tags used by wheel.

 The risk is that a wheel created on another system might declare (via
 its filename) that it is compatible with your system, and then not be,
 causing segfaults or similar when used.


indeed, which is why it _might_ be a good idea to include an extra python
build flag or something: python.org, homebrew, macports. However,
it's probably the case that those aren't really the issues that are going
to cause problems -- at least ones that aren't already handled by the OS-X
version flags --- i.e if a package is built for 10.6+, then it should have
the same system libs as a python built for 10.6+.

Practically speaking, the issues I've run into are:

* Packages built for a newer OS-X won't work on an older one -- but that
should be handled by the OS-X version handling that exists.

* universal binaries -- packages built for 32 bit aren't going to work
with a 64 bit python, and a universal python can be both 32 and 64 bit (and
PPC, but I think those days are gone...) -- but this _should_ be handled by
the platform flag: IIRC, intel means 32+64 bit Intel. Though I'm not sure
what homebrew or macports python report. But distutils generally does the
right thing with self-contained C code.

* External dependencies: This is the BIG ONE: it's the hardest to get
right, and the hardest to check for. Third party libs must:
  - Be built to match the python, including SDK and architecture (including
universal)
  - Be included somehow -- ideally statically linked, but I'm thinking that
they could be included as part of another dependent package (I think that's
how Anocanda does it). The trick with dynamic linking on OS-X is that that
standard way to install and link a lib has the path to the lib hard-coded
in -- so you can't move it without re-writing the headers. This can be done
on install, but I don't hink we want pip to have to deal with that! You
_can_ install and link libs with relative paths, which I think is what
Anaconda is doing, but I haven't figured out how yet, and it's certainly
not a no-brainer.

So I don't think there is any way to get around the fact that you need to
be careful to build a binary wheel that will work on the systems you
are targeting -- but this is no different than the situation we've had for
years with building binary installers for the Mac. But those dont work with
pip, or virtualenv, or...


 On Windows, thanks to the
 history of bdist_wininst, and the small number of people who build
 their own *anything* on Windows, there is really only one ABI/C
 Library/whatever to worry about and that is the python.org one.
 (Actually, there are two - 32 and 64 bit).


Well, technically, the situation is very similar -- it's hard to build a
Windows binary (at least if it has external dependencies), so that it will
just work.

Socially, the situation is different -- there are a (relatively) small
number of people building their own stuff. On the Mac, however, you have
homebrew and macports, and ??, so lots of people building their own stuff.
But those aren't the people we need to support with binaries!

Is anyone expecting a binary built for Windows to work with a cygwin python?
Is anyone expecting that they can build a binary on Windows with cygwin and
give it out? That's what we're talking about here with the Mac.

thanks to the history of bdist_wininst ..


The mac has a history of bdist_mpkg as well, not as widely used, and a bit
neglected lately, but it's there. And there is a history of folks providing
binary installers for the python.org mac. But it would be really nice if we
could go to wheels, and use pypi to distribute them.

It really is the same as Windows -- anyone putting a binary on PyPi has an
obligation to built is so it will work with the python.org python -- and
it's not inherently any harder to do that than on Windows -- the only
difference is that it may be easier to do it badly -- by simply running
bdist_wheel without thinking about it (i.e with homebrew, or macports and
whatever shared libs happen to be linked to).

But again, that's a social problem -- we need to have an understanding
about what is required to put a binary wheel up on pypi.

Also, where we _could_ have a way to identify python.org, vs homebrew, vs.
macports as different platfroms, that's not going to help the hard
problem, which is making sure third party libs are built and included
properly.


 If all builds on OSX are compatible at the ABI/CLib/architecture level
 then there should be no problem. Equally, if incompatible builds
 result in wheels with different compatibility tags, also no problem.
 It's only if 2 incompatible environments use the same tags that there
 could be an issue.


yeah -- but the third party libs are the bigger issue anyway...


 I don't believe that linking with external libraries should be a
 problem here - if wheel X depends on library Y, 

Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Paul Moore
On 1 November 2013 15:48, Chris Barker chris.bar...@noaa.gov wrote:
 On Fri, Nov 1, 2013 at 6:59 AM, Paul Moore p.f.mo...@gmail.com wrote:

 The key point here is the granularity of the PEP 425 tags used by wheel.

 The risk is that a wheel created on another system might declare (via
 its filename) that it is compatible with your system, and then not be,
 causing segfaults or similar when used.

 indeed, which is why it _might_ be a good idea to include an extra python
 build flag or something: python.org, homebrew, macports. However, it's
 probably the case that those aren't really the issues that are going to
 cause problems -- at least ones that aren't already handled by the OS-X
 version flags --- i.e if a package is built for 10.6+, then it should have
 the same system libs as a python built for 10.6+.

The first thing to address is what wheel currently *does*. Basically,
a (binary, let's ignore pure Python here) wheel is tagged as follows:

Python version - cpXY
Platform - distutils.util.get_platform(), which is darwin for OSX,
if I'm reading the code correctly.
ABI - essentially sysconfig.get_config_vars().get('SOABI') if that exists

The only one here which may vary based on build is ABI. So the
question is, do different Python builds on OSX have different SOABI
values?

If not, then does a simple extension with no external dependencies
work when built with one Python and used with a different one?
   If it does, then there's probably no OSX issue[1].
   If it doesn't, then there *is* an issue, and some code needs to
change for wheels to be tagged correctly. Probably by changing the
SOABI values, or by special coding in the ABI tag generation in
bdist_wheel and wherever else it needs to be determined.

If there are different SOABI values, then the above question about a
simple extension should be asked for any SOABI value used by more than
one Python build (if any).

The issue is different on Windows (whether for technical or social
reasons is debatable but irrelevant) because there is *no* ABI tag
used. The platform tag catches cygwin and 32-bit vs 64-bit
differences, and the Python version catches the C runtime
compatibility (because any version of Python is only supported with
one particular CRT - that's embedded in distutils in a way that means
that you'd need to change the code to alter it, which is why it's
arguably a technical issue rather than a social one).

The point marked [1] above is where I ignore the question of external
libraries :-)

I'm honestly not sure what is meant by external libraries here. Does
it mean which version of the C runtime is used? If so, then that
should probably affect the ABI, but I don't know enough to know if
that's right or not. If the libc version isn't part of the ABI, then I
think this is the issue that caused people to back off on wheels for
non-Windows platforms. I'd like to see a clear statement on whether
building an extension with one libc version and running it with a
different one is supported (I suspect no) and whether it is
likely/possible (on Windows, not possible for all practical
purposes, on Linux I suspect happens all the time and I have no
idea for OSX).

If by external libraries you mean something other than libc (for
example, something like BLAS libraries for scipy) then my view is that
this is not something taht wheel compatibility tags is intended to
solve. The project should document what external libraries need to be
present and any limitations on how they were built that may apply. If
the user disregards these, that's their problem. If projects want to
distribute one wheel for BLAS-compiled-with-homebrew, and one for
BLAS-compiled-with-macports, then I'd put the onus on the project to
come up with a solution - I think it's a specialised enough case that
the wheel spec shouldn't be worrying about it yet, if ever.

I hope this is of some use - maybe it'll help the people with access
to OSX to have a clearer idea of what needs checking.

Paul
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Christian Tismer

On 01.11.13 13:34, Daniel Holth wrote:

On Fri, Nov 1, 2013 at 6:39 AM, Christian Tismer tis...@stackless.com wrote:

On 19.10.13 03:22, Nick Coghlan wrote:


On 19 Oct 2013 04:59, Chris Barker chris.bar...@noaa.gov wrote:

Someone on another list indicated that pip installing binary wheels
from PyPi will ONLY work for Windows.

Is that the case? I think it's desperately needed for OS-X as well.

Linux is so diverse that I can't imagine it being useful, but OS-X has
only so many versions, and the python.org OS-X binaries are very clear
in their requirements -- it would be very useful if folks could easily
get binary wheels for OS-X

We do plan to support it, but the pip devs uncovered a hole in the current
wheel spec that means it generates the same filename on *nix systems for
wheels that need to have different names for the download side of things to
work properly - hence the current Windows-only restriction.

Once ensurepip has landed in Python 3.4 and pip 1.5 is released, we should
be able to get back to updating the various metadata specs, with the aim of
getting cross-platform wheel support in pip 1.6 :)


Ok, but then wheel should be explicit about that and not pretend to
work on OS X. I tried that a week ago on a PySide install on OS X,
which compiled very long, and crashed at the end.
If wheel does not support bdist_wheel on a platform, it should refuse
to install at all, IMHO.

cheers - chris

A reminder that *uploading non-Windows binary wheels to pypi* is the
only thing that is restricted. That is because it was tried with eggs
and found to be frustrating.

bdist_wheel is supposed to work on all platforms.


Ah, sorry, then I have hit a real bug and should report that ;-)

--
Christian Tismer :^)   mailto:tis...@stackless.com
Software Consulting  : Have a break! Take a ride on Python's
Karl-Liebknecht-Str. 121 :*Starship* http://starship.python.net/
14482 Potsdam: PGP key - http://pgp.uni-mainz.de
phone +49 173 24 18 776  fax +49 (30) 700143-0023
PGP 0x57F3BF04   9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
  whom do you want to sponsor today?   http://www.stackless.com/

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Greg Ewing

Chris Barker wrote:
anyone putting a [MacOSX] binary on PyPi has 
an obligation to built is so it will work with the python.org 
http://python.org python -- and it's not inherently any harder to do 
that than on Windows


Is there some way that a wheel could be checked to make
sure it doesn't depend on any libraries in non-standard
locations, etc?

If not, could enough information be added to the metadata
to make it possible?

--
Greg
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Greg Ewing

Paul Moore wrote:

Python version - cpXY
Platform - distutils.util.get_platform(), which is darwin for OSX,
if I'm reading the code correctly.
ABI - essentially sysconfig.get_config_vars().get('SOABI') if that exists


Does the MAXOSX_DEPLOYMENT_TARGET figure into this
anywhere? Just knowing that the platform is darwin
isn't really enough.

--
Greg
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Donald Stufft

On Nov 1, 2013, at 6:49 PM, Paul Moore p.f.mo...@gmail.com wrote:

 On 1 November 2013 22:36, Donald Stufft don...@stufft.io wrote:
 
 python -c import distutils; 
 print(distutils.util.get_platform().replace('.', '_').replace('-', '_'))
 macosx_10_8_x86_64
 
 OK, cool. That means that binary wheels will be specific to the OSX
 version and the word size. Even more specific than Windows.
 
 So that just leaves SOABI. Do homebrew, macports etc actually use
 different libc versions, or is there a systemwide libc that everything
 uses which only changes when the OSX version changes?
 
 Paul

How can I get the SOABI?

-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Paul Moore
On 1 November 2013 22:51, Donald Stufft don...@stufft.io wrote:
 How can I get the SOABI?

Sorry, didn't I include that before?

sysconfig.get_config_var('SOABI')

should do it.
Paul
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Donald Stufft

On Nov 1, 2013, at 6:57 PM, Paul Moore p.f.mo...@gmail.com wrote:

 On 1 November 2013 22:51, Donald Stufft don...@stufft.io wrote:
 How can I get the SOABI?
 
 Sorry, didn't I include that before?
 
 sysconfig.get_config_var('SOABI')
 
 should do it.
 Paul

Hmm,

python -c import sysconfig; print(sysconfig.get_config_var('SOABI’))
None

-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Donald Stufft
Looks like wheels are not being created with an ABI tag at all.

Here’s a Wheel I made to test things:

https://testpypi.python.org/pypi/PyNaCl

On Nov 1, 2013, at 6:58 PM, Donald Stufft don...@stufft.io wrote:

 
 On Nov 1, 2013, at 6:57 PM, Paul Moore p.f.mo...@gmail.com wrote:
 
 On 1 November 2013 22:51, Donald Stufft don...@stufft.io wrote:
 How can I get the SOABI?
 
 Sorry, didn't I include that before?
 
 sysconfig.get_config_var('SOABI')
 
 should do it.
 Paul
 
 Hmm,
 
 python -c import sysconfig; print(sysconfig.get_config_var('SOABI’))
 None
 
 -
 Donald Stufft
 PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA
 
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig


-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Greg Ewing

Donald Stufft wrote:

python -c import distutils; print(distutils.util.get_platform().replace('.', 
'_').replace('-', '_'))
macosx_10_8_x86_64


Hmm, this just appears to reflect the version of MacOSX
that the Python running distutils was built on, or is
running on (not sure which).

This is not quite the same thing as MACOSX_DEPLOYMENT_TARGET,
which is the minimum version of MacOSX that is needed to
run a piece of code.

Distutils seems to assume they're the same, but if you're
building a binary wheel for distribution, it makes sense
to set MACOSX_DEPLOYMENT_TARGET as low as possible.

Will there be a mechanism to get the actual MacOSX version
needed into the metadata, rather than the one you happen
to be building on?

--
Greg
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Paul Moore
On 1 November 2013 22:58, Donald Stufft don...@stufft.io wrote:
 python -c import sysconfig; print(sysconfig.get_config_var('SOABI’))
 None

That implies no explicit ABI tag - the platform and Python version
tags are deemed sufficient to ensure interoperability.

Paul
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Paul Moore
On 1 November 2013 23:10, Greg Ewing greg.ew...@canterbury.ac.nz wrote:
 Will there be a mechanism to get the actual MacOSX version
 needed into the metadata, rather than the one you happen
 to be building on?

There can be anything - the question here is really whether anything
is *needed*, or is what we have sufficient.

If it's sufficient, we can lift the restriction on uploading OSX
wheels and we're done.
If it's not, we need to keep the restriction until the wheel code is
updated to provide sufficiently flexible tags. We can take as long as
we need to define and implement those. (When I say we here, as a
Windows user I really mean you, of course :-))

Paul
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Ned Deily
In article 527434d6.9020...@canterbury.ac.nz,
 Greg Ewing greg.ew...@canterbury.ac.nz wrote:

 Donald Stufft wrote:
  python -c import distutils; 
  print(distutils.util.get_platform().replace('.', '_').replace('-', '_'))
  macosx_10_8_x86_64
 
 Hmm, this just appears to reflect the version of MacOSX
 that the Python running distutils was built on, or is
 running on (not sure which).

 This is not quite the same thing as MACOSX_DEPLOYMENT_TARGET,
 which is the minimum version of MacOSX that is needed to
 run a piece of code.
 
 Distutils seems to assume they're the same, but if you're
 building a binary wheel for distribution, it makes sense
 to set MACOSX_DEPLOYMENT_TARGET as low as possible.
 
 Will there be a mechanism to get the actual MacOSX version
 needed into the metadata, rather than the one you happen
 to be building on?

Assuming that the wheel build is using distutils.util.get_platform(), that 
number *is* the value of MACOSX_DEPLOYMENT_TARGET that was used when Python 
was built unless it is overridden during execution of Python by setting a 
MACOSX_DEPLOYMENT_TARGET env variable.

For example, with the python.org 64-bit installer used on OS X 10.8:

$ /usr/local/bin/python2.7 -c 'import 
distutils.util;print(distutils.util.get_platform())'
macosx-10.6-intel

It works on 10.6, 10.7, 10.8, and 10.9.

With the Apple supplied system Python 2.7 on OS X 10.8:
$ /usr/bin/python2.7 -c 'import 
distutils.util;print(distutils.util.get_platform())'
macosx-10.8-intel

-- 
 Ned Deily,
 n...@acm.org

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Ned Deily
In article 5b1e4ff5-1107-4e85-b0ac-f29461cee...@stufft.io,
 Donald Stufft don...@stufft.io wrote:

 Looks like wheels are not being created with an ABI tag at all.

IIRC, distutils.util.get_platform() was not modified to reflect the SOABI when 
that feature was introduced in Python 3.2 (?).  Perhaps it should have been or 
still can be for 3.4.

-- 
 Ned Deily,
 n...@acm.org

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Donald Stufft

On Nov 1, 2013, at 8:39 PM, Ned Deily n...@acm.org wrote:

 In article 5b1e4ff5-1107-4e85-b0ac-f29461cee...@stufft.io,
 Donald Stufft don...@stufft.io wrote:
 
 Looks like wheels are not being created with an ABI tag at all.
 
 IIRC, distutils.util.get_platform() was not modified to reflect the SOABI 
 when 
 that feature was introduced in Python 3.2 (?).  Perhaps it should have been 
 or 
 still can be for 3.4.

Oh that is a 3.x feature? That would explain why my 2.7 built Wheel doesn’t 
have it then :)


-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Nick Coghlan
On 2 Nov 2013 09:15, Paul Moore p.f.mo...@gmail.com wrote:

 On 1 November 2013 23:10, Greg Ewing greg.ew...@canterbury.ac.nz wrote:
  Will there be a mechanism to get the actual MacOSX version
  needed into the metadata, rather than the one you happen
  to be building on?

 There can be anything - the question here is really whether anything
 is *needed*, or is what we have sufficient.

 If it's sufficient, we can lift the restriction on uploading OSX
 wheels and we're done.
 If it's not, we need to keep the restriction until the wheel code is
 updated to provide sufficiently flexible tags. We can take as long as
 we need to define and implement those. (When I say we here, as a
 Windows user I really mean you, of course :-))

I spoke to Donald about this on IRC yesterday, and I take the following
view:

* the key relevant points about users on Windows and Mac OS X are that most
(perhaps only many on Mac OS X) tutorials and introductory courses will
direct them to the binary installers on python.org, and such users are
highly unlikely to have a C compiler installed, so their current out of
the box user experience with pip is that it doesn't work for even the
simplest of C extensions.

* by contrast, in other *nix environments (including cygwin on Windows and
homebrew etc on Mac OS X), using the system/environment Python is far more
common, and a C compiler is far more likely to be available

* accordingly, the following defaults make sense for pip 1.5:
- allow wheel files from the index server for Windows and Mac OS X
- allow local wheel files everywhere

* the following options should also be available:
- force use of wheel files from the index server (useful for private index
servers)
- prevent use of wheel files from the index server (useful to force local
builds on Windows and Mac OS X)
- prevent use of wheel files (useful to force a local rebuild, overwriting
the wheel cache)

It would be good to enable the use of index server wheel files everywhere
by default, but we need to add some kind of environment or variant
marker to the wheel naming scheme before we can do that (i.e. wheel 1.1,
which isn't planned until the 1.6 time frame).

There are also problems with how the abi and platform tags are set and
interpreted that need to be resolved before we can expand wheel sharing
through PyPI beyond the environments defined by the python.org binary
installers.

Cheers,
Nick.


 Paul
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Donald Stufft

On Nov 1, 2013, at 8:45 PM, Nick Coghlan ncogh...@gmail.com wrote:

 
 On 2 Nov 2013 09:15, Paul Moore p.f.mo...@gmail.com wrote:
 
  On 1 November 2013 23:10, Greg Ewing greg.ew...@canterbury.ac.nz wrote:
   Will there be a mechanism to get the actual MacOSX version
   needed into the metadata, rather than the one you happen
   to be building on?
 
  There can be anything - the question here is really whether anything
  is *needed*, or is what we have sufficient.
 
  If it's sufficient, we can lift the restriction on uploading OSX
  wheels and we're done.
  If it's not, we need to keep the restriction until the wheel code is
  updated to provide sufficiently flexible tags. We can take as long as
  we need to define and implement those. (When I say we here, as a
  Windows user I really mean you, of course :-))
 
 I spoke to Donald about this on IRC yesterday, and I take the following view:
 
 * the key relevant points about users on Windows and Mac OS X are that most 
 (perhaps only many on Mac OS X) tutorials and introductory courses will 
 direct them to the binary installers on python.org, and such users are highly 
 unlikely to have a C compiler installed, so their current out of the box 
 user experience with pip is that it doesn't work for even the simplest of C 
 extensions.
 
 * by contrast, in other *nix environments (including cygwin on Windows and 
 homebrew etc on Mac OS X), using the system/environment Python is far more 
 common, and a C compiler is far more likely to be available
 
 * accordingly, the following defaults make sense for pip 1.5:
 - allow wheel files from the index server for Windows and Mac OS X
 - allow local wheel files everywhere
 
 

Just to be clear about things, pip already supports any wheel from any source 
*except* for pypi.python.org.
 * the following options should also be available:
 - force use of wheel files from the index server (useful for private index 
 servers)
 
At the exclusion of sdists? Not sure I see a point?
 - prevent use of wheel files from the index server (useful to force local 
 builds on Windows and Mac OS X)
 
I don’t think this needs to be a special option, the solution for the below 
should work fine here.
 - prevent use of wheel files (useful to force a local rebuild, overwriting 
 the wheel cache)
 
I do think we’ll need a —no-use-wheel
 It would be good to enable the use of index server wheel files everywhere by 
 default, but we need to add some kind of environment or variant marker to 
 the wheel naming scheme before we can do that (i.e. wheel 1.1, which isn't 
 planned until the 1.6 time frame).
 
 There are also problems with how the abi and platform tags are set and 
 interpreted that need to be resolved before we can expand wheel sharing 
 through PyPI beyond the environments defined by the python.org binary 
 installers.
 
 Cheers,
 Nick.
 
 
  Paul
  ___
  Distutils-SIG maillist  -  Distutils-SIG@python.org
  https://mail.python.org/mailman/listinfo/distutils-sig
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig


-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Nick Coghlan
On 2 Nov 2013 11:10, Donald Stufft don...@stufft.io wrote:


 On Nov 1, 2013, at 8:45 PM, Nick Coghlan ncogh...@gmail.com wrote:


 On 2 Nov 2013 09:15, Paul Moore p.f.mo...@gmail.com wrote:
 
  On 1 November 2013 23:10, Greg Ewing greg.ew...@canterbury.ac.nz
wrote:
   Will there be a mechanism to get the actual MacOSX version
   needed into the metadata, rather than the one you happen
   to be building on?
 
  There can be anything - the question here is really whether anything
  is *needed*, or is what we have sufficient.
 
  If it's sufficient, we can lift the restriction on uploading OSX
  wheels and we're done.
  If it's not, we need to keep the restriction until the wheel code is
  updated to provide sufficiently flexible tags. We can take as long as
  we need to define and implement those. (When I say we here, as a
  Windows user I really mean you, of course :-))

 I spoke to Donald about this on IRC yesterday, and I take the following
view:

 * the key relevant points about users on Windows and Mac OS X are that
most (perhaps only many on Mac OS X) tutorials and introductory courses
will direct them to the binary installers on python.org, and such users are
highly unlikely to have a C compiler installed, so their current out of
the box user experience with pip is that it doesn't work for even the
simplest of C extensions.

 * by contrast, in other *nix environments (including cygwin on Windows
and homebrew etc on Mac OS X), using the system/environment Python is far
more common, and a C compiler is far more likely to be available

 * accordingly, the following defaults make sense for pip 1.5:
 - allow wheel files from the index server for Windows and Mac OS X
 - allow local wheel files everywhere



 Just to be clear about things, pip already supports any wheel from any
source *except* for pypi.python.org.

 * the following options should also be available:
 - force use of wheel files from the index server (useful for private
index servers)

 At the exclusion of sdists? Not sure I see a point?

I didn't realise wheel files were already permitted by default for private
index servers. With that clarification, I agree there's no need for this
option.


 - prevent use of wheel files from the index server (useful to force
local builds on Windows and Mac OS X)

 I don’t think this needs to be a special option, the solution for the
below should work fine here.

If someone adds a new dependency, they should be able to easily say build
anything that I don't already have a local wheel file for from source. By
contrast, I'd expect --no-use-wheel to rebuild everything (even stuff
with already cached wheels).

Cheers,
Nick.


 - prevent use of wheel files (useful to force a local rebuild,
overwriting the wheel cache)

 I do think we’ll need a —no-use-wheel

 It would be good to enable the use of index server wheel files
everywhere by default, but we need to add some kind of environment or
variant marker to the wheel naming scheme before we can do that (i.e.
wheel 1.1, which isn't planned until the 1.6 time frame).

 There are also problems with how the abi and platform tags are set and
interpreted that need to be resolved before we can expand wheel sharing
through PyPI beyond the environments defined by the python.org binary
installers.

 Cheers,
 Nick.

 
  Paul
  ___
  Distutils-SIG maillist  -  Distutils-SIG@python.org
  https://mail.python.org/mailman/listinfo/distutils-sig

 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig



 -
 Donald Stufft
 PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372
DCFA

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Donald Stufft

On Nov 1, 2013, at 9:56 PM, Nick Coghlan ncogh...@gmail.com wrote:

 
 On 2 Nov 2013 11:10, Donald Stufft don...@stufft.io wrote:
 
 
  On Nov 1, 2013, at 8:45 PM, Nick Coghlan ncogh...@gmail.com wrote:
 
 
  On 2 Nov 2013 09:15, Paul Moore p.f.mo...@gmail.com wrote:
  
   On 1 November 2013 23:10, Greg Ewing greg.ew...@canterbury.ac.nz wrote:
Will there be a mechanism to get the actual MacOSX version
needed into the metadata, rather than the one you happen
to be building on?
  
   There can be anything - the question here is really whether anything
   is *needed*, or is what we have sufficient.
  
   If it's sufficient, we can lift the restriction on uploading OSX
   wheels and we're done.
   If it's not, we need to keep the restriction until the wheel code is
   updated to provide sufficiently flexible tags. We can take as long as
   we need to define and implement those. (When I say we here, as a
   Windows user I really mean you, of course :-))
 
  I spoke to Donald about this on IRC yesterday, and I take the following 
  view:
 
  * the key relevant points about users on Windows and Mac OS X are that 
  most (perhaps only many on Mac OS X) tutorials and introductory courses 
  will direct them to the binary installers on python.org, and such users 
  are highly unlikely to have a C compiler installed, so their current out 
  of the box user experience with pip is that it doesn't work for even the 
  simplest of C extensions.
 
  * by contrast, in other *nix environments (including cygwin on Windows and 
  homebrew etc on Mac OS X), using the system/environment Python is far more 
  common, and a C compiler is far more likely to be available
 
  * accordingly, the following defaults make sense for pip 1.5:
  - allow wheel files from the index server for Windows and Mac OS X
  - allow local wheel files everywhere
 
 
 
  Just to be clear about things, pip already supports any wheel from any 
  source *except* for pypi.python.org.
 
  * the following options should also be available:
  - force use of wheel files from the index server (useful for private index 
  servers)
 
  At the exclusion of sdists? Not sure I see a point?
 
 I didn't realise wheel files were already permitted by default for private 
 index servers. With that clarification, I agree there's no need for this 
 option.
 
 
  - prevent use of wheel files from the index server (useful to force local 
  builds on Windows and Mac OS X)
 
  I don’t think this needs to be a special option, the solution for the below 
  should work fine here.
 
 If someone adds a new dependency, they should be able to easily say build 
 anything that I don't already have a local wheel file for from source. By 
 contrast, I'd expect --no-use-wheel to rebuild everything (even stuff with 
 already cached wheels).
 
The “local wheel” path isn’t the greatest right now, but to do this

# Assumes you’ve already populated the wheelhouse with pip wheel
pip install —find-links ~/.pip/wheelhouse whatever

Wheels take precedence over sdists.
 Cheers,
 Nick.
 
 
  - prevent use of wheel files (useful to force a local rebuild, overwriting 
  the wheel cache)
 
  I do think we’ll need a —no-use-wheel
 
  It would be good to enable the use of index server wheel files everywhere 
  by default, but we need to add some kind of environment or variant 
  marker to the wheel naming scheme before we can do that (i.e. wheel 1.1, 
  which isn't planned until the 1.6 time frame).
 
  There are also problems with how the abi and platform tags are set and 
  interpreted that need to be resolved before we can expand wheel sharing 
  through PyPI beyond the environments defined by the python.org binary 
  installers.
 
  Cheers,
  Nick.
 
  
   Paul
   ___
   Distutils-SIG maillist  -  Distutils-SIG@python.org
   https://mail.python.org/mailman/listinfo/distutils-sig
 
  ___
  Distutils-SIG maillist  -  Distutils-SIG@python.org
  https://mail.python.org/mailman/listinfo/distutils-sig
 
 
 
  -
  Donald Stufft
  PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA
 


-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Chris Barker
On Fri, Nov 1, 2013 at 5:45 PM, Nick Coghlan ncogh...@gmail.com wrote:

 * the key relevant points about users on Windows and Mac OS X are that
 most (perhaps only many on Mac OS X) tutorials and introductory courses
 will direct them to the binary installers on python.org, and such users
 are highly unlikely to have a C compiler installed, so their current out
 of the box user experience with pip is that it doesn't work for even the
 simplest of C extensions.


Thank you for being so articulate about that -- Ive been unsuccesfully
trying to say this this whole thread 

Note also that it's not just what tutorials say, it's what the _should_
say. WE really wouldn't want to say to new users:


Want to learn to program in Python? First, install a compiler, which, by
the way is a multi-GB download from Apple, that you have to register as a
developer to get.

Though Ill also add that binaries for the python.org builds also support
users that may have  compiler, but not the expertise to build third-party
libs, and build re-distributable binaries for older OS versions, etc.


 * by contrast, in other *nix environments (including cygwin on Windows and
 homebrew etc on Mac OS X), using the system/environment Python is far more
 common, and a C compiler is far more likely to be available

indeed, required, for homebrew and macports (and cygwin?)


 * accordingly, the following defaults make sense for pip 1.5:
 - allow wheel files from the index server for Windows and Mac OS X
 - allow local wheel files everywhere

 sounds good. -- and have a stated policy )or at least recommendation) that
binary wheels for OS-X be built for the python.org pythons.

* the following options should also be available:
 - force use of wheel files from the index server (useful for private index
 servers)
 - prevent use of wheel files from the index server (useful to force local
 builds on Windows and Mac OS X)
 - prevent use of wheel files (useful to force a local rebuild, overwriting
 the wheel cache)

sounds good.

One question: should pip be able to install a incompatible binary wheel
directly without even a warning? It does now, but I don't think it should.

-Chris


-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Nick Coghlan
On 2 Nov 2013 11:59, Donald Stufft don...@stufft.io wrote:


 On Nov 1, 2013, at 9:56 PM, Nick Coghlan ncogh...@gmail.com wrote:


 On 2 Nov 2013 11:10, Donald Stufft don...@stufft.io wrote:
 
 
  On Nov 1, 2013, at 8:45 PM, Nick Coghlan ncogh...@gmail.com wrote:
 
 
  On 2 Nov 2013 09:15, Paul Moore p.f.mo...@gmail.com wrote:
  
   On 1 November 2013 23:10, Greg Ewing greg.ew...@canterbury.ac.nz
wrote:
Will there be a mechanism to get the actual MacOSX version
needed into the metadata, rather than the one you happen
to be building on?
  
   There can be anything - the question here is really whether anything
   is *needed*, or is what we have sufficient.
  
   If it's sufficient, we can lift the restriction on uploading OSX
   wheels and we're done.
   If it's not, we need to keep the restriction until the wheel code is
   updated to provide sufficiently flexible tags. We can take as long
as
   we need to define and implement those. (When I say we here, as a
   Windows user I really mean you, of course :-))
 
  I spoke to Donald about this on IRC yesterday, and I take the
following view:
 
  * the key relevant points about users on Windows and Mac OS X are
that most (perhaps only many on Mac OS X) tutorials and introductory
courses will direct them to the binary installers on python.org, and such
users are highly unlikely to have a C compiler installed, so their current
out of the box user experience with pip is that it doesn't work for even
the simplest of C extensions.
 
  * by contrast, in other *nix environments (including cygwin on
Windows and homebrew etc on Mac OS X), using the system/environment Python
is far more common, and a C compiler is far more likely to be available
 
  * accordingly, the following defaults make sense for pip 1.5:
  - allow wheel files from the index server for Windows and Mac OS X
  - allow local wheel files everywhere
 
 
 
  Just to be clear about things, pip already supports any wheel from any
source *except* for pypi.python.org.
 
  * the following options should also be available:
  - force use of wheel files from the index server (useful for private
index servers)
 
  At the exclusion of sdists? Not sure I see a point?

 I didn't realise wheel files were already permitted by default for
private index servers. With that clarification, I agree there's no need for
this option.

 
  - prevent use of wheel files from the index server (useful to force
local builds on Windows and Mac OS X)
 
  I don’t think this needs to be a special option, the solution for the
below should work fine here.

 If someone adds a new dependency, they should be able to easily say
build anything that I don't already have a local wheel file for from
source. By contrast, I'd expect --no-use-wheel to rebuild everything
(even stuff with already cached wheels).

 The “local wheel” path isn’t the greatest right now, but to do this

 # Assumes you’ve already populated the wheelhouse with pip wheel
 pip install —find-links ~/.pip/wheelhouse whatever

 Wheels take precedence over sdists.

Cool - sounds like allowing wheels by default on both Windows and Mac OS X
and offering a --no-use-wheel option are the only changes needed then.

Cheers,
Nick.


 Cheers,
 Nick.

 
  - prevent use of wheel files (useful to force a local rebuild,
overwriting the wheel cache)
 
  I do think we’ll need a —no-use-wheel
 
  It would be good to enable the use of index server wheel files
everywhere by default, but we need to add some kind of environment or
variant marker to the wheel naming scheme before we can do that (i.e.
wheel 1.1, which isn't planned until the 1.6 time frame).
 
  There are also problems with how the abi and platform tags are set
and interpreted that need to be resolved before we can expand wheel sharing
through PyPI beyond the environments defined by the python.org binary
installers.
 
  Cheers,
  Nick.
 
  
   Paul
   ___
   Distutils-SIG maillist  -  Distutils-SIG@python.org
   https://mail.python.org/mailman/listinfo/distutils-sig
 
  ___
  Distutils-SIG maillist  -  Distutils-SIG@python.org
  https://mail.python.org/mailman/listinfo/distutils-sig
 
 
 
  -
  Donald Stufft
  PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9
3372 DCFA
 



 -
 Donald Stufft
 PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372
DCFA

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Marcus Smith


 Wheels take precedence over sdists.


also, for those that don't know, pip also prioritizes wheels over other
wheels (using the same PEP425 module that the wheel project uses, which has
a sort order).
In short, plat-specific over python-specific, over general wheels.
not a very likely scenario, but the logic is there.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-11-01 Thread Marcus Smith
 If someone adds a new dependency, they should be able to easily say build
 anything that I don't already have a local wheel file for from source.


pip wheel -r requirements.txt will blindly rebuild wheels for all your
dependencies, regardless of it being in your wheel dir already.
it's been on the list for about 9 months now to make this better  :  )
https://github.com/pypa/pip/issues/855
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Ronald Oussoren

On 21 Oct, 2013, at 20:52, Donald Stufft don...@stufft.io wrote:

 
 On Oct 21, 2013, at 1:02 PM, Chris Barker chris.bar...@noaa.gov wrote:
 
 On Fri, Oct 18, 2013 at 6:22 PM, Nick Coghlan ncogh...@gmail.com wrote:
 -- it would be very useful if folks could easily
 get binary wheels for OS-X
 
 We do plan to support it, but the pip devs uncovered a hole in the current
 wheel spec that means it generates the same filename on *nix systems for
 wheels that need to have different names for the download side of things to
 work properly
 
 THanks -- but really? don't OS-X wheels get:
 
 macosx_10_6_intel
 
 or some such tacked on? Where does that go wrong?
 
 Homebrew, Mac Ports, Fink. That would work OK if nobody ever installed things
 that the system didn't provide.

I don't understand this, what would break? Binary wheels that reference shared 
libraries that aren't included in the wheel (or a default system install) won't 
work, but that's also true on Windows.

What makes OSX more fun[1] than Linux is including shared libraries in the 
binary archive, unless you are careful with linking you'll end up with binaries 
that can only be installed in 1 filesystem location (that is, don't work in 
virtualenvs).

Ronald

[1] for a fairly twisted definition of fun ;-)

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Nick Coghlan
On 31 October 2013 23:38, Ronald Oussoren ronaldousso...@mac.com wrote:

 On 21 Oct, 2013, at 20:52, Donald Stufft don...@stufft.io wrote:


 On Oct 21, 2013, at 1:02 PM, Chris Barker chris.bar...@noaa.gov wrote:

 On Fri, Oct 18, 2013 at 6:22 PM, Nick Coghlan ncogh...@gmail.com wrote:
 -- it would be very useful if folks could easily
 get binary wheels for OS-X

 We do plan to support it, but the pip devs uncovered a hole in the current
 wheel spec that means it generates the same filename on *nix systems for
 wheels that need to have different names for the download side of things to
 work properly

 THanks -- but really? don't OS-X wheels get:

 macosx_10_6_intel

 or some such tacked on? Where does that go wrong?

 Homebrew, Mac Ports, Fink. That would work OK if nobody ever installed things
 that the system didn't provide.

 I don't understand this, what would break? Binary wheels that reference 
 shared libraries that aren't included in the wheel (or a default system 
 install) won't work, but that's also true on Windows.

The main difference I see is that on Windows, the ABI for the
*CPython* shared library is significantly less likely to vary across
machines.

By contrast, it's relatively easy to change the ABI on *nix systems,
as it depends on what you pass as configure options.

Will a C extension built with Homebrew Python work with the Python Mac
OS X installer from python.org? Probably, but given how painful ABI
mismatches with shared libraries can be to debug, probably doesn't
cut it until someone has the chance to thoroughly review the potential
for problems.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Ronald Oussoren

On 19 Oct, 2013, at 3:22, Nick Coghlan ncogh...@gmail.com wrote:

 
 On 19 Oct 2013 04:59, Chris Barker chris.bar...@noaa.gov wrote:
 
  Someone on another list indicated that pip installing binary wheels
  from PyPi will ONLY work for Windows.
 
  Is that the case? I think it's desperately needed for OS-X as well.
 
  Linux is so diverse that I can't imagine it being useful, but OS-X has
  only so many versions, and the python.org OS-X binaries are very clear
  in their requirements -- it would be very useful if folks could easily
  get binary wheels for OS-X
 
 We do plan to support it, but the pip devs uncovered a hole in the current 
 wheel spec that means it generates the same filename on *nix systems for 
 wheels that need to have different names for the download side of things to 
 work properly - hence the current Windows-only restriction.

Is that hole documented somewhere? 

Ronald
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Ronald Oussoren

On 31 Oct, 2013, at 15:26, Nick Coghlan ncogh...@gmail.com wrote:

 On 31 October 2013 23:38, Ronald Oussoren ronaldousso...@mac.com wrote:
 
 On 21 Oct, 2013, at 20:52, Donald Stufft don...@stufft.io wrote:
 
 
 On Oct 21, 2013, at 1:02 PM, Chris Barker chris.bar...@noaa.gov wrote:
 
 On Fri, Oct 18, 2013 at 6:22 PM, Nick Coghlan ncogh...@gmail.com wrote:
 -- it would be very useful if folks could easily
 get binary wheels for OS-X
 
 We do plan to support it, but the pip devs uncovered a hole in the current
 wheel spec that means it generates the same filename on *nix systems for
 wheels that need to have different names for the download side of things 
 to
 work properly
 
 THanks -- but really? don't OS-X wheels get:
 
 macosx_10_6_intel
 
 or some such tacked on? Where does that go wrong?
 
 Homebrew, Mac Ports, Fink. That would work OK if nobody ever installed 
 things
 that the system didn't provide.
 
 I don't understand this, what would break? Binary wheels that reference 
 shared libraries that aren't included in the wheel (or a default system 
 install) won't work, but that's also true on Windows.
 
 The main difference I see is that on Windows, the ABI for the
 *CPython* shared library is significantly less likely to vary across
 machines.
 
 By contrast, it's relatively easy to change the ABI on *nix systems,
 as it depends on what you pass as configure options.
 
 Will a C extension built with Homebrew Python work with the Python Mac
 OS X installer from python.org?

As long as they use the same ABI Tag from PEP 425 extensions build with
one should work with the other. 

 Probably, but given how painful ABI
 mismatches with shared libraries can be to debug, probably doesn't
 cut it until someone has the chance to thoroughly review the potential
 for problems.

I'd have to make time for a thorough review but be sure, but AFAIK this is 
only a little more complicated on OSX than on (say) Linux and the additonal 
complication is already captured by the platform tag mentioned by Chris.  

That is, the CPython ABI is affected by:

* The usual configure flags (--with-pydebug, --enable-unicode, ...)
   
  These issues also exists on Windows, and the ABI Tag from PEP 425 means
  that wheels for different sets of configure flags can be recognized from
  their filename.

* The OSX deployment target (the minimal OSX release you want to support)

  This is already recorded by the distutils platform tag 

* The processor architectures supported

  This is also recorded in the distutils platform tag.

* Possibly the compiler

  This is pretty unlikely, as I (and others) already load extensions build 
  with clang in CPython binaries built with GCC (and v.v.), but the low-level 
  compiler support library might affect the ABI when using a compiler other
  than GCC or clang. And I'd expect that two-level namespaces on OSX make that
  question moot except for code that's explicitly built to disable that feature.

  And this does definitely affect CPython on Windows unless you use the limited 
ABI.
  The only reason this doesn't cause problems with binary installers on PyPI
  right now is that most users use the binary installers from www.python.org 
and hence
  are all using the same compiler version.

The deployment target can affect the unix level API a little, IIRC around 10.4 
or 10.5 the APIs on the POSIX level were adjusted a little to more fully comply 
with the UNIX specification and because of this the affected named resolve to 
different symbols based on the deployment target (more or less simular to 
symbol 
versioning in glibc). AFAIK that shouldn't affect the CPython ABI, but that 
would 
need to be carefully checked to be sure and I don't have time to do so right 
now.

To provide more detail on the disutils platform tag, on my machine:

 import distutils.util
 distutils.util.get_platform()
'macosx-10.8-intel'

This means the deployment target is OSX 10.8, with suppport for the 'intel' set 
of archictures (i386 and x86_64). This records the two variables that are most 
likely
to cause problems.

I'd expected more problems with binary eggs that are dynamicly linked to 
libraries
that are provided in the wheel because OSX's linker add an absolute path to the 
library
to be loaded unless you're careful.

Ronald

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Daniel Holth
On Thu, Oct 31, 2013 at 10:26 AM, Nick Coghlan ncogh...@gmail.com wrote:
 On 31 October 2013 23:38, Ronald Oussoren ronaldousso...@mac.com wrote:

 On 21 Oct, 2013, at 20:52, Donald Stufft don...@stufft.io wrote:


 On Oct 21, 2013, at 1:02 PM, Chris Barker chris.bar...@noaa.gov wrote:

 On Fri, Oct 18, 2013 at 6:22 PM, Nick Coghlan ncogh...@gmail.com wrote:
 -- it would be very useful if folks could easily
 get binary wheels for OS-X

 We do plan to support it, but the pip devs uncovered a hole in the current
 wheel spec that means it generates the same filename on *nix systems for
 wheels that need to have different names for the download side of things 
 to
 work properly

 THanks -- but really? don't OS-X wheels get:

 macosx_10_6_intel

 or some such tacked on? Where does that go wrong?

 Homebrew, Mac Ports, Fink. That would work OK if nobody ever installed 
 things
 that the system didn't provide.

 I don't understand this, what would break? Binary wheels that reference 
 shared libraries that aren't included in the wheel (or a default system 
 install) won't work, but that's also true on Windows.

 The main difference I see is that on Windows, the ABI for the
 *CPython* shared library is significantly less likely to vary across
 machines.

 By contrast, it's relatively easy to change the ABI on *nix systems,
 as it depends on what you pass as configure options.

I'm sure you could build your own broken Windows Python, but who
bothers? IMO it pretty much boils down to the fact that on Windows you
are probably using the python.org version of Python and not linking
with random shared libraries from C:\Program Files\, but on Linux you
are probably using one of a few dozen distro x distro-release Pythons
AND your extension probably dynamically links to some other things
your specific distro provides AND maybe you are depending on some
versioned symbols in glibc oh the horror.

On OS X I would hope you are uploading only wheels built with
python.org-Python but maybe you aren't, everyone has their
preferences.

 Will a C extension built with Homebrew Python work with the Python Mac
 OS X installer from python.org? Probably, but given how painful ABI
 mismatches with shared libraries can be to debug, probably doesn't
 cut it until someone has the chance to thoroughly review the potential
 for problems.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Ronald Oussoren

On 31 Oct, 2013, at 17:49, Daniel Holth dho...@gmail.com wrote:

 On Thu, Oct 31, 2013 at 10:26 AM, Nick Coghlan ncogh...@gmail.com wrote:
 On 31 October 2013 23:38, Ronald Oussoren ronaldousso...@mac.com wrote:
 
 On 21 Oct, 2013, at 20:52, Donald Stufft don...@stufft.io wrote:
 
 
 On Oct 21, 2013, at 1:02 PM, Chris Barker chris.bar...@noaa.gov wrote:
 
 On Fri, Oct 18, 2013 at 6:22 PM, Nick Coghlan ncogh...@gmail.com wrote:
 -- it would be very useful if folks could easily
 get binary wheels for OS-X
 
 We do plan to support it, but the pip devs uncovered a hole in the 
 current
 wheel spec that means it generates the same filename on *nix systems for
 wheels that need to have different names for the download side of things 
 to
 work properly
 
 THanks -- but really? don't OS-X wheels get:
 
 macosx_10_6_intel
 
 or some such tacked on? Where does that go wrong?
 
 Homebrew, Mac Ports, Fink. That would work OK if nobody ever installed 
 things
 that the system didn't provide.
 
 I don't understand this, what would break? Binary wheels that reference 
 shared libraries that aren't included in the wheel (or a default system 
 install) won't work, but that's also true on Windows.
 
 The main difference I see is that on Windows, the ABI for the
 *CPython* shared library is significantly less likely to vary across
 machines.
 
 By contrast, it's relatively easy to change the ABI on *nix systems,
 as it depends on what you pass as configure options.
 
 On OS X I would hope you are uploading only wheels built with
 python.org-Python but maybe you aren't, everyone has their
 preferences.

And that shouldn't be a problem, the various builds of Python on OSX should be 
compatible if the have the same platform tag in the wheel filename. Well, 
barring idiocy like installing a completely different libc, that might cause 
problems because (at least for 2.7) some libc types leak into the CPython ABI.

But anyway, I'd love to use binary wheels in the future to distribute prebuilt 
binaries for some of my projects and that's why I reacted on a message that 
mentioned that binary installs aren't supported yet. If I don't understand what 
the issue is I can't try to help finding I solution :-)

Is it just a matter of researching if the various build options on OSX really 
lead to binaries with the same ABI, or is more work needed?   

Ronald

 
 Will a C extension built with Homebrew Python work with the Python Mac
 OS X installer from python.org? Probably, but given how painful ABI
 mismatches with shared libraries can be to debug, probably doesn't
 cut it until someone has the chance to thoroughly review the potential
 for problems.

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Donald Stufft

On Oct 31, 2013, at 1:15 PM, Ronald Oussoren ronaldousso...@mac.com wrote:

 Is it just a matter of researching if the various build options on OSX 
 really lead to binaries with the same ABI, or is more work needed?   

Basically it’s this:

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.

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? 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.

Once we know what, if any, problems exist for the various platforms then we can 
come up with fixes for them. This just hasn’t been high priority for me because 
of PEP453 work. 

To be honest the same problems likely exists on Windows, it’s just less likely 
and the benefits of prebuilt binaries greater.

-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 10/31/2013 02:24 PM, Donald Stufft wrote:
 To be honest the same problems likely exists on Windows, it?s just
 less likely and the benefits of prebuilt binaries greater.

For all platforms *except* Windows, wheels are essentially caches --
there is no real reason to distribute them via PyPI at all, because OSx
and Linux develpoers will have tools to build them from sdists.

Pip *does* need to allow installing them on those platforms, but probably
only via explicit paths / URLS (rather than finding them on PyPI).


Tres.
- -- 
===
Tres Seaver  +1 540-429-0999  tsea...@palladion.com
Palladion Software   Excellence by Designhttp://palladion.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlJywmwACgkQ+gerLs4ltQ5P/ACfXcMJj4dmnlNJEccZ8gxi8FLR
GrQAoLxxgeVnKRvuoscR6GuabwGxfsnF
=gZW1
-END PGP SIGNATURE-

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Donald Stufft

On Oct 31, 2013, at 4:49 PM, Tres Seaver tsea...@palladion.com wrote:

 Pip *does* need to allow installing them on those platforms, but probably
 only via explicit paths / URLS (rather than finding them on PyPI).

You can install them just fine on any platform, the only restrictions are PyPI 
won’t
let you upload them, and pip won’t try to install them from pypi.python.org.

-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Nick Coghlan
On 1 Nov 2013 06:50, Tres Seaver tsea...@palladion.com wrote:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 10/31/2013 02:24 PM, Donald Stufft wrote:
  To be honest the same problems likely exists on Windows, it?s just
  less likely and the benefits of prebuilt binaries greater.

 For all platforms *except* Windows, wheels are essentially caches --
 there is no real reason to distribute them via PyPI at all, because OSx
 and Linux develpoers will have tools to build them from sdists.

They're caches that can speed things up a *lot*, though, and for new users
can build C extensions is a higher bar than can run Python and pip.

Given PEP 453, it's probably worth allowing wheels on Mac OS X in pip 1.5,
then we can tackle the thornier general *nix problem in the pip 1.6 time
frame (which should also improve external dependency handling on Windows
and Mac OS X as well).

Cheers,
Nick.


 Pip *does* need to allow installing them on those platforms, but probably
 only via explicit paths / URLS (rather than finding them on PyPI).


 Tres.
 - --
 ===
 Tres Seaver  +1 540-429-0999  tsea...@palladion.com
 Palladion Software   Excellence by Designhttp://palladion.com
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.11 (GNU/Linux)
 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

 iEYEARECAAYFAlJywmwACgkQ+gerLs4ltQ5P/ACfXcMJj4dmnlNJEccZ8gxi8FLR
 GrQAoLxxgeVnKRvuoscR6GuabwGxfsnF
 =gZW1
 -END PGP SIGNATURE-

 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Eric V. Smith
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 10/31/2013 5:34 PM, Nick Coghlan wrote:
 
 On 1 Nov 2013 06:50, Tres Seaver tsea...@palladion.com 
 mailto:tsea...@palladion.com wrote:
 
 On 10/31/2013 02:24 PM, Donald Stufft wrote:
 To be honest the same problems likely exists on Windows, it?s
 just less likely and the benefits of prebuilt binaries greater.
 
 For all platforms *except* Windows, wheels are essentially caches
 -- there is no real reason to distribute them via PyPI at all,
 because OSx and Linux develpoers will have tools to build them from
 sdists.
 
 They're caches that can speed things up a *lot*, though, and for
 new users can build C extensions is a higher bar than can run
 Python and pip.

I don't think it's true that they're caches on all Linux boxes. I have
many production machines that do not have compilers on them, and do
not have the development headers, etc. installed. They're no better
off than a Windows machine!

Sure, I could install all of this, but:
- - I'd rather not increase the attack surface by installing lots
  of software
- - Some of these are small VM instances, and I don't have room to
  install a full build environment

Where I can, right now I typically install the tools I need to
install, do the installation from source, and then remove the tools.
It's a pain. I'd much rather have binary Linux wheels. I'm more than
happy to build them myself on a dedicated build machine.

Eric.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.13 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJSctEsAAoJENxauZFcKtNxSYYIAJW3BArMWX+Z669AYe/lpoj9
WMggmdfr6u6BXrOVdujHJpXG43U9UhcqJTYLOitNHyO9XKVq/ODDfbV7SN9LTlHI
atkEf87xxjuaBI5nBiS0q/ozKMmU4AR82aHYQ2wcxlLry/CSt9zgBBM/vt4I0so2
UXeUa5CgkXGGsG5nYvk9zOAQmMknUSESZrE/WNsgjImk9oBBySs9Tvz+hUF407Y2
sRFuWVZCoDjFwWg8/e98YI6sxuqx7fFhdzn5uoXq9wQ27xg9FjKQlbAWPYcBVK1M
ZAQj0SgSMY4paKQ9QsOdQchieJjRZ21C7ue8WGaca/IeyY280RTA0ztuRVMFz58=
=nmb3
-END PGP SIGNATURE-
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Donald Stufft

On Oct 31, 2013, at 5:52 PM, Eric V. Smith e...@trueblade.com wrote:

  I'm more than
 happy to build them myself on a dedicated build machine.

This works! You just can’t upload/install from PyPI.

The restriction is *only* centered around PyPI.

-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Eric V. Smith
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 10/31/2013 6:05 PM, Donald Stufft wrote:
 
 On Oct 31, 2013, at 5:52 PM, Eric V. Smith e...@trueblade.com
 wrote:
 
 I'm more than happy to build them myself on a dedicated build
 machine.
 
 This works! You just can’t upload/install from PyPI.
 
 The restriction is *only* centered around PyPI.

Ah, I misunderstood. Cool, and thanks for all of the work!

Eric.


-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.13 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJSctWHAAoJENxauZFcKtNxzXEH/0XhiAoMeS8WODLrKSREkDFi
trvaIFU/AaC0fIidkjqSmSk/axaD8mp8yPCjo/PVeq+ZM7Mi1pmZmGmU7k6KkpeS
xdEYCpMBg72yYFzo/fyvIQGgVm3Y/mMaIVc3fBbzfEk08vMbNUVFwgg0Jtz8OOfh
F2oqTLxqLYhaLQ36hpWuQpJYHDNEEa0fDMiomzKhvzoFEu4e5XhgMpi2DrkYQWbM
q7mmLOhJ76SVzODx+fx+jvAu8xQ++MGNxcQ90O4m1pP+RPHnw5DAXVE6jJ1Ko8jB
S5zKKvInFeLB5eQwxgQ1S3JMLLQOD02y2pI+w3T7fbhUBtiKVctL02dXxOUw6/Q=
=1dem
-END PGP SIGNATURE-
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 10/31/2013 05:52 PM, Eric V. Smith wrote:
 I'm more than happy to build them myself on a dedicated build
 machine.

Right -- that makes them back into caches. ;)  You can safely deploy them
because you know the architecture / libc / etc. against which you built
them.  They are highly unlikely to be useful to anyone *else*, however,
except by accident.


Tres.
- -- 
===
Tres Seaver  +1 540-429-0999  tsea...@palladion.com
Palladion Software   Excellence by Designhttp://palladion.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlJy1vwACgkQ+gerLs4ltQ7HqQCgs3toEwtRSn5q+USRXdOWDB+C
dusAn0fSfRyUmRSvqGQ3IUh1Kl6Jh36X
=OCEp
-END PGP SIGNATURE-

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 10/31/2013 04:55 PM, Donald Stufft wrote:
 
 On Oct 31, 2013, at 4:49 PM, Tres Seaver tsea...@palladion.com
 wrote:
 
 Pip *does* need to allow installing them on those platforms, but
 probably only via explicit paths / URLS (rather than finding them on
 PyPI).
 
 You can install them just fine on any platform, the only restrictions
 are PyPI won?t let you upload them, and pip won?t try to install them
 from pypi.python.org.

Excellent -- sorry I misunderstood.  AFAICT, you could leave that
restriction in place for ever for Linux.


Tres.
- -- 
===
Tres Seaver  +1 540-429-0999  tsea...@palladion.com
Palladion Software   Excellence by Designhttp://palladion.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlJy10kACgkQ+gerLs4ltQ5C0QCePWr4hX6zTff9hyCO9+w5s0Ac
R8sAn11NPAr3d+SCpricLcdLOhtk/nmp
=V/rv
-END PGP SIGNATURE-

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Oscar Benjamin
On Oct 31, 2013 8:50 PM, Tres Seaver tsea...@palladion.com wrote:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 10/31/2013 02:24 PM, Donald Stufft wrote:
  To be honest the same problems likely exists on Windows, it?s just
  less likely and the benefits of prebuilt binaries greater.

 For all platforms *except* Windows, wheels are essentially caches --
 there is no real reason to distribute them via PyPI at all, because OSx
 and Linux develpoers will have tools to build them from sdists.

What if an OSX user wants to install numpy/scipy? How easy is it to do this
from source (I really don't know)?

Building the necessary BLAS/LAPACK libraries isn't easy on any platform.
It's just easier on a linux distro when the package manager can do it for
you.

Oscar
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Sebastien Douche
On Sat, Oct 19, 2013 at 3:22 AM, Nick Coghlan ncogh...@gmail.com wrote:
 Once ensurepip has landed in Python 3.4 and pip 1.5 is released, we should
 be able to get back to updating the various metadata specs, with the aim of
 getting cross-platform wheel support in pip 1.6 :)

If I understand right, we must waiting Python 3.5 (~2016) to have
out-of-the-box wheel packages on Linux. Really?

-- 
Sebastien Douche sdou...@gmail.com
Twitter: @sdouche / G+: +sdouche
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Donald Stufft

On Oct 31, 2013, at 7:14 PM, Sebastien Douche sdou...@gmail.com wrote:

 On Sat, Oct 19, 2013 at 3:22 AM, Nick Coghlan ncogh...@gmail.com wrote:
 Once ensurepip has landed in Python 3.4 and pip 1.5 is released, we should
 be able to get back to updating the various metadata specs, with the aim of
 getting cross-platform wheel support in pip 1.6 :)
 
 If I understand right, we must waiting Python 3.5 (~2016) to have
 out-of-the-box wheel packages on Linux. Really?

No, Python 3.4.x will ship whatever the latest version of pip is, so if 1.6 is 
out
when 3.4.1 ships it’ll ship with pip 1.6. You can also always pip install 
—upgrade pip
before then.

There’s only so many hours in a day and so many people willing to get involved
some things have to be delayed.

 
 -- 
 Sebastien Douche sdou...@gmail.com
 Twitter: @sdouche / G+: +sdouche
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig


-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Sebastien Douche
On Fri, Nov 1, 2013 at 12:17 AM, Donald Stufft don...@stufft.io wrote:
 No, Python 3.4.x will ship whatever the latest version of pip is, so if 1.6 
 is out
 when 3.4.1 ships it’ll ship with pip 1.6.

Good to know. Thanks Donald.


-- 
Sebastien Douche sdou...@gmail.com
Twitter: @sdouche / G+: +sdouche
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Chris Barker
On Thu, Oct 31, 2013 at 2:34 PM, Nick Coghlan ncogh...@gmail.com wrote:

  For all platforms *except* Windows, wheels are essentially caches --
  there is no real reason to distribute them via PyPI at all, because OSx
  and Linux develpoers will have tools to build them from sdists.

That's not at all true -- it IS true of homebrew, etc users, but not the
least bit true of the genreral Mac user:

* Installing XCode is free, but not default, and less than trivial, and
even less than trivial to get right to build python extensions.

* Many packages require third party compiled libs -- even harder to do on
the Mac -- some are a downright pain in the ^%*.

What if an OSX user wants to install numpy/scipy? How easy is it to do this
 from source (I really don't know)?


A serious pain in the %^$ -- numpy is pretty easy, but scipy is a
nightmare, requiring Fortran, etc. The community has addressed with with
scientific python distributions: Anaconda, Canopy, Python(x,y), etc. But
is sure would be nice to have binary wheels on PyPi

And the cache thing is really nice, actually.

 Given PEP 453, it's probably worth allowing wheels on Mac OS X in pip 1.5,
 then we can tackle the thornier general *nix problem in the pip 1.6 time
 frame (which should also improve external dependency handling on Windows
 and Mac OS X as well).

Sounds great!



-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Chris Barker
On Thu, Oct 31, 2013 at 9:49 AM, Daniel Holth dho...@gmail.com wrote:

 I'm sure you could build your own broken Windows Python, but who
  bothers?


As long as we are clear that we are talking about a social difference here,
not a technical one...

IMO it pretty much boils down to the fact that on Windows you
 are probably using the python.org version of Python and not linking
 with random shared libraries from C:\Program Files\, but on Linux you
 are probably using one of a few dozen distro x distro-release Pythons
 AND your extension probably dynamically links to some other things
 your specific distro provides AND maybe you are depending on some
 versioned symbols in glibc oh the horror.

 On OS X I would hope you are uploading only wheels built with
 python.org-Python but maybe you aren't, everyone has their
 preferences.


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.

The folks that we want to provide binary wheels for are NOT going to be
building their own esoteric python, really, they are not.

The MacPython community has a long standing tradition of building binaries
(if at all) that are compatible with the python.org builds (and secondarily
with the Apple-supplied Python) -- that is what I'd like to see supported
by PyPi -- just like Windows

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.

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.

 Will a C extension built with Homebrew Python work with the Python Mac
  OS X installer from python.org? Probably, but given how painful ABI
  mismatches with shared libraries can be to debug, probably doesn't
  cut it until someone has the chance to thoroughly review the potential
  for problems.


I disagree:

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.

2) We're never going to find out what the problems are until we give it a
try.

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.

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 python.org build.

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...)


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.


Sorry we weren't out there answering!

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.

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 python.org 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).

 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?


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)

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


One thing I'm not clear on -- if you do :

pip install something

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.

-Chris



-- 

Christopher Barker, Ph.D.

Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-31 Thread Donald Stufft

On Oct 31, 2013, at 7:25 PM, Chris Barker chris.bar...@noaa.gov wrote:

 On Thu, Oct 31, 2013 at 9:49 AM, Daniel Holth dho...@gmail.com wrote:
 I'm sure you could build your own broken Windows Python, but who
 bothers?
 
 As long as we are clear that we are talking about a social difference here, 
 not a technical one...
 
 IMO it pretty much boils down to the fact that on Windows you
 are probably using the python.org version of Python and not linking
 with random shared libraries from C:\Program Files\, but on Linux you
 are probably using one of a few dozen distro x distro-release Pythons
 AND your extension probably dynamically links to some other things
 your specific distro provides AND maybe you are depending on some
 versioned symbols in glibc oh the horror.
 
 On OS X I would hope you are uploading only wheels built with
 python.org-Python but maybe you aren't, everyone has their
 preferences.
 
 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.
 
 The folks that we want to provide binary wheels for are NOT going to be 
 building their own esoteric python, really, they are not.
 
 The MacPython community has a long standing tradition of building binaries 
 (if at all) that are compatible with the python.org builds (and secondarily 
 with the Apple-supplied Python) -- that is what I'd like to see supported by 
 PyPi -- just like Windows
 
 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.
 
 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.
 
  Will a C extension built with Homebrew Python work with the Python Mac
  OS X installer from python.org? Probably, but given how painful ABI
  mismatches with shared libraries can be to debug, probably doesn't
  cut it until someone has the chance to thoroughly review the potential
  for problems.
 
 I disagree:
 
 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.

Well it was more of we didn’t know, so we played it safe. I don’t personally 
have a Python.org Installer Python (mine come from Homebrew) and I know others 
use the System Python. My knowledge of compiled stuff is pretty slim tbh :)

 
 2) We're never going to find out what the problems are until we give it a try.
 
 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.

It was less about guarantee and more about “Can we be reasonably sure this is 
going to work for most people”.

 
 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 python.org build.
 
 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...)
 
 
 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.
 
 Sorry we weren't out there answering!

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.

 
 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.
 
 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 python.org 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). 
 
  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?
 
 probably not, but again, I don't care -- that's not 

Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-22 Thread Chris Barker
On Mon, Oct 21, 2013 at 11:52 AM, Donald Stufft don...@stufft.io wrote:

 Thanks -- but really? don't OS-X wheels get:

 macosx_10_6_intel

 or some such tacked on? Where does that go wrong?

 Homebrew, Mac Ports, Fink. That would work OK if nobody ever installed things
 that the system didn't provide.

OK -- yes, that will NEVER work. It's worse than the Linux situation.

But then, it's the same everywhere -- if someone builds a binary wheel
for Windows that depends on some non-standard dll, or is built against
a weirdly custom-built Python, it won't work either.

It's been more or less a consensus in the python-mac community that we
seek to provide binaries for the Python.org pythons, and that they
shouldn't depend on non-standard external libs -- just like on
Windows. Major hard-to-build packages have been doing this for years:

wxPython
numpy, scipy, matplotlib

But these installers often don't work with virtualenv, and can't be
discovered or installed  pip or easy_install.

So I think it would be VERY useful if we established this standard for
PyPi and binary wheels.

macports, fink, and homebrew have been doing their own thing for ages,
and can continue to do so -- they HAVE package management built in,
just like the linux distros. If they want to do wheels, they will need
to make sure that the neccesary info is in the platform-tag. On my
python.org build:

'macosx-10.6-i386'

so they should patch their python to return something like:

'macosx-macports-10.6-i386'

or just:

'macports-10.6-i386'

and probably a macports version, rather than 10.6.

However, the _point_ of macports, homebrew, etc, is that your stuff is
all custom compiled for your system the way you have configured it --
so binary wheels really don't make sense.

-Chris

-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-22 Thread Nick Coghlan
On 23 Oct 2013 05:42, Chris Barker chris.bar...@noaa.gov wrote:

 On Mon, Oct 21, 2013 at 11:52 AM, Donald Stufft don...@stufft.io wrote:

  Thanks -- but really? don't OS-X wheels get:
 
  macosx_10_6_intel
 
  or some such tacked on? Where does that go wrong?
 
  Homebrew, Mac Ports, Fink. That would work OK if nobody ever installed
things
  that the system didn't provide.

 OK -- yes, that will NEVER work. It's worse than the Linux situation.

 But then, it's the same everywhere -- if someone builds a binary wheel
 for Windows that depends on some non-standard dll, or is built against
 a weirdly custom-built Python, it won't work either.

 It's been more or less a consensus in the python-mac community that we
 seek to provide binaries for the Python.org pythons, and that they
 shouldn't depend on non-standard external libs -- just like on
 Windows. Major hard-to-build packages have been doing this for years:

 wxPython
 numpy, scipy, matplotlib

 But these installers often don't work with virtualenv, and can't be
 discovered or installed  pip or easy_install.

 So I think it would be VERY useful if we established this standard for
 PyPi and binary wheels.

 macports, fink, and homebrew have been doing their own thing for ages,
 and can continue to do so -- they HAVE package management built in,
 just like the linux distros. If they want to do wheels, they will need
 to make sure that the neccesary info is in the platform-tag. On my
 python.org build:

 'macosx-10.6-i386'

 so they should patch their python to return something like:

 'macosx-macports-10.6-i386'

 or just:

 'macports-10.6-i386'

 and probably a macports version, rather than 10.6.

 However, the _point_ of macports, homebrew, etc, is that your stuff is
 all custom compiled for your system the way you have configured it --
 so binary wheels really don't make sense.

PEP 453 has had most of my attention lately, but my tentative thought has
been to introduce a relatively freeform variant field to the wheel spec.

Windows and Mac OS X would then default to an empty variant, while other
*nix systems would require a nominated variant

That would then cover things like SSE builds on Windows, alternative
sources on Mac OS X, etc.

However, worrying about that is a fair way down the todo list until
ensurepip and the CPython doc updates for PEP 453 are done, along with
everything else that has a 3.4b1 deadline :)

Cheers,
Nick.


 -Chris

 --

 Christopher Barker, Ph.D.
 Oceanographer

 Emergency Response Division
 NOAA/NOS/ORR(206) 526-6959   voice
 7600 Sand Point Way NE   (206) 526-6329   fax
 Seattle, WA  98115   (206) 526-6317   main reception

 chris.bar...@noaa.gov
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-22 Thread Chris Barker
On Tue, Oct 22, 2013 at 1:19 PM, Nick Coghlan ncogh...@gmail.com wrote:
 PEP 453 has had most of my attention lately, but my tentative thought has
 been to introduce a relatively freeform variant field to the wheel spec.

 Windows and Mac OS X would then default to an empty variant, while other
 *nix systems would require a nominated variant

 That would then cover things like SSE builds on Windows, alternative sources
 on Mac OS X, etc.

sounds good.


 However, worrying about that is a fair way down the todo list until
 ensurepip and the CPython doc updates for PEP 453 are done, along with
 everything else that has a 3.4b1 deadline :)

Fair enough, but enabling binary wheels for OS-X (the pyton.org build,
NOT macports and friends) would be great, and shouldn't take much
work, yes?

-Chris


-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-21 Thread Chris Barker
On Fri, Oct 18, 2013 at 6:22 PM, Nick Coghlan ncogh...@gmail.com wrote:
  -- it would be very useful if folks could easily
 get binary wheels for OS-X

 We do plan to support it, but the pip devs uncovered a hole in the current
 wheel spec that means it generates the same filename on *nix systems for
 wheels that need to have different names for the download side of things to
 work properly

THanks -- but really? don't OS-X wheels get:

macosx_10_6_intel

or some such tacked on? Where does that go wrong?

 Once ensurepip has landed in Python 3.4 and pip 1.5 is released, we should
 be able to get back to updating the various metadata specs, with the aim of
 getting cross-platform wheel support in pip 1.6 :)

Getting there... thanks,

-Chris

-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


[Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-18 Thread Chris Barker
Someone on another list indicated that pip installing binary wheels
from PyPi will ONLY work for Windows.

Is that the case? I think it's desperately needed for OS-X as well.

Linux is so diverse that I can't imagine it being useful, but OS-X has
only so many versions, and the python.org OS-X binaries are very clear
in their requirements -- it would be very useful if folks could easily
get binary wheels for OS-X

-Chris




-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Plans for binary wheels, and PyPi and OS-X

2013-10-18 Thread Nick Coghlan
On 19 Oct 2013 04:59, Chris Barker chris.bar...@noaa.gov wrote:

 Someone on another list indicated that pip installing binary wheels
 from PyPi will ONLY work for Windows.

 Is that the case? I think it's desperately needed for OS-X as well.

 Linux is so diverse that I can't imagine it being useful, but OS-X has
 only so many versions, and the python.org OS-X binaries are very clear
 in their requirements -- it would be very useful if folks could easily
 get binary wheels for OS-X

We do plan to support it, but the pip devs uncovered a hole in the current
wheel spec that means it generates the same filename on *nix systems for
wheels that need to have different names for the download side of things to
work properly - hence the current Windows-only restriction.

Once ensurepip has landed in Python 3.4 and pip 1.5 is released, we should
be able to get back to updating the various metadata specs, with the aim of
getting cross-platform wheel support in pip 1.6 :)

Cheers,
Nick.


 -Chris




 --

 Christopher Barker, Ph.D.
 Oceanographer

 Emergency Response Division
 NOAA/NOS/ORR(206) 526-6959   voice
 7600 Sand Point Way NE   (206) 526-6329   fax
 Seattle, WA  98115   (206) 526-6317   main reception

 chris.bar...@noaa.gov
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig