On Aug 13, 2015 2:31 PM, "Leonardo Rochael Almeida" <leorochael@gmail.com> wrote:
>
>
>
> On 13 August 2015 at 11:07, Nate Coraor <nate@bx.psu.edu> wrote:
>>
>> On Wed, Aug 12, 2015 at 9:05 PM, Nathaniel Smith <njs@pobox.com> wrote:
>>>
>>> On Aug 12, 2015 13:57, "Nate Coraor" <nate@bx.psu.edu> wrote:
>>> >
>>> > Hello all,
>>> >
>>> > I've implemented the wheel side of Nick's suggestion from very early in this thread to support a vendor-providable binary-compatibility.cfg.
>>> >
>>> >   https://bitbucket.org/pypa/wheel/pull-request/54/
>>> >
>>> > If this is acceptable, I'll add support for it to the pip side. What else should be implemented at this stage to get the PR accepted?
>>>
>>> From my reading of what the Enthought and Continuum folks were saying about how they are successfully distributing binaries across different distributions, it sounds like the additional piece that would take this from a interesting experiment to basically-immediately-usable would be to teach pip that if no binary-compatibility.cfg is provided, then it should assume by default that the compatible systems whose wheels should be installed are: (1) the current system's exact tag,
>>
>>
>> This should already be the case - the default tag will no longer be -linux_x86_64, it'd be linux_x86_64_distro_version.
>>  
>>>
>>> (2) the special hard-coded tag "centos5". (That's what everyone actually uses in practice, right?)
>>
>>
>> The idea here is that we should attempt to install centos5 wheels if more specific wheels for the platform aren't available?
>
>
> Just my opinion, but although I'm +1 on Nate's efforts, I'm -1 on both the standard behavior for installation being the exact platform tag, and an automatic fallback to cento5.
>
> IMO, on Linux, the default should always be to opt in to the desired platform tags.
>
> We could make it so that the word `default` inside `binary-compatibility.cfg` means an exact match on the distro version, so that we could simplify the documentation.
>
> But I don't want to upgrade to pip and suddenly find myself installing binary wheels compiled by whomever for whatever platform I have no control with, even assuming the best of the package builders intentions.
>
> And I certainly don't want centos5 wheels accidentally installed on my ubuntu servers unless I very specifically asked for them.
>
> The tiny pain inflicted by telling users to add a one-line text file in a very well known location (or two lines, for the added centos5), so that they can get the benefit of binary wheels on linux, is very small compared to the pain of repeatable install scripts suddenly behaving differently and installing binary wheels in systems that were prepared to pay the price of source installs, including the setting of build environment variables that correctly tweaked their build process.

Could/should this (repeatable) build configuration be specified in a JSON manifest file?

What's the easiest way to build for all of these platforms? Tox w/ per-platform Dockerfile?

>
> Regards,
>
> Leo
>
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
>