Skip to content

SMART-Dal/Ansible-Reproducibility

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A study on reproducibility smells

This study, first, identifies such programming practices that we refer to as reproducibility smells by conducting a comprehensive multi-vocal review and propose a first-ever validated catalog of reproducibility smells for IaC scripts. We implement a tool viz. REDUSE to identify reproducibility smells in Ansible scripts. Furthermore, we carry out an empirical study to reveal the proliferation of reproducibility smells in open-source projects and explore correlation and co-occurrence relationships among them.

We elaborate on the contents of the individual folder of this repository below.

Multi-vocal literature review(mlr)

This folder contains the following files.

  • grey-literature-source.xlsx: This Excel file contains all the information about the grey literature resources. It has following sheets.
    • Links: contains information about the type of the documents, content of the document, what IaC language or concept it is related to and the corresponding link to the document.
    • Reviewer-1-QA: contains the marking assessment of each document from the reviewer-1 for the grey literature.
    • Reviewer-2-QA: contains the marking assessment of each document from the reviewer-2 for the grey literature.
    • Grey Literature Sources: contains the source numbers, best practice/ bad practice that each of the literature are mentioning and a summary.
    • Search Queries: shows that how many documents we gain for each search query, how many filtered with the exclusion/inclusion criteria and number of final documents.
    • smell-reference: shows a list of references that each of the smells are extracted from the them.
    • Quality Assessment final: contains the final and merged marking assessment of each document from the both reviewers for the grey literature.
  • smell-examples.txt: contains the example code for each of the reproducibility smell discussed in the paper.

REDUCE - a reproducibility smells detection tool (reduse)

The tool is designed to detect reproducibility smells in Ansible scripts. You can provide your ansible script in .yml format and get output of the tool as a csv file containing task name, task number, smell name, reason of having the smell on the task.

Build/Configure

  • This tool requires Python 3.8+
  • Install the packages from reduse\src\requirements.txt

Run the tool

Run the detector.py file in the reduse\src folder with the path to your desired Ansible yaml file.

python detector.py '/path/to/file/folder

Or, add the path to the desired ansible files or repositories to the script and then execute

/bin/bash run_detector.sh

Manual validation (reduse\manual-validation)

This folder contains all the scripts i.e., the subject systems and detection smells by the tool as well as by the evaluators.

  • scripts: Selected scripts for evaluation
  • results: Detected smells by human evaluators and the tool. Each subfolder contains two kinds of files. Files ending with manual are produced by human evaluators whereas files ending with tool are generated by the tool.

Empirical study (empirical-study)

Analysis scripts (analysis-scripts)

This folder contains all the scripts that are used to calculate the metrics required for the empirical study, such as the smell frequency, correlation, and confusion matrix.

Resources (resources)

  • extracted-repos: this folder contains the list of the open-source repositories from nine categories hosted by the Ansible Galaxy platform.
  • extraction-scripts: scripts to check the criteria and clone the repositories from the Ansbile Galaxy platform.
  • repos: contains Ansible scripts for all the selected repositories used for the empirical studies.

Qualitative analysis (qualitative-analysis)

  • Ansible-galaxy-issues.pdf: contains links to the repositories, issues, and the justification for the issue related to reproducibility smell from the qualitative analysis section.
  • Qualitative-analysis.xlsx: contains information such as repository name, issue number, root cause, smell description, and link of the issue for all the issues considered for this analysis.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages