Versions Compared

Key

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

...

Script tagCollector.py has been committed to CVS (grits-tools/python/tagCollector.py). This page has been updated for version 1.16. The only difference between 1.16 and 1.14 was to add version information of the script itself to the output and the only difference between 1.14 and 1.13 was a bug fix. There have been no interface changes since 1.13.

The most recent version of the tagCollector.py script should be used. On SLAC linux, the most recent version is maintained at

19  in which a new option, --branch, was added. 

The most recent version of the tagCollector.py script should be used. On SLAC linux, the most recent version is maintained at

/afs/slac.stanford.edu/g/glast/ground/scripts/tagCollector.py

Note
titleInterface changes from previous versions

Version 1.19 adds a new option, --branch, making it possible to create new tags along a branch. 

Version 1.13 accepts the value NONE for the --parent 13 accepts the value NONE for the --parent option.  In this case, --new=HEAD is not allowed, but you can specify a positive integer, e.g. --new=123 in order to create a tag for HEAD 123.

Version 1.11 has the additional flag --fake. The options --real and --verbose are now also true flags, taking no argument.

...

  1. Make a new release tag which is identical to current HEAD build
  2. Make a new HEAD, not based on any previous HEAD.
  3. Make a new HEAD by changing some package tags, adding new packages or removing packages as compared to current HEAD
  4. Make a new release tag along a branch. The only files which need to be on the branch are the top-level files packageList.txt, ChangeLog and, if it exists, containerNotes.txt.

There must be a file packageList.txt, listing all packages and versions belonging to the build at the top level (There must be a file packageList.txt, listing all packages and versions belonging to the build at the top level (e.g. ScienceTools-scons/packageList.txt). It is used to determine what gets the new tag in cases 1., 2. and 24. above. For 3., tagCollector.py will update the packageList.txt belonging to the old HEAD appropriately .

...

CVS Version: $Id: tagCollector.py,v 1.16 19 2011/07/07 0028 18:5632:18 37  jrb Exp $
See also https://confluence.slac.stanford.edu/x/GgFyBQ  

Wiki Markup
Options:
  \-h, \--help         show this help message and exit
    \-p PARENT, \--parent=PARENT
                                              HEAD or NONE. Someday also (branched) release tag to
                      act as base \[default: HEAD\]
    \-n NEWTAG, \--new=NEWTAG
                                               Specify tag to be created: HEAD (interpreted as next
                                              available HEAD), positive integer (number of HEAD), or
                                               literal tag name. Required option

Wiki Markup
  \-ub UPGRADEFILEBRANCH, \--upgrade_listbranch=UPGRADEFILEBRANCH
                        FileBracnh listingalong packageswith to upgrade,make add or remove; used
 tag. packageList.txt,
                       onlycontainerNotes.txt whenand creatingChangeLog awill newcome HEAD \[default: upgrade.txt\]
from this
    \-r, \--real                   Really do it branch. \[default: not setMAIN\]
  \-fu UPGRADEFILE, \--fakeupgrade_list=UPGRADEFILE
            Just print what we \*would\* do \[default: yes\]
  \-v, \--verbose             IfFile setlisting showpackages allto cvsupgrade, commandadd output \[default: not set\]
In this version PARENT can only be HEAD on NONE.
or remove; used
                        only when creating a new HEAD \[default: upgrade.txt\]
  \-r, \--real           Really do it \[default: not set\]
  \-f, \--fake          Just print what we \*would\* do \[default: yes\]
  \-v, \--verbose     If set show all cvs command output \[default: not set\]

In this version PARENT can only be HEAD on NONE.

Constraints on arguments and options

  • The single argument is required and must be equal to one of the known container names, currently ScienceTools, GlastRelease, CHS, ASP, TMineExt, GRBAnalysis, and Toy.
  • When --branch has value other than "MAIN", must also specify --parent=NONE
  • When --branch has value other than "MAIN", --new cannot have value HEAD nor can it be an integer; it must be the complete literal tagname to be applied.
  • The only acceptable literal tagnames if --branch is unspecified or has value "MAIN" have the form containerName-dd-dd-dd or containerName-dd-dd-dd-wwdd where containerName is one of the known container names, each d is a digit and each w is a letter, digit, or the underscore character. Examples are TMineExt-01-02-03 or GlastRelease-17-35-23-gr03
  • If --branch has been specified and does not have value "MAIN" the requirements on tagnames are slightly looser: in the above templates one may insert any alphanumeric string immediately after containerName (before the first hyphen). Example: GlastReleasePass7-17-35-04-gr01

Here is a sample upgrade file:

...

No Format
jrb@noric11 $ python tagCollector.py --new=HEAD --fake ScienceTools
tagCollector.py  was invoked with argument  ScienceTools  and options
parent= HEAD
new= HEAD
upgrade_list= upgrade.txt
branch= MAIN
for_real= False
verbose= False

CVS version:  $Id: tagCollector.py,v 1.1619 2011/07/0728 0018:5632:1837 jrb Exp $
 
about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs  rlog  -h ScienceTools-scons/SConstruct
lastHeadTag is:  ScienceTools-HEAD-1-896
 
about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs  rlog -h ScienceTools-scons/packageList.txt
 
about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs  rlog -h ScienceTools-scons/packageList.txt
 
about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs  co -r ScienceTools-HEAD-1-896 ScienceTools-scons/packageList.txt
Found changed package:  tip
Found changed package:  dataSubselector
 
about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs update -A ScienceTools-scons/packageList.txt
 
about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs commit -m "tagCollector.py updating pkg list"
        ScienceTools-scons/packageList.txt
Just fooling; it wasn't for real
 
about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs  rlog -h ScienceTools-scons/containerNotes.txt
No containerNotes.txt file found for  ScienceTools-scons
 
about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs rtag ScienceTools-HEAD-1-897 ScienceTools-scons/ChangeLog
Just fooling; it wasn't for real
 
about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs rtag ScienceTools-HEAD-1-897 ScienceTools-scons/packageList.txt
Just fooling; it wasn't for real
 
about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs rtag -r xmlBase-05-05-10 ScienceTools-HEAD-1-897 xmlBase
Just fooling; it wasn't for real

about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs rtag -r astro-03-11-11 ScienceTools-HEAD-1-897 astro
Just fooling; it wasn't for real

?(followed by many similar lines tagging all the individual packages comprising ScienceTools.
The last one is always SConsFiles:)

about to issue command
cvs -d /nfs/slac/g/glast/ground/cvs rtag -r SConsFiles-00-12-01 ScienceTools-HEAD-1-897 SConsFiles
Just fooling; it wasn't for real

...

The function to make a release tag from HEAD is similar except that no new packageList.txt file needs to be generated.  Just use the one from the parent tag as is. For the case --parent=NONE, use the most recent packageList.txt (along the specified branch if the --branch option has been used).

packageList.txt

This file lists all packages comprising the container, somewhat analogous to the CMT requirements file for the container package. It is not normallly edited by hand.

...