In the release tree there is a UPS subdirectory at the same level as bin, lib, and include. It contains a setup file that sets the path to contain the bin area of the release and define anything else needed for the global release. From now on we refer to a global release as a project. Thus a project is a set of experiment written products that get linked together into executables, and hence would form a release. For example online and offline could be separate projects.
The setup and unsetup file also have copied into them the
fragments from all of the packages
contained in the release. These files could be built by the script that
makes new releases (newrel), but currently they are build by the release
manager by declaring the release of the project to UPS. Marc Mengel has
developed a utility called
UPS_COMPILE which we use to collect the fragments together into a
single script. The setup file
also declares this release to the experiment UPS database so that users of
the release could say, for example, ``setup
project
[
project-version
]'', as is done in section 3.1.
At this time any external package dependencies could be
defined in the UPS database.