HTTPS clone URL
Subversion checkout URL
A lightweight harness for defining repeatable, auditable processes
logging-logdir-prototype master quickrelease-0.9-branch quickrelease-0.10-branch quickrelease-0.11-branch quickrelease-0.12-branch quickrelease-0.13-branch quickrelease-0.14-branch
Nothing to show
QuickRelease ============= QuickRelease is a lightweight release harness 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  "Quick release harness"... get it?