[I explain how a programmer could theoretically dodge the MANIFEST mechanism and do-it-himself]
[Michael Hudson replies]
My problem with this is that is a discontinous jump from the simple case to the complex one - although as the other Greg pointed out, that's a hard problem noone's got right, so just getting something that works for most cases is a more important goal.
The discontinuous jump -- from the simple job of writing MANIFEST.in to the complex job of subclassing distutils.command.dist.Dist -- doesn't bother me. First of all, I don't think the complex case should be all that hard (but then, I seem to have an object-oriented brain).
More importantly, you *can* do the complex case -- there's no brick wall barring your way from further progress, just a small hurdle to jump. If you want to do weird things with the Distutils, you have to jump through hoops -- hopefully small hoops, but the key point is that you shouldn't wind up bashing your head against the wall. That's why those last two letters of "setup.py" are so important... no brick walls. ;-)
I certainly found it pleasant enough, MANIFEST nits aside.
I would say it would be essential for
python setup.py --help
to produce something more helpful than
option --help not recognized
D'oh! Somehow that one slipped through my clue-filter. Consider it noted...
I found the simple act of installing distutils somewhere other than than the default to involve considerable head scratching and staring at the USAGE file. I'd have thought this would be the commonest option passed to install.
Yes, there definitely needs to be an easier grade from the "trivial" case to slightly customized to heavily customized cases. This is mostly a documentation problem, I think. (Although I have to actually *try* some of those slightly- and heavily-customized cases before I can be certain...)