You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

 

Purpose 

Tag (i.e., call cvs rtag on) a package with a tag of SCons-acceptable form.  Update the package's SConscript  and release.notes files before tagging.

Syntax

Until someone comes up with a better suggestion, let's assume the command is called stag.   Then it may be invoked

stag --help

or

stag  --note="text-for-release.notes" (--major | --minor | --patch | --custom="custom-version-string") [--cvspath="path-relative-root"] [--branch="alternate-branch"] pkgName

Value of --cvspath defaults to pkgName. Value of --branch defaults to MAIN.  If --branch is specified and is anything other than MAIN, --custom must be used and its value must follow the form for tags along a branch, namely  dd-dd-dd-aadd where all the d's are digits and the a's are alphabetic characters, e.g. 01-02-00-gr01.  If --custom is specified for a  main branch tag its value must be of the form dd-dd-dd.

What will happen

In case one of --major, --minor or --patch has been specified, stag will generate the new version string by looking up the "highest" tag along the main branch, incrementing the specified field and zeroing fields to the right, if any, and finally prepending with pkgName- . In the case of a custom string, stag merely prepends pkgName- .

stag will then check out the package into a temp directory (along branch if so specified), update the version string in the package's SConscript file, and add a suitable line to release.notes. A release.notes file which has been modified by stag will have lines with format

    full-version-string date username comment
 

like this: 

GoGui-00-08-07 26-Nov-2008    jrb Support exclude; more informative base inst. display

The complete file looks like this:

** @file release.notes
 * Package GoGui
 * Coordinator: Joanne Bogart
 *
 *                  EOH

 GoGui-00-09-00 05-Dec-2008    jrb Support for supersede directory
 GoGui-00-08-08 01-Dec-2008    jrb Add msg tab for debug info, warnings
    Add edit-file function
 GoGui-00-08-07 26-Nov-2008    jrb Support exclude; more informative base inst. display
 GoGui-00-08-06  25-Nov-2008  jrb Fix for blank-slate use.

If, as in the above case, release.notes has a line containing the toke EOH, stag will insert the new line just below it.  Otherwise the new line will go at the end of the file.

If the package has subpackages, like celestialSources, the new tag will only be applied to the files belonging to the specified package, not to files belonging to children.

Status 

The underlying functionality exists in a class called CvsTag, used by GoGui; only the parts concerning tagging along a branch have not been tested. All that remains is to write the command line wrapper.

  • No labels