Code forking in open-source software: a requirements perspective
Neil A. Ernst, Steve Easterbrook, John Mylopoulos

TL;DR
This paper explores the process of forking open-source projects, specifically analyzing a case where forking was used to meet new requirements, and develops theories about forking in open source software.
Contribution
It provides new insights into the forking process through an exploratory case study and a quantitative analysis of its effectiveness in addressing new requirements.
Findings
Forking successfully addressed new project requirements.
Generated theories about code forking in open source projects.
Quantitative evidence supports forking as a viable strategy for requirement adaptation.
Abstract
To fork a project is to copy the existing code base and move in a direction different than that of the erstwhile project leadership. Forking provides a rapid way to address new requirements by adapting an existing solution. However, it can also create a plethora of similar tools, and fragment the developer community. Hence, it is not always clear whether forking is the right strategy. In this paper, we describe a mixed-methods exploratory case study that investigated the process of forking a project. The study concerned the forking of an open-source tool for managing software projects, Trac. Trac was forked to address differing requirements in an academic setting. The paper makes two contributions to our understanding of code forking. First, our exploratory study generated several theories about code forking in open source projects, for further research. Second, we investigated one of…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Open Source Software Innovations · Software Engineering Techniques and Practices
