[Distutils] moving things forward (was: wheel including files it shouldn't)

Nick Coghlan ncoghlan at gmail.com
Wed May 4 23:09:31 EDT 2016


On 5 May 2016 at 06:28, Robert Collins <robertc at 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 at gmail.com   |   Brisbane, Australia


More information about the Distutils-SIG mailing list