> On 8 Dec 2016, at 23:55, Glyph Lefkowitz <gl...@twistedmatrix.com> wrote:
> 
>> 
>> On Dec 8, 2016, at 3:37 AM, Ronald Oussoren <ronaldousso...@mac.com 
>> <mailto:ronaldousso...@mac.com>> wrote:
>> 
>> 
>>> On 8 Dec 2016, at 00:40, Glyph Lefkowitz <gl...@twistedmatrix.com 
>>> <mailto:gl...@twistedmatrix.com>> wrote:
>>>> 
>>>> 
>>>> Last time I checked systems like Homebrew only build 64-bit binaries (on 
>>>> anything resembling modern hardware). It should be possible to support 
>>>> both i386/x86_64 python.org <http://python.org/> and homebrew using the 
>>>> same wheel file by tweaking the platform tag. The filename of the wheels 
>>>> will get annoyingly long, but that’s something users won’t see anyway.   
>>>> If that doesn’t work out I’ll install homebrew on my build machine and 
>>>> have the build script generate wheels for that as well. 
>>> 
>>> You shouldn't need to do this; and in fact you shouldn't do it :).  If you 
>>> tweak the platform tag, you'll break Pip's ability to discover the wheel as 
>>> valid-to-install for the current platform.  Platform tags are a descriptive 
>>> mechanism for Python, Pip, and Setuptools, not a point for user 
>>> extensibility.
>> 
>> I know how platform tags work, I’ve read the relevant PEPs when the were 
>> proposed. The “tweak” I wanted to use is documented as “Compressed Tag Sets” 
>> in PEP 425, and is how the python version is added to the wheel filename for 
>> wheels supporting both python2 and python3, as in:
>> 
>>    pyobjc_framework_XgridFoundation-3.3a0-py2.py3-none-any.whl
>> 
>> This should work in the platform tag as well, and is already used by wheels 
>> for matplotlib (see https://pypi.python.org/pypi/matplotlib 
>> <https://pypi.python.org/pypi/matplotlib>).
> 
> Aah, I was reading you backwards.  I thought you were saying something about 
> inventing a platform tag for Homebrew (since they don't have one of their 
> own; they build specifically to be compatible with system python).  This 
> makes sense.

That explains the confusion.
> 
>>> There are a lot of fiddly nuances here, but basically, "intel" is the 
>>> architecture for "fat binary, intel", and "x86_64" is the architecture for 
>>> "64-bit".  (I have no idea what the story is on 10.5 and previous but IMHO 
>>> you can skip bothering to build wheels for them for now).  If you want to 
>>> build release wheels, just build "intel" (fat binary) and any Python will 
>>> be happy with them.
>> 
>> I wrote the distutils code that sets the platform to a sane value for fat 
>> binaries on OSX ;-).  
> 
> Heh. I think we both know a little too much about this for our own good :-).
> 
>> That’s cool, this means pip did implement the logic that’s needed to 
>> understand that “intel” is an acceptable architecture when looking for a 
>> wheel for an “x86_64” build of CPython.
> 
> I believe it understands the tags pretty thoroughly; I haven't tested, but I 
> believe it also knows that an x86_64 wheel won't cut it on an 'intel' python 
> because it might blow up later.
> 
>>> 
>>> This is probably worth reading, as it explains the above in a lot more 
>>> detail: https://github.com/MacPython/wiki/wiki/Spinning-wheels 
>>> <https://github.com/MacPython/wiki/wiki/Spinning-wheels>.  But the lede is: 
>>> just use the default behavior of a fat binary Python, it will do the right 
>>> thing :).
>> 
>> Looking at that page the relevant logic was added in pip 6, that’s old 
>> enough to not worry about using a compressed tag set for the platform. 
> 
> Cool.  I'm really looking forward to never building pyobjc again :-).

:-)

I’ve written some scripts to help me with doing the release, by scaling back 
the scope these scripts got a lot simpler and more importantly actually got 
written.  

Annoyingly the testsuite runner found some issues that I had missed before 
because I don’t regularly all python versions and architectures. The new test 
runner should make it a lot easier to do comprehensive testing, a test run will 
still take a lot of time but I won’t have to be present for that. 

Ronald
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
https://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG

Reply via email to