DOI: 10.5281/zenodo.2590519
title: 359,569 commits with source code density; 1149 commits of which have software maintenance activity labels (adaptive, corrective, perfective)

description: This dataset comes as SQL-importable file and is compatible with the widely available MariaDB- and MySQL-databases. It is based on (and incorporates/extends) the dataset "<em>1151 commits with software maintenance activity labels (corrective,perfective,adaptive)</em>" by Levin and Yehudai (https://doi.org/10.5281/zenodo.835534). The extensions to this dataset were obtained using <em>Git-Tools</em>, a tool that is included in the <strong>Git-Density</strong> (https://doi.org/10.5281/zenodo.2565238) suite. For each of the projects in the original dataset, Git-Tools was run in <em>extended</em> mode. The dataset contains these tables: <strong>x1151</strong>: The original dataset from Levin and Yehudai. despite its name, this dataset has only 1,149 commits, as two commits were duplicates in the original dataset. This dataset spanned 11 projects, each of which had between 99 and 114 commits This dataset has <strong>71</strong> features and spans the projects <em>RxJava, hbase, elasticsearch, intellij-community, hadoop, drools, Kotlin, restlet-framework-java, orientdb, camel</em> and <em>spring-framework</em>. <strong>gtools_ex</strong> (short for <em>Git-Tools, extended</em>) Contains <strong>359,569</strong> commits, analyzed using Git-Tools in extended mode It spans all commits and projects from the x1151 dataset as well. All 11 projects were analyzed, from the initial commit until the end of January 2019. For the projects <em>Intellij</em> and <em>Kotlin</em>, the first 35,000 resp. 30,000 commits were analyzed. This dataset introduces <strong>35 new</strong> features (see list below), 22 of which are <em><strong>size</strong></em>- or <em><strong>density</strong></em>-related. The dataset contains these views: <strong>geX_L</strong> (short for Git-<em>tools, extended, with labels</em>) Joins the commits' labels from <em>x1151</em> with the extended attributes from <em>gtools_ex</em>, using the commits' hashes. <strong>jeX_L</strong> (short for <em>joined, extended, with labels</em>) Joins the datasets <em>x1151</em> and <em>gtools_ex</em> entirely, based on the commits' hashes. Features of the <strong>gtools_ex</strong> dataset: <strong>SHA1</strong> <strong>RepoPathOrUrl</strong> <strong>AuthorName</strong> <strong>CommitterName</strong> <strong>AuthorTime </strong>(UTC) <strong>CommitterTime </strong>(UTC) <strong>MinutesSincePreviousCommit</strong>: Double, describing the amount of minutes that passed since the previous commit. Previous refers to the <strong>parent</strong> commit, not the previous in time. <strong>Message</strong>: The commit's message/comment <strong>AuthorEmail</strong> <strong>CommitterEmail</strong> <strong>AuthorNominalLabel</strong>: All authors of a repository are analyzed and merged by Git-Density using some heuristic, even if they do not always use the same email address or name. This label is a unique string that helps identifying the same author across commits, even if the author did not always use the exact same identity. <strong>CommitterNominalLabel</strong>: The same as <em>AuthorNominalLabel</em>, but for the committer this time. <strong>IsInitialCommit</strong>: A boolean indicating, whether a commit is preceded by a parent or not. <strong>IsMergeCommit</strong>: A boolean indicating whether a commit has more than one parent. <strong>NumberOfParentCommits</strong> <strong>ParentCommitSHA1s</strong>: A comma-concatenated string of the parents' SHA1 IDs <strong>NumberOfFilesAdded</strong> <strong>NumberOfFilesAddedNet</strong>: Like the previous property, but if the net-size of all changes of an added file is zero (i.e. when adding a file that is empty/whitespace or does not contain code), then this property does not count the file. <strong>NumberOfLinesAddedByAddedFiles</strong> <strong>NumberOfLinesAddedByAddedFilesNet</strong>: Like the previous property, but counts the net-lines <strong>NumberOfFilesDeleted</strong> <strong>NumberOfFilesDeletedNet</strong>: Like the previous property, but considers only files that had net-changes <strong>NumberOfLinesDeletedByDeletedFiles</strong> <strong>NumberOfLinesDeletedByDeletedFilesNet</strong>: Like the previous property, but counts the net-lines <strong>NumberOfFilesModified</strong> <strong>NumberOfFilesModifiedNet</strong>: Like the previous property, but considers only files that had net-changes <strong>NumberOfFilesRenamed</strong> <strong>NumberOfFilesRenamedNet</strong>: Like the previous property, but considers only files that had net-changes <strong>NumberOfLinesAddedByModifiedFiles</strong> <strong>NumberOfLinesAddedByModifiedFilesNet</strong>: Like the previous property, but counts the net-lines <strong>NumberOfLinesDeletedByModifiedFiles</strong> <strong>NumberOfLinesDeletedByModifiedFilesNet</strong>: Like the previous property, but counts the net-lines <strong>NumberOfLinesAddedByRenamedFiles</strong> <strong>NumberOfLinesAddedByRenamedFilesNet</strong>: Like the previous property, but counts the net-lines <strong>NumberOfLinesDeletedByRenamedFiles</strong> <strong>NumberOfLinesDeletedByRenamedFilesNet</strong>: Like the previous property, but counts the net-lines <strong>Density</strong>: The ratio between the two sums of all lines added+deleted+modified+renamed and their resp. gross-version. A density of zero means that the sum of net-lines is zero (i.e. all lines changes were just whitespace, comments etc.). A density of of 1 means that all changed net-lines contribute to the gross-size of the commit (i.e. no useless lines with e.g. only comments or whitespace). <strong>AffectedFilesRatioNet</strong>: The ratio between the sums of <em>NumberOfFilesXXX</em> and <em>NumberOfFilesXXXNet</em> This dataset is supporting the paper <strong>"<em>Importance and Aptitude of Source code Density for Commit Classification into Maintenance Activities</em></strong><strong>"</strong>, as submitted to the <em>QRS2019</em> conference (The 19th IEEE International Conference on Software Quality, Reliability, and Security). Citation: Hönel, S., Ericsson, M., Löwe, W. and Wingkvist, A., 2019. Importance and Aptitude of Source code Density for Commit Classification into Maintenance Activities. In <em>The 19th IEEE International Conference on Software Quality, Reliability, and Security</em>.
description: The dataset was compressed using 7z and the PPMd algorithm.
description: {"references": ["Stanislav Levin, & Amiram Yehudai. (2017). 1151 commits with software maintenance activity labels (corrective,perfective,adaptive) [Data set]. Zenodo. http://doi.org/10.5281/zenodo.835534", "H\u00f6nel, S., Ericsson, M., L\u00f6we, W. and Wingkvist, A., 2019. Importance and Aptitude of Source code Density for Commit Classification into Maintenance Activities. In The 19th IEEE International Conference on Software Quality, Reliability, and Security."]}