gecko/python/mozboot
Gregory Szorc cb927ab20b Bug 808336 - Part 1: Refactor mach command handler management; r=jhammel
Previously we were tighly coupled with MozbuildObject. This was not in
the spirit of mach being a generic tool. Now, instead of passing multiple
arguments to __init__ of the class providing the mach command we either
pass 0 or 1. The number of arguments is detected when processing the
@CommandProvider decorator. The optional argument is a named tuple
containing mach run-time state.

Capturing of mach command provider information is now captured in a
class (as opposed to an anoymous tuple). We also capture these in a rich
data structure which is passed as part of the run-time data to the
command provider class. This allows mach commands to inspect the mach
environment.

Mach decorators have been moved to mach.decorators. mach.base is
reserved for generic mach data/container classes.

Existing mach command classes derived from MozbuildObject have been
replaced with either object or mozbuild.base.MachCommandBase. This
latter class translates the mach context instance passed to __init__
into the constructor arguments for MozbuildObject.__init__.

Support for registering function handlers with mach has been removed.
All handlers must be inside classes.

--HG--
rename : python/mach/mach/base.py => python/mach/mach/decorators.py
2012-11-06 16:57:41 -08:00
..
bin Bug 803990 - Add Gentoo to mozboot; r=gps 2012-11-01 17:06:00 -07:00
mozboot Bug 808336 - Part 1: Refactor mach command handler management; r=jhammel 2012-11-06 16:57:41 -08:00
README.rst
setup.py

mozboot - Bootstrap your system to build Mozilla projects
=========================================================

This package contains code used for bootstrapping a system to build
mozilla-central.

This code is not part of the build system per se. Instead, it is related
to everything up to invoking the actual build system.

If you have a copy of the source tree, you run:

    python bin/bootstrap.py

If you don't have a copy of the source tree, you can run:

    curl https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py | python -

The bootstrap script will download everything it needs from hg.mozilla.org
automatically!