Ok so, if i draft a pep for said proposal, will it die under the weight of a thousand bike sheds? On 5 May 2016 3:09 PM, "Nick Coghlan" <ncoghlan@gmail.com> wrote:
On 5 May 2016 at 06:28, Robert Collins <robertc@robertcollins.net> wrote:
the only reason I got involved in build system discussions was pushback 18months or so back when I implemented a proof of concept for pip that just used setup.cfg. I'd be very happy to ignore all the build system stuff and just do bootstrap requirements in setup.cfg.
I know I'm one of the folks that has historically been dubious of the "just use setup.cfg" idea, due to the assorted problems with the ini-style format not extending particularly well to tree-structured data (beyond the single level of file sections).
However, my point of view has changed over that time:
1. We've repeatedly run up against the "JSON is good for programs talking to each other, but lousy as a human-facing interface" problem 2. By way of PEPs 440 and 508, we've got a lot more experience in figuring out how to effectively bless de facto practices as properly documented standards (even when it makes the latter more complicated than we'd like) 3. The ongoing popularity of setup.cfg shows that while ini-style may not be perfect for this use case, it clearly makes it over the threshold of "good enough" 4. Folks that *really* want a different input format (whether that's YAML, TOML, or something else entirely) will still be free to treat setup.cfg as a generated file, just as setup.py can be a generated file today
The last couple of years have also given me a whole range of opportunities (outside distutils-sig) to apply the mantra "the goal is to make things better than the status quo, not to make them perfect", and that has meant getting better at distinguishing what I would do given unlimited development resources from what makes the most sense given the development resources that are actually available.
So when I ask myself now "What's the *simplest* thing we could do that will make things better than the status quo?", then the answer I come up with today is your original idea: bless setup.cfg (or at least a subset of it) as a standardised interface.
Don't get me wrong, I still think that answer has significant downsides - I've just come around to the view that "is likely to be easy to implement and adopt" are upsides that can outweigh a whole lot of downsides :)
Cheers, Nick.
-- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia