Versions Compared

Key

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

...

  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 HEADMake a new HEAD, not based on any previous HEAD

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. and 32. above. For 3., tagCollector.py will update it appropriately for 2the packageList.txt belonging to the old HEAD appropriately .

At some point would like to add ability to make a new tag along a branch by updating, adding or removing packages relative to an existing tag on that branch.

...

Wiki Markup
jrb@noric11 $ python tagCollector.py \--help
Usage:  tagCollector.py \[options\] container,
   e.g.
python tagCollector.py \--new=HEAD ScienceTools

See also https://confluence.slac.stanford.edu/x/GgFyBQ  


python tagCollector.py \--new=HEAD \--real ScienceTools
python tagCollector.py \--parent=NONE \--new=35 GlastRelease
python tagCollector.py \--new=ScienceTools-09-24-00 ScienceTools

See also https://confluence.slac.stanford.edu/x/GgFyBQ  

Wiki Markup
Options:
  \-h, \--help
Wiki Markup
Options:
  \-h, \--help         show this help message and exit
  \-p PARENT, \--parent=PARENT
          &nbsp show this help message and exit
    \-p PARENT, \--parent=PARENT
                      HEAD or (branched) release tag to act as base
                   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
                       HEAD or specific                         literal tag toname. create;Required required option
  \-u UPGRADEFILE, \--upgrade_list=UPGRADEFILE
                        File listing packages to upgrade, add 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.

Here is a sample upgrade file:

...

The overall strategy in the make-new-HEAD-from-previous case shown above is

  • check out version of packageList.txt belonging to parent tag
  • merge changes requested in upgrade file into packageList.txt; commit new packageList.txt
  • tag top-level files (packageList.txt, ChangeLog, containerNotes.txt) belonging to no subpackage with new HEAD tag
  • tag each package listed in packageList.txt with new HEAD tag, saving SConsFiles for last

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

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.

...