Difference between revisions of "SCEC Software"

From SCECpedia
Jump to navigationJump to search
Line 16: Line 16:
 
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.  
 
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.
+
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 the SCEC/CME software development group distributes a new version of software, every software project must have the following items:
 
 
Before the SCEC/CME software development group distributes a new version of software, every software project must have the following items:
 
  
 
# A public SCECpedia entry that provides and overview of the software project, the capabilities of the software, and a software release history.
 
# A public SCECpedia entry that provides and overview of the software project, the capabilities of the software, and a software release history.
Line 27: Line 25:
 
# Automated suite of user-oriented acceptance tests typically-based on reference inputs and outputs compared to calculated results.
 
# Automated suite of user-oriented acceptance tests typically-based on reference inputs and outputs compared to calculated results.
 
# Automated build and test capability, such as CruiseControl, which will run the acceptance tests without manual interactions.
 
# Automated build and test capability, such as CruiseControl, which will run the acceptance tests without manual interactions.
# Assigned Software Version Number using CSEP model of Yr.Mo.Day v10.8.1 with tags in version control system.
+
# Release Version assigned using CSEP model of Yr.Mo.x (e.g. v10.8.0) with tags in version control system.
# Release Notes, as wiki pages, containing the following information:
+
# Release Notes, as wiki and pdf, containing the following information:
##Software or system name and description of purpose of software
+
##Software name (or system name) and description of purpose of software
 
##Link to public web page describing project
 
##Link to public web page describing project
 
##Description of software capabilities
 
##Description of software capabilities
Line 39: Line 37:
 
##Contact for Responsible Software Engineer
 
##Contact for Responsible Software Engineer
 
##How to report software problem or request features
 
##How to report software problem or request features
# User documentation including web and pdf versions of:
+
# User documentation, as wiki and pdf, including:
## Scientific User Guide to using Software and results
+
## Computer User Guide to installing, building, verifying, and operating software
## Computer User Guide to Installing and operation software
+
## Scientific User Guide to using software, running reference problem, and interpreting results

Revision as of 14:40, 27 July 2010

SCEC/CME Supported Scientific Software

OpenSHA

CSEP

Broadband Platform

CVM-H

AWP-ODC


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 the SCEC/CME software development group distributes a new version of software, every 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. Automated make capability such as makefile or ant script.
  5. Issue tracking system (TRAC) site with a trouble ticket system and a connection to source code under version control.
  6. Automated suite of user-oriented acceptance tests typically-based on reference inputs and outputs compared to calculated results.
  7. Automated build and test capability, such as CruiseControl, which will run the acceptance tests without manual interactions.
  8. Release Version assigned using CSEP model of Yr.Mo.x (e.g. v10.8.0) with tags in version control system.
  9. Release Notes, as wiki and pdf, containing the following information:
    1. Software name (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
  10. User documentation, as wiki and pdf, including:
    1. Computer User Guide to installing, building, verifying, and operating software
    2. Scientific User Guide to using software, running reference problem, and interpreting results