To Fork or Not to Fork: Fork Motivations in SourceForge Projects

To Fork or Not to Fork: Fork Motivations in SourceForge Projects

Linus Nyman, Tommi Mikkonen
Copyright: © 2013 |Pages: 9
DOI: 10.4018/978-1-4666-2937-0.ch007
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

A project fork occurs when software developers take a copy of source code from one software package and use it to begin an independent development work that is maintained separately. Although forking in open source software does not require the permission of the original authors, the new version competes for the attention of the same developers that have worked on the original version. The motivations developers have for performing forks are many, but in general they have received little attention. The authors present the results of a study of forks performed in SourceForge (http://sourceforge.net/) and list the developers’ motivations for their actions.
Chapter Preview
Top

Background

When pushed to the extreme, forks can be considered an expression of the freedom made available through free and open source software. A commonly associated downside is that forking creates the need for duplicated development efforts. In addition, it can confuse users about which forked package to use. In other words, developers have the option to collaborate and pool resources with free and open source software, but this is enforced not by free software licenses, but only by the commitment of all parties to cooperate.

There are various ways to approach forking and its study. One is to categorize the different types to differentiate between, on the one hand, forks carried out due to amicable but irreconcilable disagreements and interpersonal conflicts about the direction of the project, and on the other, forks due to both technical disagreements and interpersonal conflicts (Fogel, 2006). Still, the most obvious form of forking occurs when, due to a disagreement among developers, a program splits into two versions with the original code serving as the basis for the new version of the program.

Complete Chapter List

Search this Book:
Reset