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

Compare with Current View Page History

Version 1 Next »

Summary

The immediate goal to is put source for ScienceTools_User (somewhat reduced, non-ROOT version of the complete ScienceTools now built at SLAC) in GitHub as well as continuing to maintain it in CVS.  Developers would work from GitHub. Changes there would be automatically reflected to CVS, allowing Release Manager to continue to be triggered by new tags in CVS. Subsequently we might want to

  • Keep the larger distribution of ScienceTools in GitHub as well
  • Keep GlastRelease in GitHub
  • Modify Release Manager to work off of GitHub (or use something else altogether for builds, testing and distribution)

The first hurdle is our relatively complex package organization.   

Background

Subpackage structure and sharing

For purposes of this discussion ScienceTools_User (ST_U), ScienceTools (ST) and GlastRelease (GR) will be known as containers; the taggable components will be called subpackages.  Apart from the special subpackage containerSettings ST_U is a proper subset of ST. Certain subpackages of ST and ST_U also belong to GR.  ST_U doesn't officially exist yet, but all the issues discussed would apply to ST_U as well as ST.

Physical structure

This sharing is handled in the CVS repository by means of sym links.   There are top-level directories ScienceTools-scons and GlastRelease-scons.  There are also top-level directories for subpackages such as astro, Likelihood, etc.   In almost all cases the subpackage directories are sym-linked into the container directory. Shared subpackages like astro and celestialSources are sym-linked into both.  The one exception is containerSettings. Each container has its own version of this subpackage, which is a regular subdirectory of the container directory.  When you check a container out of CVS, sym links are followed, so you end up with all source files in regular subdirectories.

Subsubpackages

There are two subpackages (irfs, celestialSources) which have subsubpackages (that is, separately taggable physical subdirectories). celestialSources belongs to both ST and GR.  SCons and Release Manager recognize subpackages and subsubpackages by the existence of a file called SConscript.  In addition to specifying to SCons how to build the package, this file also contains version information.

Handling subsubpackages

CVS tags apply to a directory (optionally recursively); git supports tags only of entire repositories.  Hence we surely need separate repositories for subpackages (and some way to reassociate them at checkout time when someone wishes to check out the entire container).   

  • No labels