View Single Post
  #3  
Old 06-01-2006, 04:35 PM
pjaquiery pjaquiery is online now
Registered User
 
Join Date: 01-20-2003
Location: Dunedin, New Zealand
Posts: 114
This is a "can't win" problem. We faced the same issue a number of years ago and settled on an approach where we have a build context for each version of each project. Nothing is shared between contexts except global macros which only provide machine specific information. That means no global subroutines (it was a great and important feature when I asked for it, but now we don't use em).

The benefit is that each project is completely isolated from all other projects so we can fix build issues in one project without affecting any other project. The down side is that issues that are common across projects have to be fixed in each active project.

Where we have a similar class of projects we use a template context and keep that updated with any fixes. We create new projects from the context (using a Perl script to "edit" the files involved as appropriate). When we have to revisit a project, for example when there is a new version to build, we copy the most recent context and update it against the template context. Araxis Merge is a very good tool for merging the changes from the template context.

We arrived at this process after some fraught releases against deadlines where changes happening in other (at the time unimportant) projects broke the important build process in very nasty ways.

Last edited by pjaquiery; 06-01-2006 at 04:37 PM.
Reply With Quote