[Python-Dev] Status of packaging in 3.3
Tarek Ziadé
tarek at ziade.org
Thu Jun 21 23:04:37 CEST 2012
On 6/21/12 10:46 PM, Dag Sverre Seljebotn wrote:
...
>> I think we should, as you proposed, list a few projects w/ compilation
>> needs -- from the simplest to the more complex, then see how a standard
>> *description* could be used by any tool
>
> It's not clear to me what you mean by description. Package metadata,
> install information or description of what/how to build?
>
> I hope you don't mean the latter, that would be insane...it would
> effectively amount to creating a build tool that's both more elegant
> and more powerful than any option that's currently already out there.
>
> Assuming you mean the former, that's what David did to create Bento.
> Reading and understanding Bento and the design decisions going into it
> would be a better use of time than redoing a discussion, and would at
> least be a very good starting point.
What I mean is : what would it take to use Bento (or another tool) as
the compiler in a distutils-based project, without having to change the
distutils metadata.
>
> But anyway, some project types from simple to advanced:
>
> - Simple library using Cython + NumPy C API
> - Wrappers around HPC codes like mpi4py, petsc4py
> - NumPy
> - SciPy (uses Fortran compilers too)
> - Library using code generation, Cython, NumPy C API, Fortran 90
> code, some performance tuning with CPU characteristics (instruction
> set, cache size, optimal loop structure) decided compile-time
I'd add:
- A Distutils project with a few ExtensionsThe other thing is, the folks
in distutils2 and myself, have zero
>> knowledge about compilers. That's why we got very frustrated not to see
>> people with that knowledge come and help us in this area.
>
> Here's the flip side: If you have zero knowledge about compilers, it's
> going to be almost impossible to have a meaningful discussion about a
> compilation PEP. It's very hard to discuss standards unless everybody
> involved have the necessary prerequisite knowledge. You don't go
> discussing details of the Linux kernel without some solid C experience
> either.
Consider me as the end user that want to have his 2 C modules compiled
in their Python project.
>
> The necessary prerequisites in this case is not merely "knowledge of
> compilers". To avoid repeating mistakes of the past, the prerequisites
> for a meaningful discussion is years of hard-worn experience building
> software in various languages, on different platforms, using different
> build tools.
>
> Look, these problems are really hard to deal with. Myself I have
> experience with building 2-3 languages using 2-3 build tools on 2
> platforms, and I consider myself a complete novice and usually decide
> to trust David's instincts over trying to make up an opinion of my own
> -- simply because I know he's got a lot more experience than I have.
>
> Theoretically it is possible to separate and isolate concerns so that
> one set of people discuss build integration and another set of people
> discuss installation. Problem is that all the problems tangle -- in
> particular when the starting point is distutils!
>
> That's why *sometimes*, not always, design by committee is the wrong
> approach, and one-man-shows is what brings technology forwards.
I am not saying this should be designed by a commitee, but rather - if
such a tool can be made compatible with simple Distutils project, the
guy behind this tool can probably help on a PEP with feedback from a
larger audience than the sci community.
What bugs me is to say that we live in two separate worlds and cannot
build common pieces. This is not True.
>
>> So, I reiterate my proposal, and it could also be expressed like this:
>>
>> 1/ David writes a PEP where he describes how Bento interact with a
>> project -- metadata, description files, etc
>> 2/ Someone from distutils2 completes the PEP by describing how setup.cfg
>> works wrt Extensions
>> 3/ we see if we can have a common standard even if it's a subset of
>> bento capabilities
>
> bento isn't a build tool, it's a packaging tool, competing directly
> with distutils2. It can deal with simple distutils-like builds using a
> bundled build tool, and currently has integration with waf for
> complicated builds; integration with other build systems will
> presumably be added later as people need it (the main point is that
> bento is designed for it).
I am not interested in Bento-the-tool. I am interested in what such a
tool needs from a project to use it =>
"It can deal with simple distutils-like builds using a bundled build
tool" => If I understand this correctly, does that mean that Bento can
build a distutils project with the distutils Metadata ?
If this is the case it means that there a piece of function that
translates Distutils metadata into something Bento deals with.
That's the part I am interested in for interoperability.
>
> Dag
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> http://mail.python.org/mailman/options/python-dev/ziade.tarek%40gmail.com
More information about the Python-Dev
mailing list