On Tue, Aug 30, 2016, at 05:51 PM, Antony Lee wrote:
I am not really a fan of PEP518 in general.  Basically, the idea of setup.py is that declarative languages are not sufficient to express a build system (and AFAICT this is always going to be the case for expressing, say, compiler flags for extensions), so I'd rather just accept that and stick everything in setup.py instead of adding more parameter files.  What if someone wants dynamic build dependencies?

Dynamic build deps aren't precluded - the idea is that the build system can discover additional dependencies when it runs, while the static build-system field specifies just what's required to run the build system itself.  However, the build system interface was split out into separate PEPs (517 & 516 are alternatives) to allow 518 to go forwards.

I take totally the opposite view: we should make as much metadata as possible declarative, even though we know we can't define a totally general build system with purely declarative information.