**README** for SetupHelper Version 0.2

:Author:        Peter A. Donis
:Release Date:  15 February 2008

SetupHelper: Automating Boilerplate in Python Setup Scripts
===========================================================

This Python module will make your setup scripts simpler to
write, by automating as much as possible of the 'boilerplate'
that normally goes into them. Instead of invoking the setup
function with a long list of keyword arguments, you just set
global variables in your setup script and then invoke the
setup_main function, passing globals() as its argument. (The
SetupHelper setup.py script itself illustrates this usage.)

The helper module does all the grunt work of translating your
variables into keyword arguments, including automatically
deducing and generating many arguments so that you only have
to specify a much simpler set of data. As a bonus, if you are
using Python's standard distutils, SetupHelper provides (very
basic!) support for the requires keyword, downloading and
installing required packages for you, as long as their download
URLs are available on PyPI. (Note that the distutils in Python
2.5 and later allow the requires keyword in distribution
metadata, but do not actually use it to install anything for
you. Of course some distutils replacements like setuptools do
provide this functionality; if you are using setuptools, you
can set the variable __distutils_pkg__ to 'setuptools' and
SetupHelper will use setuptools' support instead of its own.)

Since SetupHelper has all the information needed to determine
what should be in your source or binary distribution files,
it auto-generates MANIFEST.in each time it runs, so you don't
have to maintain your MANIFEST.in file manually (and if you
did, it would get overwritten anyway). Even though it is not
strictly necessary to write MANIFEST.in unless you are running
a distribution command, SetupHelper does it every time because
checking its output can often help you debug problems with the
variable definitions in your setup script. (At least, it has
certainly helped *me* to do that!)

As one other bonus, SetupHelper allows you to automate the
running of post-install scripts; just set the __post_install__
variable in your setup.py to a list of script names to be run
from a subshell (this is done using os.system, so it has the
limitations of that Python command). It is desirable to allow
post-install scripts to be run from setup.py so that SetupHelper
can ensure that any required packages are fully installed by
just calling python setup.py install on them once they are
unpacked.

Installation
------------

Of course, to install SetupHelper, you can simply type::

    $ python setup.py install

in the directory where you unpacked the SetupHelper archive.
However, since SetupHelper is used by setup scripts, you will
probably want to include it along with your setup.py in the
source archives for your Python projects.

Copyright and License
=====================

SetupHelper is Copyright (C) 2008 by Peter A. Donis. It is
released under the Python Software Foundation license, so
you can use and redistribute it just as you do Python itself.
