Published February 11, 2024 | Version v1

The Role of Surprisal in Issue Trackers - Software and Datasets

  • 1. ROR icon The University of Adelaide

Contributors

Data collector:

  • 1. ROR icon Singapore Management University

Description

This is the software and datasets produced for the paper The Role of Surprisal in Issue Trackers, by J. Caddy, et. al.
    
`all-unique-labels':
All labels extracted from the entire dataset of issues from the 1270 GitHub repositories analysed. There are three versions, two that have the manually ranked priorities assigned to select issues that have some meaning akin to "priority" and "importance".

`calculated-values-combined':
The calculated values for each of the ~340,000 issues analysed. These values correspond to the variables measured to test each hypothesis.

`calculate-values':
The python script that calculates the majority of the values found in `calculated-values-combined'.
The first input required is a list of issue urls which are those found when navigating GitHub issues, which are of the format:
https://api.github.com/repos/{repository author}/{repository name}/issues/{issue number}
The second input required is the CSV included with the data set, `all-unique-labels-prioritised.csv', which is the CSV containing all labels and their text and priority ratings as the two columns.
The output is a CSV file, one row per issues, with the columns:
``author_name, repository_name, issue_number, reopenings, unique_participants, interactions, open_duration, reactions, label_priority, mentions_in_releases''
Calls to GitHub are rate-limited, and this script will detect when that threshold has passed, pause, and automatically continue when able.

`issue-resolutions-sample':
Contains the issue data used to calculate the inter-issue-resolution-times and labels for analysis.

`issue-sample-surprisal-ratings':
Tabular data containing the human and computer determined surprisal values, for comparison.

`issue-sanitiser':
The script used to sanitise the issue titles and descriptions, before feeding them into the statistical language model.
The script was written for fish shell, but does not use any 'special' functionality of it, which means it can easily be used by other shells.
The input required is a text file with the raw issue description texts separated by line.
The script will create several intermediate files, after each step of processing. This is only for testing purposes/investigation, for example, if you want to see the results when words are not stemmed (prefixed with `.5'), but the final file is the one used in the study.

`label-priorities-and-iirt':
Issues from the total set that have labels corresponding to a priority, that have authors with multiple contributions to a repository were extracted and their inter-issue-resolution-time was calculated and stored in this file.

`main':
The rust code used to calculate the surprisal values for issues. It consumes sanitised issue text, builds the statistical language model and calculates the resulting probabilities used to determine the surprisal for issues. This file contains many to-dos, intended to guide the project in the event that it was successful and could be developed further.
The program, when compiled with the Rust compiler, takes input from stdin, typically the output from `issue-sanitiser.fish'. The operation mode `stdin' is required for this. The additional `gitlog' mode is experimental and allows you to calculate the surprisal values for git logs when a path to a local git repository is given.

`random-unique-label-sample-ratings':
The sample of issues given to separate researchers to determine the rater agreement when assigning priority ranks to labels.

`top-repos-sorted':
A listing of the repositories used in the paper, consisting of the 5000 top-starred repositories on GitHub at the time of data collection.

Files

all-unique-labels-prioritised.csv

Files (31.6 MB)

Name Size Download all
md5:cd9a33977f81176d95d234c3cad83c70
19.6 kB Preview Download
md5:2b9f1fe45665984804e8df2ee5581158
242.4 kB Download
md5:64e5f5691e5078bb3ff13e31037db4d8
498.9 kB Preview Download
md5:0b7903bff2bd64ca574c1bb32c67a2e9
4.6 kB Download
md5:da7524987d66e53e147d368f391575c3
23.3 MB Preview Download
md5:497e080ae36a8fc7cee061919299861a
4.0 MB Preview Download
md5:c0282da0a37c1ec42906a30fe66ec3e1
17.6 kB Preview Download
md5:1927a466042a5e6e847ad4eb94ec8534
3.0 kB Download
md5:5146490be781036d5efb56a74e622977
3.0 MB Preview Download
md5:26d30d4b4ed5af88c7e9718a024dcefe
9.8 kB Download
md5:7b71f5226acc41a7d87dd4a024b37485
39.1 kB Download
md5:5a360c3250426974c978e19038be94f7
541.5 kB Preview Download

Additional details

Software

Programming language
Rust , Python
Development Status
Concept