Skip to content

preed/quickrelease

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuickRelease
=============

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.

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

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

python setup.py build
python setup.py 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 TestProcess.py into the quickrelease/processes directory and
copy TestSteps.py 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 "__init__.py" (no quotes) in each the processes
      and steps directories.
   d. Copy TestProcess.py into the processes directory
   e. Copy TestSteps.py 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 TestProcess.py and TestStep.py 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.

Documentation
-------------

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

Generated docs are available at:

http://releng-approaches.com/quickrelease/docs/

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.

TODOs
-----

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:

https://github.com/preed/quickrelease/issues

[0] "Quick release harness"... get it?

About

A lightweight harness for defining repeatable, auditable processes

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages