Skip to content

Software Checklist

The following checklist is to ensure reproducible software. Check the points that apply, enter the name of your respository, and then click the generate button.

software checklist 0

Repository

  • Repository: The source code is available at a public url.
  • Version: The software has a method to support versioning.
  • Contributing: A statement is included about how to contribute to the software.
  • Issues: An issues board is available for a user to ask a question, or request support.
  • Maintainer: At least one primary maintainer is identified.
  • License: An appropriate plain-text LICENSE file is included, ideally OSI approved [ref]

Documentation

  • Installation: The repository includes instructions for installation in the README, including dependencies and operating system requirements.
  • Purpose: A clear purpose or statement of need is defined. A reader knows what the software does.
  • Getting Started: After installation, there is a clear “Getting Started” tutorial or similar.
  • Examples: Are included (via scripts or documentation)
  • Docstrings: If appropriate for the language, docstrings are rendered into code documents.
  • Functionality: All functions, client interactions, and if appropriate, API endpoints, are documented.
  • Living Documentation: A user can easily jump from any documentation page to ask for help, or contribute changes [ref]

Artifacts

  • Containers: The repository provides one or more container recipes (Dockerfile, Singularity) or a pre-built container.
  • Publications: Any relevant citations for papers or external resources are linked in the README.
  • Publications: Any required or supplementary data or similar artifacts are linked.

Continuous Integration

  • Automated Testing: is done with any request for change to the main (typically master) branch.
  • Environments: testing is done across operating systems and environments that cover 80% of use cases.