diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b275c23 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..95485a4 --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# Configuration Smells in Continuous Delivery Pipelines: A Linter and A Six-Month Study on GitLab (Replication Package) + +## DATASETS (datasets.zip) + +**Warning** Direct links to the opened issues are omitted according to the double-blind policy. Furthermore, we discourage people browsing issues on GitLab projects that might reveal the author identities. + +- `analyzedprojects.csv`: all starred Gitlab projects that are no forks. +- `dataset.csv`: all projects (from previous set) that have a .gitlab.yml file. +- `rq1-comment-sorting/`: this folder contains all the material related to the card sorting performed on the received comments. The found labels (`card-sorting-labels.csv`) and how the two coders agreed (`card-sorting-agreement.csv`). This folder also contains a summary of the reasons for rejection. +- `rq1-cdsmells.csv`: info about the opened issues and the corresponding reactions/fixes. +- `rq2-precision.csv`: the results of the manual inspection of issues to compute the precision. +- `rq2-recall/`: this folder contains the selected sample of projects (`recall-sample.csv`) and the results of the recall analysis (`recall-results.csv`). +- `rq3-analysis/`: it contains all the files to compute the RQ3 and a summary of RQ3 results. + - `rq3-results.csv`: the list of all anti-patterns having "dataset.csv" projects as input. + - `dataset_yml-update.csv`: "dataset.csv" projects with info about the .gitlab-ci.yml lenght and their (updated) existence on GitLab. +- `tools-to-exclude-fuzzyversion.txt`: the list of the tools excluded from fuzzy-version detection. +- `good_bad_cd-practices.csv`: all the good and bad practices that we collected from the Foundations part of Humble's book. + + +## SCRIPTS (scripts.zip) + +Note: please install all the required dependencies. + +- `study-results.py`: this script analyzes and computes the results of the research questions. +- `likert-scaled-reactions.R`: this script is used to compute Figure 4 (`reactions.csv` that is generated by "study-results.py" must be passed as input file). + + +## CD-Linter Implementation (cd-linter-code.zip) + +It contains the source code of our linter (all packages have been anonymized). diff --git a/cd-linter-code.zip b/cd-linter-code.zip new file mode 100644 index 0000000..886c4ad Binary files /dev/null and b/cd-linter-code.zip differ diff --git a/datasets.zip b/datasets.zip new file mode 100644 index 0000000..475f532 Binary files /dev/null and b/datasets.zip differ diff --git a/scripts.zip b/scripts.zip new file mode 100644 index 0000000..5a8f73e Binary files /dev/null and b/scripts.zip differ