Products

Deliverables shall be in the form of UPS products. ENCP and Enstore shall be distributed via UPD. The distribution of PNFS is described below.

Deliverables shall have a directory structure which is a sub-tree of the development tree. Files in the distribution shall be in directory which corresponds to the file's place in the development tree.

The deliverable tree shall not include CVS directories.

PNFS product

One copy of this software is needed per ENSTORE installation.

PNFS is supplied by DESY. DESY allows us to use it on site, and would like to supply any off site users with this software.

It is desirable to package PNFS as a UPS product. The actual requirements on PNFS packaging are TBD. It is TBD whether there is compile time configuration required with this package.

Enstore product

The Enstore product shall contain the Enstore servers + the mover + ENCP.

The Enstore product shall contain user documents and administration documents.

ENCP product

The ENCP product shall contain files sufficient to run, install and maintain the ENCP program. ENCP may be merged into FMSS. The ENCP product shall not require a python interpreter as a run-time UPS dependency.

The ENCP product shall contain ENCP user documentation.

Enstore Directory Names

Below is a summary of the directories in the Enstore directory tree. The kinds of files in each directory are specified below.
       Development Tree              Enstore              ENCP 
                                     Distribution         Distribution
       root+
           |
	   + man + TBD                yes                 yes
	   + doc +                    yes                 yes
	         + WWW                yes                 yes
		 + src		      yes		  yes
           + bin                      yes                 yes
           + sbin                      no                  no
           + lib                      yes                  no
           + src                       no                  no
	   + tests +                   
	           + regression       yes                  no
		   + unit              no                  no
           + templates                 no                  no
	   + ups                      yes                 yes
	   + etc		      yes		  yes
	   + modules		      ?                     /

  1. The man directory shall hold all man pages. The purpose of the subdurectories is to support pointing the MANPATH directory into enstore distributions.
  2. The doc directory shall hold all document source that needs to be processed by a documentation processor to make a deliverable. The doc directory shall hold all documents which are meant to _not_ be web-visible, except for man pages.
  3. The doc/WWW directory shall hold all web-visible documentation.
  4. The bin directory shall hold all executables visible in any deliverable.
  5. The sbin directory shall hold executables which are not in _any_ deliverable.
  6. The lib directory shall hold any object, object file, archive or shared object files.
  7. The src directory shall contain python language source.
  8. The modules directory holds c language source for python C extensions.
  9. The tests/regression Directory shall hold working regression tests
  10. The tests/unit directory archives other unit tests for the project. Not all unit tests need be working at any given time.
  11. The templates directory holds templates for various source files.
  12. The ups directory holds files which support Fermilab UPS.

    File naming conventions

    1. Python file names are lower case with words seperated by underscore.
    2. Python files containing server code shall end in "_server.py".
    3. Python files containing client stub code shall end in "_client.py"
    4. Other python files shall have descriptive names.
    5. Makefiles shall be named Makefile.