The build process

Find general Jiwa support here.

The build process

Postby Mike.Sheen » Fri Feb 22, 2008 9:40 pm

The build process

This post is an attempt to impart to the channel the process we have of building a new release of the software.

Bugzilla

All bugs and enhancements are logged into our Bugzilla database. For those who don't know, bugzilla is an open source bug tracking system developed by Mozilla - the people who developed the FireFox web browser. Bugzilla was developed for tracking the bugs relating to the Mozilla projects - such as Firefox.

You can see our Bugzilla database here : https://bugs.jiwa.com.au

We fix bugs and implement features by modifying the source code. When we've finished making all the changes targetted for the current milestone version, we do a build.

Builds

We have hundreds of projects - a mixture of VB6 and .NET, to compile when we build (309 in total as of 06.05.10 - 247 VB6, 38 .NET).

Not too long ago, this became a far too complex process to do manually, so we employed automatic build software. We currently use Final Builder, but previously used the products Visual Make and Visual Builder. For various reasons, only Final Builder suits our current needs.

Final builder not only compiles the projects into DLL's and .EXE's, but also performs upgrades on the demo database, generates the demo and new database .zip files (which consist of XML definitions of the structure, plus raw bulk copy files of the contents), performs sundry actions such as set the registration number in the demo database, set version numbers against files, copy files around, and run the InstallShield build.

We currently employ Installshield 2008 for our installation build.

When a build is complete, we announce the build - this involves an email to our team stating what the build number is, and which Bugzilla bugs have been addressed.

New bug testing

The support team install the build, and test each bug to ensure the issue or
enhancement had been addressed.

Should any bugs fail, or new ones be introduced, they are logged back into the Bugzilla database accordingly, and then the development team commence the process of fixing these bugs.

We then repeat the build process, and repeat the test cycle.

Regression Testing

Once all bugs have been passed, we then perform regression testing using our library of test plans (presently 90 plans). These plans cover every form and process within the software.

If any test plan should fail, a new bug is created and we repeat the fix - test -build process until none fail.

Then we repeat the test plan process.

When we have a build where no test plans have failed, then we release the software.

Release

Releasing is fairly simple once we have a satisfactory build - the last build is uploaded to our FTP site, the website updated, registration keys generated, master DVD's burnt of the install image and the compile machine virtual machine, and the compile machine is ratched forward to the next
planned version number.

Hopefully this rather brief overview of the build process will help you to understand the process undergone in bringing you the Jiwa product.

I don't think I need to say this, but the build process is exceedingly complex. The number of third party components we have to distribute (which don't always conform to the standards - Crystal Reports, I'm looking at you!), and complexity of Windows Installer, plus making VB6 and .NET play nice make this a challenge far beyond mere mortals.

Hats off to Scott Pearce and Nick Foong for taking this bull by the horns and making it an automated process.
Mike Sheen
Chief Software Engineer
Jiwa Financials

If I do answer your question to your satisfaction, please mark it as the post solving the topic so others with the same issue can readily identify the solution
User avatar
Mike.Sheen
Overflow Error
Overflow Error
 
Posts: 2440
Joined: Tue Feb 12, 2008 11:12 am
Location: Perth, Republic of Western Australia
Topics Solved: 755

Return to Core Product Support

Who is online

Users browsing this forum: No registered users and 1 guest

cron