Code Management

cvs log

NEW Log of all changes to the cvs repository in the last 30 days. (not yet updated)

NEW CVS repository ( browser to the NEW cvs repository on www-cdfonline)

ups (unix product setup)

All packages intended for general use must be stored in the appropriate /cdf/code-common/cdfonline area and declared to ups. They should not be stashed in private directories. This means: Products for general use should be stored in the proper public areas and not in private directories. ups provides a means of cataloging different versions both in evolution and operating system dependence. It also provides a standard mechanism for defining required environmental variables for a product. Documentation on ups may be found here. If you would like to create a new product and declare it to ups, see the system manager.

We have completed the migration to a major new version of ups known as ups II aka ups version 4.X.

cvs (concurrent versions system)

All code intended for general use must be maintained in cvs. This package will effectively store all versions of a code package. This allows one to see in detail what changed from one version to the next, and to retrieve old versions if necessary. The cvs repository is currently located at b0dau30:/cdf/code/cvs. Remote access can be made available on request. The repository is maintained by DAQ group. Excellent documentation may be found in $CVS_DIR/doc. A web version is available. Also, a free book is available. A brief tutorial may be found here.

As code evolves, specific releases should be tagged with a release name of the form vMajor_minor (e.g. v2_3). Each release should then be stored in a separate subtree in the /cdf/code-common/cdfonline/product area as described below.

product directory structure

Online products should adhere to the following directory structure:
/cdf/code-common/cdfonline/product/version
				/ups			files required for ups
				/src			source code
				/include		include files
				/classes		java class files
				/doc			documentation
				/os-release/cpu-type	executables,
							shared object libraries,
							object archives, 
							(e.g./IRIX-5.3/mips,
							/VxWorks-5.2/68k,
							/VxWorks-5.3.1/ppc,
							/Win32/x86 etc.)
					

gmake

gmake is recommended for building products. This is a complex package, we will eventually supply a template for guidance. Volunteers?

examples

The FISION and ROBIN products provide examples that adhere to all the above standards.
Last modified by torretta@fnal.gov 11/03/05