setuptools usability - not good, what can be done?
15 July 2009
Gun to your head; what would it take to make setuptools as a package author easy to use?
I've spent far too long time today trying to create a package for a little piece of code I've written. Because I can never remember all the bizarre options and commands to setup.py I tried to do it by following Tarek Ziade's wonderful Expert Python Programming but I still got stuck.
Granted, I did not read the f**n manual. Why should I have to? I've got more important things to do such as eating cookies and watching tv.
Here's what I know:
- Create a directory with program in it "myapp/foo.py"
- Write a run unit tests
- Write a README file that explains in human words what it does.
Here's what I don't know:
- What an egg is and how it works
- If I should test things with setup.py or test the normal way on the command line
- If I should use "bdist egg upload" or "upload sdist" or "sdist bdist register" or "egg sdist bdist" etc.
- Where I put the MANIFEST.in (what a name by the way!) and/or say anything in setup.py about it.
If I was a setuptools hacker I would happily wrap up all these annoying questions into a single script that just sensibly guesses everything and removing any choices and replace them with suggestions. But I'm not.
Or am I wrong. Should I take the plunge and study the manual? Will having a all-singing-all-dancing script that just works just be another leaky abstraction?
PS. If you do comment, please don't answer the bullet point questions above. I know most of the answers at the moment (but will surely forget them till the next time). Asking the questions to prove a point that setuptools requires too much schooling.