View
1.652
Download
4
Category
Preview:
DESCRIPTION
Build, test and release your software into the wild. Talk given by Jonathan Oxer at OSCON in July 2007. Release software involves many sub-tasks including building packages for multiple target platforms, running test suites, managing software repositories, and sending notifications. Release Monkey is a project to provide a simplified equivalent to the Debian release infrastructure for use by smaller projects or organizations wanting to release their software for multiple target distributions and architectures. It integrates bug tracking, source code management and package building to take as much load off individual developers as possible. More information at http://jon.oxer.com.au/talks/id/78
Citation preview
ReleaseMonkey
July 25th, 2007O'Reilly Open Source Convention
Portland, Oregon, USA
Build, Test, and ReleaseYour Software into the Wild
Jonathan Oxer <jon@ivt.com.au>
The Problem
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Build-Test-Releaseis expensive
The Problem
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Build-Test-Releaseand Deploy
is really expensive
The Problem
Release Monkey Jonathan Oxer <jon@ivt.com.au>
It's a pain fordevelopers
The Problem
Release Monkey Jonathan Oxer <jon@ivt.com.au>
It's a pain foroperations
The Moving Parts
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Source code managementBug / issue trackingInternal documentationUnit testingFunctional testingDistribution packagingPackage deployment
The Moving Parts
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Automate your world:hooks and APIs
The Moving Parts
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Release Monkeyis glue
SCM / Revision Control
Release Monkey Jonathan Oxer <jon@ivt.com.au>
No SCM?
Go directly to jailDo not pass GO
Do not collect $500
Internal Docs
Release Monkey Jonathan Oxer <jon@ivt.com.au>
JavadocPHPDocDoxygen
Bug Closure
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Check commitmessages for
“Closes: #xxxx”
Build Daemons
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Check commitmessages for
“release” ANDmodified changelog
Build Daemons
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Push job tobuild boxes
Build Daemons
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Use distro packaging
Build Daemons
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Compile,build package,sanity-check
Build Daemons
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Add release-blockerto bug tracker
(QA-Test/Critical)
Build Daemons
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Push to“unstable”
repo
Deploy On Test Servers
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Migrate packageto “testing” repo
Deploy On Test Servers
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Have test serverspull down packages
Automatic Testing
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Run unit tests /functional testsautomatically
Automatic Testing
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Add results tobug tracker,
email developerwith breakage
Manual Testing
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Pre-populateclean data,
give each testertheir own sandbox
Release Approval
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Release prevented byrelease-blockers
Release Approval
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Close the QA bug torelease the package
Production Deployment
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Migrate packagesto “stable” repo
Production Deployment
Release Monkey Jonathan Oxer <jon@ivt.com.au>
Production serverspull stable packages
Thanks:-)
These slides: jon.oxer.com.au/talks
Shameless plug: www.releasemonkey.org
Contact: Jonathan Oxer <jon@ivt.com.au>
Recommended