Re-execute: dependencies and execution environment
Objective
To ensure the usability of software and the ability to reproduce the same results in experiments, it is important that the software can be easily rebuilt and executed. This ensures that others can use the software effectively and achieve consistent outcomes.
Recommendations
RSMD-7.1
Essential ☆☆☆
Dependencies – describe software dependencies. If possible, provide a machine readable description (e.g. for a package manager or build system used in the specific ecosystem).
RSMD-7.2
Essential ☆☆☆
Operating system – describe the technical requirements of the environment to use the software following community practices of the specific ecosystem.
RSMD-7.3
Important ☆☆
Hardware – describe technical requirements of the hardware platform, following community practices of the specific ecosystem.
RSMD-7.4
Important ☆☆
Build instructions – provide build instructions to ensure compilation and execution. Whenever possible, provide the appropriate build configuration files for the specific ecosystem (Makefile, Ant files, Dockerfile, etc.), and appropriate test cases. Following the ecosystem community standards.
RSMD-7.5
Important ☆☆
User documentation – Provide documentation for the user, including e.g. input/output formats, examples etc. Add a link to the documentation in descriptive metadata.
RSMD-7.6
Useful ☆
Data – provide information on how the data used and/or produced by the software is handled.
If applicable or available, add a sample provenance trace/log of an execution, including pointers to input data and expected results, so that potential reusers can compare and check if the obtained results are correct. This particularly applies to computational workflows & pipelines, an important subclass of research software.