SCEC Software

From SCECpedia
Revision as of 14:18, 27 July 2010 by Maechlin (talk | contribs)
Jump to navigationJump to search

SCEC Software Release Policies

SCEC software engineering group has established standard practices for use when releasing new versions of publicly distributed scientific software. These practices are based on "best practices" for scientific software development established on SCEC's CSEP project and on SCEC's UseIT SCEC-VDO project.

Every SCEC/CME project that releases SCEC-developed and SCEC-supported software to the community is expected to provide the following materials before the software is released, unless there is a good reason not to follow these guidelines.

Before SCEC/CME software development group releases Each software project must have the following items:

  1. A public SCECpedia entry that provides and overview of the software project, the capabilities of the software, and a software release history.
  2. A private SCECpedia entry that describes the software development information for the project including design overview, data sources, algorithms used, software language, development environment, run-time environment, and required software stack.
  3. Source code under version control.
  4. Issue tracking system (TRAC) site with a trouble ticket system and a connection to source code under version control.
  5. Automated suite of user-oriented acceptance tests typically-based on reference inputs and outputs compared to calculated results.
  6. Automated build and test capability, such as CruiseControl, which will run the acceptance tests without manual interactions.
  7. Assigned Software Version Number using CSEP model of Yr.Mo.Day v10.8.1 with tags in version control system.
  8. Release Description wiki pages containing the following information:
    1. Software or system name and description of purpose of software
    2. Link to public web page describing project
    3. Description of software capabilities
    4. Description of intended users
    5. Version of current release
    6. Overview of changes including new capabilities of current release
    7. Software support email list
    8. Contact for Responsible scientists
    9. Contact for Responsible Software Engineer
    10. How to report software problem or request features
  9. User documentation including web and pdf versions of:
    1. Scientific User Guide to using Software and results
    2. Computer User Guide to Installing and operation software