[Distutils] moving things forward

Alex Grönholm alex.gronholm at nextday.fi
Thu May 5 17:05:29 EDT 2016


OK, so which setup() arguments do we want to leave out of the static 
metadata?

05.05.2016, 23:53, Daniel Holth kirjoitti:
> This is a recurring point of confusion. setup.py is not ever going 
> away. In general it is necessary for you to be able to write software 
> to build your software, and there is no intention to take that feature 
> away.
>
> People repeatedly come to the conclusion that static metadata means 
> the entire build is static. It's only the dependencies that need to be 
> static to enable better dependency resolution in pip. The build does 
> not need to be static.
>
> The proposed feature means you will be able to have a simpler setup.py 
> or no setup.py it by using something like flit or pbr that are 
> configured with .cfg or .ini. setup.py is not going away.
>
> Static metadata means the list of dependencies, author name, trove 
> classifiers is static. Not the build itself.
>
> Enforced staticness of the build script is right out.
>
> On Thu, May 5, 2016 at 4:34 PM Alex Grönholm <alex.gronholm at nextday.fi 
> <mailto:alex.gronholm at nextday.fi>> wrote:
>
>     I think it would be best to gather a few extreme examples of
>     setup.py files from real world projects and figure out if they can
>     be implemented in a declarative fashion. That at least would help
>     us identify the pain points.
>
>     For starters, gevent's setup.py looks like it needs a fair bit of
>     custom logic:
>     https://github.com/gevent/gevent/blob/master/setup.py
>
>     05.05.2016, 23:30, Chris Barker kirjoitti:
>>     On Wed, May 4, 2016 at 7:45 PM, Nick Coghlan <ncoghlan at gmail.com
>>     <mailto:ncoghlan at gmail.com>> wrote:
>>
>>         This configuration vs customisation distinction is probably worth
>>         spelling out for folks without a formal software engineering or
>>         computer science background, so:
>>
>>
>>     fair enough -- good to be clear on the terms.
>>
>>         Configuration is different: you're choosing amongst a set of
>>         possibilities that have been constrained in some way, and those
>>         constraints are structurally enforced. 
>>
>>
>>     That's a key point here -- I guess I'm skeptical that we can have
>>     the flexibility we need with a purely configuration-based system
>>     -- we probably don't WANT to constrain the options completely. If
>>     you think about it, while distutils has it's many, many flaws,
>>     what made it possible for it to be as useful as it is, and last
>>     as long as it has because is CAN be customized -- users are NOT
>>     constrained to the built-in functionality.
>>
>>     I suspect the idea of this thread is to keep the API to a build
>>     system constrained -- and let the build systems themselves be as
>>     customizable as the want to be. And I haven't thought it out
>>     carefully, but I have a feeling that we're going to hit a wall
>>     that way .. but maybe not.
>>
>>         Usually that enforcement is
>>         handled by making the configuration declarative - it's in
>>         some passive
>>         format like an ini file or JSON, and if it gets too
>>         repetitive then
>>         you introduce a config generator, rather than making the
>>         format itself
>>         more sophisticated.
>>
>>
>>     OK -- that's more or less my thought -- if it's  python that gets
>>     run, then you've got your config generator built in -- why not?
>>
>>         The big advantage of configuration over customisation is that you
>>         substantially increase the degrees of freedom in how
>>         *consumers* of
>>         that configuration are implemented - no longer do you need a full
>>         Python runtime (or whatever), you just need an ini file
>>         parser, or a
>>         JSON decoder, and then you can look at just the bits you care
>>         about
>>         for your particular use case and ignore the rest.
>>
>>
>>     Sure -- but do we care? this is about python packaging -- is it
>>     too big a burden to say you need python to read the configuration?
>>
>>     -CHB
>>
>>     -- 
>>
>>     Christopher Barker, Ph.D.
>>     Oceanographer
>>
>>     Emergency Response Division
>>     NOAA/NOS/OR&R            (206) 526-6959   voice
>>     7600 Sand Point Way NE   (206) 526-6329   fax
>>     Seattle, WA  98115       (206) 526-6317   main reception
>>
>>     Chris.Barker at noaa.gov <mailto:Chris.Barker at noaa.gov>
>>
>>
>>     _______________________________________________
>>     Distutils-SIG maillist  -Distutils-SIG at python.org <mailto:Distutils-SIG at python.org>
>>     https://mail.python.org/mailman/listinfo/distutils-sig
>     _______________________________________________
>     Distutils-SIG maillist  - Distutils-SIG at python.org
>     <mailto:Distutils-SIG at python.org>
>     https://mail.python.org/mailman/listinfo/distutils-sig
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20160506/2d1ac64e/attachment-0001.html>


More information about the Distutils-SIG mailing list