为什么拉取请求会陷入沉寂?揭示开源代码审查中贡献完成的障碍
Why Do Pull Requests Go Silent? Uncovering the Barriers to Contribution Completion in Open-Source Code Review
- University of Saskatchewan(萨斯喀彻温大学)
机构由 AI 辅助整理,请以论文原文为准。
AI总结:
本研究通过分析14,234个停滞PR和164,562条评论,揭示PR停滞主要源于沟通协调问题和技术依赖障碍,并提出类型感知分诊等干预措施。
AI中文摘要:
拉取请求(PR)通过支持分布式代码审查和开源项目中的协作贡献,构成了基于拉取的软件开发的基础。然而,许多拉取请求在集成之前就变得不活跃,最终被放弃或关闭,浪费了贡献者和维护者的精力。尽管先前的研究已经考察了拉取请求的放弃和审查延迟,但对于与不活跃相关的贡献类型、讨论层面的障碍以及停滞后的协作模式,我们知之甚少。我们调查了哪些类型的拉取请求最常停滞,从作者和审查者的角度来看不活跃发生的原因,以及停滞如何与后续贡献者和审查者的参与相关联。我们使用陈旧机器人工作流,分析了来自19个热门GitHub仓库的14,234个停滞的拉取请求和164,562条审查评论。一个基于LLM的投票分类器按贡献类型对拉取请求进行分类,同时将定量分析与一般性和内联审查讨论的定性编码相结合。功能增强和问题修复类拉取请求占比最大,合计超过已分类停滞拉取请求的77%。一般性评论将停滞主要归因于沟通和协调的破裂,包括缺乏互动、反馈延迟和后续跟进不明确。内联评论显示,不活跃并不总是反映参与度下降:许多拉取请求被技术或依赖问题所阻塞,包括检查失败、配置问题、兼容性担忧和环境不匹配。只有39.56%的贡献者后来提交了另一个拉取请求,审查者与相同贡献者的重新参与率约为21%。拉取请求的不活跃是一个社会技术协调问题,涉及沟通、技术就绪性、审查所有权和自动化实践。我们建议采用类型感知的分诊、更清晰的审查反馈、明确后续行动的归属、持续集成阻塞管理以及原因感知的陈旧机器人干预措施。
英文摘要:
Pull requests (PRs) underpin pull-based software development by enabling distributed code review and collaborative contribution in open-source projects. Yet many become inactive before integration and are eventually abandoned or closed, wasting contributor and maintainer effort. Although prior work has examined PR abandonment and review delays, less is known about the contribution types, discussion-level barriers, and post-stalling collaboration patterns associated with inactivity. We investigate which PR types most often stall, why inactivity occurs from authors' and reviewers' perspectives, and how stalling relates to later contributor and reviewer engagement. We analyzed 14,234 stalled PRs and 164,562 review comments from 19 popular GitHub repositories using stale-bot workflows. An LLM-based voting classifier categorized PRs by contribution type, while quantitative analysis was combined with qualitative coding of general and inline review discussions. Feature-enhancement and issue-fixing PRs formed the largest share, together exceeding 77% of classified stalled PRs. General comments linked stalling mainly to communication and coordination breakdowns, including missing interaction, delayed feedback, and unclear follow-up. Inline comments showed that inactivity does not always reflect disengagement: many PRs were blocked by technical or dependency issues, including failing checks, configuration problems, compatibility concerns, and environment mismatches. Only 39.56% of contributors later submitted another PR, and reviewer re-engagement with the same contributors was approximately 21%. PR inactivity is a socio-technical coordination problem involving communication, technical readiness, review ownership, and automation practices. We recommend type-aware triage, clearer review feedback, explicit ownership of next actions, CI blocker management, and cause-aware stale-bot interventions.