Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

cbrooks (3267)

  (email not shown publicly)

Journal of cbrooks (3267)

Wednesday January 08, 2003
03:19 PM

Implementing a Build and Release System

[ #9848 ]
For the better part of the last year, I have intended to implement a build and release system for the company at which I work. I wanted to do this project the "right" way -- i.e. specify the functionality; design the modules, define the interface to CVS, etc. However, I have finally accepted that I will never start this project (much less finish it) if I build it this way.

So, In the middle of December, I decided to take a different approach. I decided that the only way I would actually finish the project was to break it into small, incremental steps. I wouldn't have to understand exactly how the entire system works before beginning -- it is enough to build the pieces that I do understand, and gradually fill in the gaps.

The project will be successfully completed when the following two criteria are met:
  1. I can copy a stable version of our code base from our staging server to our production server and release it without an interruption in service.
  2. I can roll-back to the previous stable version without an interruption in service.

I then defined the following intermediate versions:

  1. Version 0.0.0: Current codebase
  2. Version 0.2.0: Versioning (01/01/03)
    • I would establish and document a version and build numbering system.
    • I would begin logging version changes
    • I would report the current production version in our script, which is the central dashboard for stats for the Tech Department.
  3. Version 0.4.0: Testing (01/15/03)
    • Run nightly smoke tests
    • Ensure that all tests pass
    • I would report the previous night's testing status in the script
  4. Version 0.6.0: 95% sync-up between production and staging (02/15/03)
    • Sync all CPAN modules on staging and production server
    • Make sure all application files are the same on the staging server and the production server
    • Make sure there are no files that exist on the production server but not the staging server
  5. Version 1.0.0: First automated stable release (03/31/03)
    • Integrate w/CVS tags using trunk and branches methodology
    • Remove deprecated functionality and database tables

I am happy to report that I released version 0.2.0 on 01/03/03, and am proceeding on version 0.4.0.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.