Skip to content
A lightweight harness for defining repeatable, auditable processes
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.



QuickRelease is a lightweight release harness[0] that aims to provide a
framework and supporting infrastructure to help define a process.

This can be a release process, a QA process... just about any kind of process.

Its design goals are to be:

* Lightweight: you shouldn't have to install _anything_ other than Python to
  use it.

* Out-of-the-way: it provides a structure to write Python to get your work done
  but imposes the least number of limitations on what that code can do or how
  it works.

It's especially useful for developing processes that may be driven by your
continuous integration system; use quickrelease to develop the process and 
steps anywhere, with low setup-costs for engineers, and have your CI system 
call quickrelease when you're ready.


Like most good Python citizens, quickrelease uses setuptools; installation
should consist of:

python build
python install

To get you up and running, there is a TestProcess and TestSteps in the 
examples directory.

You can use them in two ways:

1. Copy into the quickrelease/processes directory and
copy into the quickrelease/steps directory, under your local
python site-packages directory, if you have permissions to do so.

2. Perform the following steps:
   a. Create a directory with a name of your choosing
   b. Under it, create two directories named "processes" and "steps"
   c. Create a file called "" (no quotes) in each the processes
      and steps directories.
   d. Copy into the processes directory
   e. Copy into the steps directory
   f. Set the QUICKRELEASE_DEFINITIONS_PATH environment variable, pointing
      to the directory you created in step 2a.

You should then then be able to run the following to see if it worked:

quickrelease -l
quickrelease -l -p TestProcess

If you'd like to try it out, run:

quickrelease -c examples/sample.cfg -p TestProcess

Then, start modifying and to fit your needs. 

QuickRelease is smart enough to find any new processes and steps that you 
put into these directories, and offer them to you, as long as they're 
derived from quickrelease's Process and Step classes.


QuickRelease documentation is embedded in the source in the form of 
epydoc-style markup.

Generated docs are available at:

In the examples/firefox directory, there is a more complex example of a set of 
processes and steps to download the Firefox 3.6.28 source tarball, build it,
and copy the resulting installer to /tmp.


The following are considered deficiencies in quickrelease and are at the
top of the list to fix.

* Better logging handling; currently, implementors of steps are mostly 
  responsible for their own logging, usually through printing to sys.stderr 
  and hoping the person running the script is capturing the output with
  shell redirects or /usr/bin/tee. This should provided by quickrelease.

* Cygwin support (works on Win32 under MSYS/MozillaBuild)

A comprehensive list of issues being tracked can be found at:

[0] "Quick release harness"... get it?
You can’t perform that action at this time.