[cvsnt] Promoting code using Tags?

Williams, Tim WilliamsTim at PRAIntl.com
Thu Feb 19 22:02:17 GMT 2004


Hi folks,

  I am trying to develop a process for our programmers that uses tags to
promote code as it evolves from development to a production release.   I am
currently using a Perl script called from taginfo to restrict tag names to a
specified naming convention and to prevent the move or delete of certain tag
names.  I am hoping to expand the functionality of this script as described
below.

Here is an example scenario:
 
  A new program is started in the project and development moves through a
series of revisions until it is ready for a Quality Assessment.  The
programmer marks their code with a tag called "TEST" to signify that it is
ready for this testing.
 
  A second programmer evaluates the program. If the evaluation is
successful, they apply the tag "QA" to signify that the code has passed a
quality assessment.

  If corrections are needed to the program after its original QA, a new
revision is committed with these changes and the new revision goes through
the "TEST" and "QA" cycle again as the changes are tested and approved.
 
  Implication:  tags "TEST" and "QA" can be deleted and moved.

As the project approaches the first release, more and more files reach the
QA status.  Once all programs have been tagged with "QA", the lead
programmer promotes all code to the first release by assigning a new,
immutable branch tag to all the programs. Lets call it "RELEASE_1_0_0".  I
force tags that start with "RELEASE_" to be immutable (no move, delete, or
rename) in my Perl Script.

At this point I would like my Perl script to only allow the "RELEASE_..."
tag to be applied to revisions  that already contain the "QA" tag (we do not
want to release code that has not been evaluated).   I assume I would have
to execute the status -v command on each file that I am trying to tag, query
the result and only proceed if QA is among the tags on that revision.   Does
anyone have an example of how I could do this in my Perl script?  

Perhaps a larger question is whether or not this a good way to promote code
from development, through validation and release?
  
Thanks in advance for any advice you may have.

Tim
  

Tim Williams                                   
SAS Systems Administrator         
PRA International   
Charlottesville, VA
USA       






More information about the cvsnt mailing list