Suresoft Workflow
The SURESOFT workflow is based on utilizing well-established practices and tools from the software engineering community that are provided ready to use. In particular, we strive for automation wherever possible in order to speed up the development process and avoid human errors. In the figure below, a high-level view of the workflow is given, which depicts how a set of interlinked stages aids the development of sustainable research software. The first stage depicts an automated development and deployment process, where the continuous integration platform is loosely coupled to a version control system and a bug reporting tool. To start with, academic software developers are responsible for frequently integrating their code (1). Next, the continuous integration platform triggers an automated build process and a suite of tests is executed to verify the new changes did not break the software (2). A second suite of predefined macro tests on the cluster is executed to evaluate the settings and how the software operates under specific conditions (3). Detected issues are reported back to the developer (4). Once the tests are validated and the software works properly, the platform creates an image including the software and its dependencies, which is ready to use. Additionally, a developer edition with integrated tool support to extend the software is generated (5). The latter lowers the entry barrier for external contributors and external evolution of the software. From the researcher perspective, this concept enables the (academic) developers to provide ready to use and install software (6). In case bugs are identified they can be reported via a dedicated service (7). From now on researches (internal or external) can locally execute the software or deploy it on a suitable system, i.e., the cluster that is also used for testing the software. To support research software sustainability, SURESOFT will provide researchers with a long-term preservation service to archive finished studies and the software associated with it. This is achieved by initiating the second stage of the approach. This stage enables researchers to archive their experiments and software artifacts to an archival platform (8). A research data and software repository collects these artifacts once they are validated. Initially and further on experiments of an archived software and its experiments are periodically re-executed to ensure reproducibility is still feasible (9). This platform relaunches the tests and reports results to involved parties.