Skip to main content
QUICK REVIEW

[论文解读] On the impact of pull request decisions on future contributions

Damien Legay, Alexandre Decan|arXiv (Cornell University)|Dec 15, 2018
Software Engineering Research参考文献 14被引用 5
一句话总结

本研究探讨了拉取请求(PR)决策——接受、拒绝或不作为——如何影响开源项目中的未来贡献。通过对三个大型GitHub项目(Kubernetes、Rails、Ansible)的PR数据进行生存分析,研究发现较高的PR接受率与未来贡献增加相关,而拒绝则显著降低后续贡献的可能性,凸显了维护者采取响应及时且鼓励性做法的必要性。

ABSTRACT

The pull-based development process has become prevalent on platforms such as GitHub as a form of distributed software development. Potential contributors can create and submit a set of changes to a software project through pull requests. These changes can be accepted, discussed or rejected by the maintainers of the software project, and can influence further contribution proposals. As such, it is important to examine the practices that encourage contributors to a project to submit pull requests. Specifically, we consider the impact of prior pull requests on the acceptance or rejection of subsequent pull requests. We also consider the potential effect of rejecting or ignoring pull requests on further contributions. In this preliminary research, we study three large projects on extsf{GitHub}, using pull request data obtained through the extsf{GitHub} API, and we perform empirical analyses to investigate the above questions. Our results show that continued contribution to a project is correlated with higher pull request acceptance rates and that pull request rejections lead to fewer future contributions.

研究动机与目标

  • 理解先前拉取请求(PR)决策如何影响开源软件项目中的未来贡献行为。
  • 检验PR拒绝或长时间不回应(未回复的PR)是否会使贡献者减少未来PR的提交。
  • 利用实证数据量化PR接受率与拒绝率对持续贡献可能性的影响。
  • 为项目维护者提供有关影响贡献者留存率的社会与行为动态的信息,以优化基于拉取请求的开发工作流。

提出的方法

  • 通过GitHub API从三个大型、长期运行的开源项目(Kubernetes、Rails、Ansible)收集拉取请求数据,并进行实证分析。
  • 应用生存分析技术,对下一次PR提交的时间进行建模,预测变量包括先前的PR接受/拒绝率以及首次贡献以来的时间。
  • 根据PR接受率的百分位数对贡献者进行分类,以评估持续高接受率对后续贡献可能性的影响。
  • 分析PR的“老化”情况,评估随时间推移PR被接受或拒绝的比例,识别出PR更可能被拒绝的临界时间点。
  • 使用风险比(hazard ratios)量化每个预测变量(如接受率、先前PR数量、首次PR以来的时间)对提交新PR概率的影响。
  • 排除那些无限期保持打开状态的PR,以聚焦于具有明确结果(接受/拒绝)的决策,同时承认GitHub API状态准确性可能存在潜在局限。

实验结果

研究问题

  • RQ1RQ1:同一贡献者先前提交的PR如何影响其后续PR的接受与拒绝率?
  • RQ2RQ2:PR的接受或拒绝在多大程度上影响未来贡献的可能性?
  • RQ3RQ3:PR长时间未被回应在多大程度上影响未来的贡献?

主要发现

  • 当贡献者的先前PR接受率较高时,其更有可能提交未来的PR,以Kubernetes为例,接受率每提高10%,提交新PR的风险比提升至1.0774倍。
  • 每位贡献者每提交一个先前PR,其提交下一个PR的风险比增加1.0032倍,表明经验与熟悉度具有累积的积极效应。
  • PR开放时间越长,最终被拒绝的可能性越高;这一转变的临界时间点分别为28天(Ansible)、5天(Rails)和25天(Kubernetes)。
  • PR拒绝会降低未来贡献的可能性,表明拒绝对贡献者具有削弱动机的作用。
  • PR被拒绝的贡献者比接受的贡献者更不可能提交新PR,表明拒绝对留存率有直接的负面影响。
  • 自贡献者首次提交PR以来的时间对后续贡献可能性有轻微的负面影响(每日风险比为0.9984),表明参与度随时间推移呈缓慢下降趋势。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。