The Repository Help page is intended for CAVS employees and describes the procedure of checking in codes to the repository.
Overview of the Codes Repository
As part of the DOE-SRCLID project, one of the tasks of the Cyberinfrastructure team is to develop a repository of computational modules contributed and shared by the participants of all SRCLID tasks. The computational modules correspond to material models simulation codes, pre- and/or post-processing data analysis and visualization codes, etc. Management of changes to computer programs and any other electronic information is traditionally done using a version control system, which is able to track changes and avoid general chaos particularly for large, fast-changing projects, possibly with many authors. The Cyberinfrastructure-based repository of material models codes is developed using Subversion (SVN), an open source, version control system.
2.1 Introduction to SVN including hints for Windows and Linux
The online SVN Introduction document gives a brief introduction to SVN for persons new to SVN or revision control of software, with links to more detailed documentation such as the Version Control with Subversion Book.
2.2 SVN for Administrators
The online SVN Administration document gives guidance to the local SVN administrators on setting up the repository and preparing for new projects to be imported to the repository.
Sample Templates for Individual Projects
To achieve and maintain consistency in the repository of codes, we provide two project templates:
- ‘basicSkeleton’template for small or very small software projects, and
- 'skeleton' template for larger software projects, with numerous files, possibly of various types.
Both project templates are intended to serve as guidelines for organizing the folder structure of Cyberinfrastructure-based codes repository candidate projects, and suggestions on mapping the project content (documentation, source files, dependence libraries, input/output data, example uses, etc) into the proposed organization structure. The organization structure and content categorization of the two project templates are drawn from common standard practices of software development and software project maintenance. A detailed description of the content of each folder and file can be found in the online documentation.
3.1 Template for simple Individual Projects (download basicSkeleton)
The 'basicSkeleton' template is recommended for small projects that consist of one or two source files and maybe one header file. The tree-like folder structure and the recommended content of each folder of the 'basicSkeleton' project template is shown in the image below. A description of the content of each folder and file can be found in the online documentation.
3.2 Template for large Individual Projects (download skeleton)
For more complex and/or larger projects, we recommend the 'skeleton' template, with the folder organization illustrated in the figure below. Generally, such projects consist of more than one source file (*.c, *.cpp or *.f), several header files (*.h) and a couple of libraries (*.a, *.so or *.dll). It is very likely that such projects require a Makefile, and that the user may need to provide scripts for pre-simulation or post-simulation processing of data. A good practice is organizing these different files into specific directories. A description of the content of each folder and file can be found in the online documentation.
Procedure for checking a new project in the repository
This section describes the procedure and the steps for deploying a new project to the Cyberinfrastructure-based codes repository. The check in procedure will enable the rapid and efficient population of the repository of codes. The steps of this procedure are explained in detail in the online documentation. For your reference, they are also summarized below.
|Steps of the check in procedure||Illustration of the check in procedure steps|