Dataset Open Access

GAP: Forecasting Commit Activity in git Projects

Alexandre Decan; Eleni Constantinou; Tom Mens; Henrique Rocha


MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="http://www.loc.gov/MARC21/slim">
  <leader>00000nmm##2200000uu#4500</leader>
  <datafield tag="041" ind1=" " ind2=" ">
    <subfield code="a">eng</subfield>
  </datafield>
  <controlfield tag="005">20200213192055.0</controlfield>
  <controlfield tag="001">3666048</controlfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Eindhoven University of Technology</subfield>
    <subfield code="a">Eleni Constantinou</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">University of Mons</subfield>
    <subfield code="a">Tom Mens</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">University of Antwerp</subfield>
    <subfield code="a">Henrique Rocha</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">49444568</subfield>
    <subfield code="z">md5:03e68227f5a317c11ab38df201e203fc</subfield>
    <subfield code="u">https://zenodo.org/record/3666048/files/replication.zip</subfield>
  </datafield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2020-02-13</subfield>
  </datafield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">openaire_data</subfield>
    <subfield code="o">oai:zenodo.org:3666048</subfield>
  </datafield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">University of Mons</subfield>
    <subfield code="a">Alexandre Decan</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">GAP: Forecasting Commit Activity in git Projects</subfield>
  </datafield>
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="u">https://creativecommons.org/licenses/by/4.0/legalcode</subfield>
    <subfield code="a">Creative Commons Attribution 4.0 International</subfield>
  </datafield>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2">opendefinition.org</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">&lt;p&gt;This entry contains the replication package for our paper &lt;em&gt;GAP: Forecasting Commit Activity in git Projects&lt;/em&gt; accepted for publication in Journal of Systems and Software.&lt;/p&gt;

&lt;p&gt;Abandonment of active developers poses a significant risk for many open source software projects. This risk can be reduced by forecasting the future activity of contributors involved in such projects. Focusing on the commit activity of individuals involved in git repositories, this paper proposes a practicable probabilistic forecasting model based on the statistical technique of survival analysis. The model is empirically validated on a wide variety of projects accounting for 7,528 git repositories and 5,947 active contributors. We found that a model based on the last 20 observed days of commit activity per contributor provides the best concordance. We also found that the predictions provided by the model are generally close to actual observations, with slight underestimations for low probability predictions and slight overestimations for higher probability predictions. This model is implemented as part of an open source tool, called gap, that predicts future commit activity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replication package&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The model is explained and defined in &lt;em&gt;&amp;quot;notebooks/Survival analysis.ipynb&amp;quot;&lt;/em&gt;. This is a Jupyter notebook created with Jupyter Lab. The dependencies required to run this notebook are listed in &lt;em&gt;requirements.txt&lt;/em&gt; and can be automatically installed using &lt;code&gt;pip install -r requirements.txt&lt;/code&gt;. Consider making use of a virtual environment to ensure a proper replication of the analyses.&lt;/p&gt;

&lt;p&gt;The data used to validate the model can be found in &lt;em&gt;data/cargo.csv.gz&lt;/em&gt;. They were produced with the script &lt;em&gt;data/convert.py&lt;/em&gt; that requires file &lt;em&gt;data-raw/cargo_all_proj_commits_id.csv.gz&lt;/em&gt;. This file was created by retrieving all the commits of all projects hosted on github that are related to a project distributed on Cargo. To identify such projects, we relied on libraries.io dataset. GitHub API was then queried to obtain the username of each author (if available) to allow some basic identity merging task. Data about repositories were extracted from libraries.io 1.4.0 dataset and can be found in &lt;em&gt;data/repositories.csv.gz&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The GAP tool&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GAP is made available on &lt;a href="https://github.com/AlexandreDecan/gap"&gt;https://github.com/AlexandreDecan/gap&lt;/a&gt;&lt;/p&gt;</subfield>
  </datafield>
  <datafield tag="773" ind1=" " ind2=" ">
    <subfield code="n">doi</subfield>
    <subfield code="i">isVersionOf</subfield>
    <subfield code="a">10.5281/zenodo.3666047</subfield>
  </datafield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.5281/zenodo.3666048</subfield>
    <subfield code="2">doi</subfield>
  </datafield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">dataset</subfield>
  </datafield>
</record>
51
19
views
downloads
All versions This version
Views 5151
Downloads 1919
Data volume 939.4 MB939.4 MB
Unique views 4444
Unique downloads 44

Share

Cite as