Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • make a temporary tag which is identical to the most recent HEAD tag
  • if a package is to be added, issue a cvs rtag command to tag it with the temp tag
  • if a package is to be updated, first remove the temp tag from the module, then add it to the specifed package tag version.
  • make a new tag with the official name (next HEAD) from the temp tag; remove the temp tag

An alternate approach is used in the RMViewer tag collector:  it checks out the release and uses cvs tag rather than cvs rtag.  This has the advantage that the files actually are there so one can use file system commands to learn things about the release rather than the rather awkward cvs rlog but there is presumably a performance disadvantage, especially for remote users.

The function to make a release tag from HEAD is much simpler: just issue a cvs command to make the new specified tag from all files bearing the latest HEAD tag.

Still To Do

  • test adequately
  • add ability to make release tags along a branchadd as output a file which lists all the packages and their tags belonging to the new tag just created.  The file probably should go at the top level (e.g., in the ScienceTools-scons directory).  One possibility in the new-HEAD case is to create it (information would come from parsing output of a suitable cvs rlog command or commands) it  after the temp. tag has been made, submit to CVS, move temp tag to the new version, then make the final new HEAD tag. However, if we plan to also support tag collecting from RMViewer, it would have to go through a similar procedure.

...

  • add ability to make release tags along a branch

Sticky Points

The way CVS tagging is currently set up (in particular, the script $CVSROOT/CVSROOT/tagger), you would have to be logged in as glast or glastrm to run the script in "for real" mode.

Certain assumptions are hard-coded in the script when, ideally, they should come from the RM database: for example, which container packages are active, exact format of tags. These things don't change very fast, if at all, but if they do, someone will have to remember to update the script.