![]() |
Using CVS at the ING |
The naming convention is of the form ING_README.module-name.lsm where the module-name is that of the current module.
The file format is that of the Linux Software Map Entry Template (Release: 09AUG94) as this contains most of the information needed. an example is shown:-
Begin3 Title: The name of the package. Please use the same title for the LSM entry of each version, so as to make it easier to find entries for new versions of packages that already have one in the data base. Version: Version number or other designation. Use a date if nothing else is appropriate. Entered-date: Date in format ddMMMyy of when the LSM entry was last modified, where dd is 2-digit day of month, MMM is ALL-CAPITALIZED first 3 English month letters, and yy is last two digits of the year in the Gregorian calendar. Note that you should fill in both Version and Entered-date. Description: Short description of the package. Keywords: A short list of carefully selected keywords that describe the package. Author: Original author(s) of package. In RFC822 format (i.e., something that will fit into a From: or To: header of a normal Internet mail message). Preferred format: mailname@site.domain.top (Full name) Other formats will be converted to this format, if time and energy of LSM maintainer will allow it. Multiple persons may be given, one per line. Maintained-by: Maintainer(s) of ING port. Same format as Author. Primary-site: A specification of on which site, in which directory, and which files are part of the package. First line gives site and base directory, the rest give the sizes and names of all files. Names are either relative to the base directory, or full pathnames. If the ftp site does not use Unix style pathname syntax, then the full pathname must be given every time. The pathname must not contain spaces. Example: Primary-site: sunsite.unc.edu /pub/Linux/docs 10kB lsm-1994.01.01.tar.gz 997 lsm-template 22 M /pub/Linux/util/lsm-util.tar.gz The file size may be given in bytes (no suffix), kilobytes (k, kb), or megabytes (M, MB). The suffix may be separated with spaces, and may be in upper case or lower case. The size can be left off. For very large packages that are contained within one directory (say, a distribution), only the directory need be listed. Adding a trailing slash makes it clear that it is a directory. The filename should be the final location, not an "incoming" directory. If you don't know the final location, at least make a good guess (since files _will_ be moved from incoming, it is not a good guess). Alternate-site: One alternate site may be given. It should not be a site that mirrors the primary site (these are best found from a list of mirror sites), but should be one that maintained separately. More sites carrying the package can be found using Archie. The syntax is> the same as for Primary-site, but if there is only one line (i.e., no files are specified), they are assumed to be the same as for Primary-site. Alternate-site: ftp.funet.fi /pub/OS/Linux/doc/lsm Alternate-site: foo.bar /pub/lsm 11 kB lsm-1994-01-01.cpio.Z 0.1 kB lsm-template.Z 22 MB lsm-util.tar.gz Original-site: The original package, if this is a port to Linux. Syntax is as in Primary-site, with the same handling of missing filenames as in Alternate-site. Platforms: Software or hardware that is required, if unusual. A C compiler or floppy disk would not be unusual, but a Python interpreter or tape drive probably would be. If the requirements are evident from the description, it need not be repeated here. Copying-policy: Copying policy. Use "GPL" for GNU Public License, "BSD" for the Berkeley style of copyright, "Shareware" for shareware, and some other description for other styles of copyrights. If the use or copying requires payment, it must be indicated. End
A copy of the file will be sent to CFG when the program is installed into the CSG executable directory.
All 3rd Party Software will be imported into the "external" directory in the CVS repository.
Two other directories have been created for the Instruments Group (instproj) and the Detectors Group (ccdproj). With the intention of the use of CVS for their software repository.
From the projects root directory, the following module directory's should be available:-
/<module>/
|
|--bin/
|
|--src/
|
|--lib/
|
|--etc/
|
|--man/
| |
| |--man1/
|
|--include/
|
|--test/
|
|--doc/
| |
| |--html/
|
|
|--Makefile
(or Imakefile)
The bin directory will contain the executable program for testing, it is included as a placeholder and will normally be an empty directory in the CVS repository (Mandatory).
The src directory will contain the source files. these will be C, Fortran, shell or tcl programs as required (Mandatory).
A lib directory is only required if special libraries are required (Desirable), or the source code produces a library for Installation (Mandatory).
An etc directory is intended to contain files relating to the executable configuration of the program (Desirable).
The man directory will contain the man pages for the application. (Mandatory).
The include directory is required for the included header files (Desirable).
The test directory will contain files used for testing the program or library (Mandatory).
The doc directory will contain other documentation as required, for example a html directory is shown for any web pages that may be written (Desirable).
The Makefile (or Imakefile) is required for compilation of the sources and installation of binary executable files or shell scripts (Mandatory).
/<module>/
|
|--submodule1/
|
|--submodule2/
|
|--doc/
| |
| |--html/
| |
| |--word/
| |
| |--tex/
| |
| |--pdf/
|
|
|--Makefile
(or Imakefile)
The Makefile (or Imakefile) is again Mandatory for Release of the sub modules.
The doc directory only requires a suitable sub directory if the documentation exists.
As an example for the C language the following is suggested for the C source file and C header file.
In the C source file the construct 'const char id_header_c[] = "@(#)$Id:$";' is intended to embed the information into the binary executable file for system debugging. See the manual page for ident(1) for further information (Mandatory).
In the C header file the construct '#pragma ident "@(#)$Id:$"' is also intended to embed the information into the binary executable file for system debugging (Mandatory).
Source code files for other languages will also contain suitable constructions to facilitate system debugging and user information (Mandatory).
Checkout the unixstarterkit module from CVS for a complete module
example.
The command :- cvs checkout unixstarterkit
will give it to you.
Check with the CVS manager to define a suitable module name for your project.
Ensure that the file permissions on the directory you are in and subdirectories and files are drwxrwxr-x failure to do this will not allow members of your group to checkout your source code.
All files that are created during compilation should be removed from the directories. For example all object file, and the compiled executable program. If you use Imake and have an Imakefile then the Makefile should be removed. Any files created when the executable program is run should be removed. The intention is to create a module in CVS which contains only the most necessary files.
Use the File->Import command in the Module Browser window as this will also update the CVSROOT module file to generate the information displayed on the Module Browser window. The Module Browser window is started from the main TkCVS window under the File->Browse Modules selection
You may check that this is correctly imported by using the module browser window.
Note that clicking on the + sign in the window will expand the directory listing to show all the modules. Your new imported module should be in this list.
When tagging files in CVS the tag word RELEASE has been reserved. Use tag words appropriate to your use ie TEST-1-1 or VERSION_2-0-b.
It is not necessary to delete incorrectly tagged sources, merely update your version or test tag number.
The intention when checking in source code is to ensure that if the source code requires compilation or assembly that this has been achieved without fatal error. So please ensure that your C program/Fortran program etc. will compile before check-in.
It is not necessary to tag the code every time, but when a complete set of sources produce a working program suitable for testing.
This can be checked by using the groups command.
Source code may be shared by all users at ING by importing the source files as a member of the ingcvs group, see the chgrp(1) command.