##################
everyapp.bootstrap
##################

About
=====

*everyapp.bootstrap* provides an enhanced and customizable virtualenv_
bootstrap script.  It aims to make it easy to bootstrap a virtual environment
for your project.

This distribution includes a tool to generate a bootstrap script that will
automatically create the virtual environment when run.  By placing the
bootstrap script in the root of your project's source tree and making it
available on a fresh checkout/clone from your version control repository, you
make it easy for anyone who wants to hack on your project (including yourself!)
to work in a consistent development environment.

Additionally, this enhanced bootstrap script can read a configuration file and
perform additional actions beyond just creating a bare-bones virtual
environment.

Features
========

* Easy creation of a virtualenv bootstrap script.
* Better defaults for virtualenv like using distribute_ instead of setuptools_
  and always unzipping eggs.
* Easy customization of the bootstrapping process.
* Automatic installation of additional distributions using pip_ and/or
  easy_install_.
* Easy customization of pip_ and easy_install_ behaviour during distribution
  installation.
* Automatically run additional commands after the bootstrapping is complete.

Status
======

This project is very young and the code should be considered *Alpha* quality.
It has not yet been seriously tested.

That said, it is largely just a wrapper and a few customizations on the
production-grade virtualenv_ project, so it should be reasonably stable.  It
should also be mostly feature complete.

Dependencies
============

``everyapp.bootstrap`` requires only distribute_ and virtualenv_.

Installation
============

The easiest way to install this distribution is::

  pip install everyapp.bootstrap

or::

  easy_install everyapp.bootstrap

For additional installation options and tips see the `doc/INSTALL.txt`_ file.

Usage
=====

In your project's root directory, run::

  mkbootstrap

This will generate a ``bootstrap.py`` script and a ``bootstrap.cfg``
configuration file.  Edit ``bootstrap.cfg`` as desired, then run::

  python bootstrap.py

This will create the virtual environment in the root directory for your
project.

For additional bootstrap script options and information see the documentation
and/or run the following commands::

  mkbootstrap --help
  python bootstrap.py --help

Documentation and Support
=========================

- FAQ: See `doc/FAQ.txt`_.
- Changes: See `doc/NEWS.txt`_.
- Known bugs: See `doc/BUGS.txt`_ and the issue tracker at the address below.
- Bug/issue tracker:
  http://bitbucket.org/everyapp/bootstrap/issues?status=new&status=open

Contributing
============

There are still lots of improvements to make on this project.  If you would
like to help out, see the issue tracker, `doc/BUGS.txt`_ and the
`doc/TODO.txt`_ file for details on what is left to do.

Also see the documentation and the `doc/HACKING.txt`_ file for more
information on how to hack on code.

Licence
=======

This distribution is licensed under the `GNU General Public License version 3`_
or later (GPLv3+).  This is free software: you are free to change and
redistribute it under certain conditions.  There is NO WARRANTY, to the extent
permitted by law.  For the full licence text, see `doc/COPYING.txt`_.

The generated bootstrap script (``bootstrap.py``, by default) contains code
from this distribution as well as code from the virtualenv_ project.  It is
therefore also licensed under the GPLv3+ as a derivative work.

Finally, all copyrights and moral rights on the the bootstrap configuration
file that is generated by this distribution (``bootstrap.cfg``, by default) are
explicitly disclaimed.  It is in the public domain as it is intended to be
copied and modified by anyone using this distribution.

Author
======

*everyapp.bootstrap* was created by Krys Lawrence <everyapp at krys ca>.

See the `doc/AUTHORS.txt`_ file for the full list of contributors to this
distribution.

Thanks
======

This project would not be what it is without the efforts of many people.
Acknowledgements for their efforts can be found in the `doc/THANKS.txt`_ file.


.. _virtualenv: http://pypi.python.org/pypi/virtualenv
.. _distribute: http://pypi.python.org/pypi/distribute
.. _setuptools: http://pypi.python.org/pypi/setuptools
.. _pip: http://pypi.python.org/pypi/pip
.. _easy_install: http://packages.python.org/distribute/easy_install.html
.. _`doc/INSTALL.txt`:
  http://bitbucket.org/everyapp/bootstrap/src/tip/doc/INSTALL.txt
.. _`doc/FAQ.txt`:
  http://bitbucket.org/everyapp/bootstrap/src/tip/doc/FAQ.txt
.. _`doc/NEWS.txt`:
  http://bitbucket.org/everyapp/bootstrap/src/tip/doc/NEWS.txt
.. _`doc/BUGS.txt`:
  http://bitbucket.org/everyapp/bootstrap/src/tip/doc/BUGS.txt
.. _`doc/TODO.txt`:
  http://bitbucket.org/everyapp/bootstrap/src/tip/doc/TODO.txt
.. _`doc/HACKING.txt`:
  http://bitbucket.org/everyapp/bootstrap/src/tip/doc/HACKING.txt
.. _`GNU General Public License version 3`: http://gnu.org/licenses/gpl.html
.. _`doc/COPYING.txt`:
  http://bitbucket.org/everyapp/bootstrap/src/tip/doc/COPYING.txt
.. _`doc/AUTHORS.txt`:
  http://bitbucket.org/everyapp/bootstrap/src/tip/doc/AUTHORS.txt
.. _`doc/THANKS.txt`:
  http://bitbucket.org/everyapp/bootstrap/src/tip/doc/THANKS.txt
