In addition to frozen releases with specific versions, SRT structure also supports a more dynamic development environment. A development release is not required, but it is a very useful option for integration, bug detection, and access to the most recent available code. Most often, developers are making changes on different packages in parallel. At various stages during this development, they will want to share there work with others. Making a frozen release for each of these stages would consume a lot of disk space in addition to being a code librarian's nightmare.
In Fig. 2 we show the structure of a development release, which is nearly identical to a frozen release. The difference is that the soft links all point to the ``development'' version of the package in the packages area. The development version of the package was checked out of CVS when the package was first added to development, and periodically the development version is updated via a cvs update command. The cvs update command is a convenient way of distributing development, sending only the code that has changed from the repository to the development release. Since we use client-server cvs, all nodes in the system are equal, and the process of getting development on a central system is no different than the process of getting development anywhere. Note that no development actually takes place in the development package area. Developers are required to develop code in their test releases (see 3) and check that code back in to the repository, so that the code can propogate to all development nodes everywhere.
|
[width=4.5in]development_release.eps |
At some interval on each development node cvs update is done for each package in the release, and then the release is rebuilt with the command gmake. At CDF this happens every morning. Developers can then use the development release to link against.
Although naive users may want to use a frozen release for stability, in a rapidly developing software environment, developers need to use the development release to insure that their additions really work with the most recent software.