Wizard
======

Wizard is the next-generation autoinstall management system.  It
is currently being developed as an in-house tool for scripts.mit.edu,
with a focus on automating the upgrading process using a Git backend.

Ultimately, we would like to see Wizard become a general purpose
web application package manager, with first class support for a variety
of applications under a homogenous interface.

Usage
-----

.. highlight:: sh

Components of Wizard depend on packages and special configuration found
on scripts servers.  As such, the best way to test Wizard is to SSH
into a scripts server::

    ssh scripts.mit.edu
    wizard help

Individual tools that are not scripts-specific, such as ``wizard upgrade``
or ``wizard install``, can be run locally with Python 2.6 and a reasonably
new version of Git.

.. highlight:: python

Development
-----------

The canonical source of the Wizard source code is the directory
:file:`/mit/scripts/git/wizard.git` on AFS.

The live version of the source code lives at :file:`/mit/scripts/wizard`
and should be periodically updated as necessary (use the ``pull.sh`` script; you will
need scripts-root bits to do so).  Documentation lives in
:file:`/mit/scripts/web_scripts/home/wizard`; the post-merge
hook on this Git repository should perform the appropriate rebuild.

Certain commands must be run as root on ``not-backward.mit.edu``
due to our restrictive security policies.  This machine maintains
its own copy of Wizard at :file:`/wizard`.  If you make local changes
to this copy and would like to push them back to the core repository,
you should push to a ``system:scripts-security-upd`` writable
directory in your home directory, and then on a trusted machine
perform the push to the canonical repository.

Table of Contents
-----------------

.. toctree::
    :maxdepth: 1

    setup
    repo
    create
    upgrade
    testing
    plugin
    glossary
    license

Modules
-------

.. toctree::
    :maxdepth: 1

    module/wizard
    module/wizard.app
    module/wizard.app.php
    module/wizard.deploy
    module/wizard.git
    module/wizard.install
    module/wizard.merge
    module/wizard.plugin
    module/wizard.prompt
    module/wizard.resolve
    module/wizard.shell
    module/wizard.sql
    module/wizard.sset
    module/wizard.tests
    module/wizard.user
    module/wizard.util

Indices and tables
------------------

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

