| Store | Cart

Re: [Distutils] Working toward Linux wheel support

From: Wes Turner <wes....@gmail.com>
Thu, 13 Aug 2015 21:24:32 -0500
On Aug 13, 2015 9:14 PM, "Nathaniel Smith" <n...@pobox.com> wrote:
>> On Thu, Aug 13, 2015 at 6:31 PM, Robert Collins> <robe...@robertcollins.net> wrote:> > On 14 August 2015 at 13:25, Nathaniel Smith <n...@pobox.com> wrote:> >> On Thu, Aug 13, 2015 at 7:07 AM, Nate Coraor <n...@bx.psu.edu> wrote:> >>> On Wed, Aug 12, 2015 at 9:05 PM, Nathaniel Smith <n...@pobox.com>
wrote:
> >>>>> >>>> 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?> >>> >> Yes.> >>> >> Or more generally, we should pick some common baseline build> >> environment such that we're pretty sure wheels built there can run on> >> 99% of end-user systems and give this environment a name. (Doesn't> >> have to be "centos5", though IIUC CentOS 5 is what people are using> >> for this baseline build environment right now.) That way when distros> >> catch up and start providing binary-compatibility.cfg files, we can> >> give tell them that this is an environment that they should try to> >> support because it's what everyone is using, and to kick start that> >> process we should assume it as a default until the distros do catch> >> up. This has two benefits: it means that these wheels would actually> >> become useful in some reasonable amount of time, and as a bonus, it> >> would provide a clear incentive for those rare distros that *aren't*> >> compatible to document that by starting to provide a> >> binary-compatibility.cfg.> >> > Sounds like a reinvention of LSB, which is still a thing I think, but> > really didn't take the vendor world by storm.>> Yeah, I've been carefully not mentioning LSB because LSB is a disaster> :-). But, I think this is different.>> IIUC, the problem with LSB is that it's trying to make it possible for> big enterprise software vendors to stop saying "This RDBMS is> certified to work on RHEL 6" and start saying "This RDBMS is certified> to work on any distribution that meets the LSB criteria".

That's great. Is there a Dockerfile invocation for:
- running the tests
- building a binary in a mapped path
- posting build state and artifacts to a central server

> But in> practice this creates more risk and work for the vendor, while not> actually solving any real problem -- if a customer is spending $$$$ on> some enterprise database then they might as well throw in an extra $$> for a RHEL license, so the customers don't care, so the vendor doesn't> either. And the folks building free software like Postgres don't care> either because the distros do the support for them. So the LSB> continues to limp along through the ISO process because just enough> managers have been convinced that it *ought* to be useful that they> continue to throw some money at it, and hey, it's probably useful to> some people sometimes, just not very many people very often.>> We, on the other hand, are trying to solve a real problem that our> users feel keenly (lots of people want to be able to distribute some> little binary python extension in a way that just works for a wide> range of users), and the proposed mechanism for solving this problem> is not "let's form an ISO committee and hire contractors to write a> Grand Unified Test Suite", it's codifying an existing working solution> in the form of a wiki page or PEP or something.>> Of course if you have an alternative proposal than I'm all ears :-).

Required_caps = [('blas1', None), ('blas', '>= 1'), ('np17', None)]

Re-post [TODO: upgrade mailman]
"""
. BLAS may not be the best example, but should we expect such linked
interfaces to change over time? (And e.g. be versioned dependencies with
shim packages that have check functions)?

. How is an ABI constraint different from a package dependency?

iiuc, ABI tags are thus combinatorial with package/wheel dependency strings?

Conda/pycosat solve this with "preprocessing selectors" :
http://conda.pydata.org/docs/building/meta-yaml.html#preprocessing-selectors
:

```
linux True if the platform is Linux
linux32 True if the platform is Linux and the Python architecture is 32-bit
linux64 True if the platform is Linux and the Python architecture is 64-bit
armv6 True if the platform is Linux and the Python architecture is armv6l
osx True if the platform is OS X
unix True if the platform is Unix (OS X or Linux)
win True if the platform is Windows
win32 True if the platform is Windows and the Python architecture is 32-bit
win64 True if the platform is Windows and the Python architecture is 64-bit
py The Python version as a two digit string (like '27'). See also the
CONDA_PY environment variable below.
py3k True if the Python major version is 3
py2k True if the Python major version is 2
py26 True if the Python version is 2.6
py27 True if the Python version is 2.7
py33 True if the Python version is 3.3
py34 True if the Python version is 3.4
np The NumPy version as a two digit string (like '17'). See also the
CONDA_NPY environment variable below.
Because the selector is any valid Python expression, complicated logic is
possible.
```

>> -n>> P.S.: since probably not everyone on the mailing list has been> following Linux inside baseball for decades, some context...:>   https://en.wikipedia.org/wiki/Linux_Standard_Base>   http://www.linuxfoundation.org/collaborate/workgroups/lsb/download>   https://lwn.net/Articles/152580/>   http://udrepper.livejournal.com/8511.html> (Last two links are from 2005, I can't really say how accurate they> still are in details but they do describe some of the structural> reasons why the LSB has not been massively popular)>> --> Nathaniel J. Smith -- http://vorpus.org> _______________________________________________> Distutils-SIG maillist  -  Dist...@python.org> https://mail.python.org/mailman/listinfo/distutils-sig

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

Recent Messages in this Thread
Nate Coraor Jul 16, 2015 05:41 pm
Nick Coghlan Sep 06, 2015 11:32 pm
Nick Coghlan Sep 05, 2015 02:56 am
Marcus Smith Sep 07, 2015 04:11 am
Nate Coraor Sep 03, 2015 05:22 pm
Nick Coghlan Sep 07, 2015 04:26 am
Daniel Holth Aug 20, 2015 07:22 pm
Donald Stufft Aug 20, 2015 07:25 pm
Donald Stufft Sep 02, 2015 11:45 pm
Daniel Holth Sep 03, 2015 12:15 pm
Nate Coraor Aug 24, 2015 03:03 pm
Wes Turner Aug 24, 2015 05:51 pm
Nick Coghlan Jul 17, 2015 08:22 am
Chris Barker Jul 17, 2015 03:36 pm
Antoine Pitrou Jul 17, 2015 03:46 pm
Chris Barker Jul 17, 2015 03:53 pm
Andrea Bedini Jul 18, 2015 07:00 am
Tres Seaver Jul 21, 2015 03:25 am
Leonardo Rochael Almeida Jul 21, 2015 03:07 pm
Marcus Smith Jul 17, 2015 04:50 pm
Olivier Grisel Jul 17, 2015 06:34 pm
Daniel Holth Jul 17, 2015 08:18 pm
Chris Barker - NOAA Federal Jul 18, 2015 01:13 am
Daniel Holth Jul 18, 2015 02:11 am
Paul Moore Jul 18, 2015 11:51 am
Nick Coghlan Jul 20, 2015 05:50 am
Chris Barker Jul 20, 2015 05:37 pm
Paul Moore Jul 20, 2015 06:37 pm
Nick Coghlan Jul 27, 2015 02:19 pm
Nate Coraor Jul 27, 2015 07:07 pm
Oscar Benjamin Jul 21, 2015 04:38 pm
Chris Barker Jul 24, 2015 06:52 pm
Oscar Benjamin Jul 28, 2015 03:02 pm
Wes Turner Jul 28, 2015 04:21 pm
Nate Coraor Aug 12, 2015 08:21 pm
Robert Collins Aug 12, 2015 11:49 pm
Nathaniel Smith Aug 13, 2015 01:05 am
Nate Coraor Aug 13, 2015 02:07 pm
Leonardo Rochael Almeida Aug 13, 2015 07:30 pm
Wes Turner Aug 13, 2015 07:43 pm
Nathaniel Smith Aug 14, 2015 01:47 am
Wes Turner Aug 14, 2015 01:50 am
Nathaniel Smith Aug 14, 2015 02:33 am
Wes Turner Aug 14, 2015 02:41 am
Leonardo Rochael Almeida Sep 08, 2015 07:18 pm
Donald Stufft Sep 08, 2015 07:22 pm
Leonardo Rochael Almeida Sep 08, 2015 07:39 pm
Nathaniel Smith Aug 14, 2015 01:25 am
Robert Collins Aug 14, 2015 01:31 am
Wes Turner Aug 14, 2015 01:38 am
Robert Collins Aug 14, 2015 01:44 am
Wes Turner Aug 14, 2015 01:44 am
Nathaniel Smith Aug 14, 2015 02:14 am
Wes Turner Aug 14, 2015 02:24 am
Robert Collins Aug 14, 2015 02:27 am
Nathaniel Smith Aug 14, 2015 07:38 am
David Cournapeau Aug 13, 2015 05:52 pm
Nathaniel Smith Aug 14, 2015 04:07 am
Chris Barker Aug 14, 2015 04:04 pm
David Cournapeau Aug 14, 2015 04:20 pm
Chris Barker Aug 14, 2015 04:00 pm
Leonardo Rochael Almeida Jul 20, 2015 01:42 am
Nick Coghlan Jul 20, 2015 06:00 am
Chris Barker Jul 20, 2015 05:39 pm
Marcus Smith Sep 06, 2015 04:09 pm
Nick Coghlan Sep 05, 2015 08:35 am
Nick Coghlan Sep 05, 2015 06:44 am
Nick Coghlan Sep 05, 2015 06:43 am
Nathaniel Smith Sep 05, 2015 06:46 am
Donald Stufft Sep 05, 2015 03:06 am
Wes Turner Sep 08, 2015 07:14 pm
Daniel Holth Sep 08, 2015 07:32 pm
Nathaniel Smith Sep 09, 2015 11:49 pm
Nate Coraor Sep 21, 2015 03:33 pm
Nate Coraor Sep 09, 2015 03:06 pm
Donald Stufft Sep 08, 2015 06:33 pm
Donald Stufft Sep 07, 2015 04:02 pm
Marcus Smith Sep 07, 2015 05:51 pm
Wes Turner Sep 07, 2015 10:16 pm
Nate Coraor Sep 03, 2015 02:04 pm
Daniel Holth Sep 03, 2015 01:56 pm
Antoine Pitrou Aug 20, 2015 07:51 pm
Nate Coraor Aug 20, 2015 07:40 pm
Donald Stufft Aug 20, 2015 07:19 pm
Antoine Pitrou Aug 20, 2015 07:14 pm
Steve Dower Aug 14, 2015 04:17 pm
Daniel Holth Aug 20, 2015 06:38 pm
Chris Barker Aug 14, 2015 08:16 pm
Alexander Walters Aug 14, 2015 10:32 pm
Nate Coraor Aug 20, 2015 06:26 pm
Nick Coghlan Sep 05, 2015 02:12 am
Daniel Holth Sep 01, 2015 01:57 pm
Wes Turner Aug 26, 2015 01:42 am
Nate Coraor Aug 27, 2015 07:21 pm
Ben Finney Sep 06, 2015 11:42 pm
Messages in this thread