Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A lightweight harness for defining repeatable, auditable processes
Python

This branch is 1 commit ahead, 85 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
examples
quickrelease
.gitignore
COPYING
MANIFEST.in
README
setup.py

README

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.

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 for the user by
  quickrelease.

* Better documentation on the classes/their use

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

* "Property"-ize some of the classes; some of the classes are ripe to have
  their getter/setters converted into more Pythonesque properties

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

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

[0] "Quick release harness"... get it?
Something went wrong with that request. Please try again.