SCEC Software
From SCECpedia
Jump to navigationJump to searchSCEC 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:
- A public SCECpedia entry that provides and overview of the software project, the capabilities of the software, and a software release history.
- 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.
- Copyright statement included in source code.
- Source code under version control.
- Automated make capability such as makefile or ant script.
- Issue tracking system (TRAC) site with a trouble ticket system and a connection to source code under version control.
- Automated suite of unit tests designed to verify the software was installed correctly and is functional.
- 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.
- 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 and pdf, containing the following information:
- Software name (or system name) and description of purpose of software
- Link to public web page describing project
- Description of software capabilities
- Description of intended users
- Limitations or known bugs
- Version of current release
- Overview of changes including new capabilities of current release
- Software support email list
- Contact for Responsible scientists
- Contact for Responsible Software Engineer
- How to report software problem or request features
- User documentation, as wiki and pdf, including:
- Computer User Guide to installing, building, verifying, and operating software
- Scientific User Guide to using software, running reference problem, and interpreting results