Fork (software)
From Wikinfo
In software, a project fork or branch happens when a developer (or a group of them) takes code from a project and starts to develop independently of the rest. This is particularly common in open source software (or free software). This schism can be caused because of different goals or personality clashes. Some see forks as a weakness in Open Source, but they can demonstrate the adaptability of the model. The relationship between the different teams can be cordial or very bitter. The term fork can also be applied more generally, for example if a partial or complete set of document/database content is copied, for the purpose of developing a diverging version/project.
In a fork situation, both parties inherit identical intellectual rights but typically only the larger group, or that containing the original architect, will retain the full original name and its associated social capital. Thus there is a reputation penalty associated with forking.
This can happen in closed-source software as well if the rights to the common code are shared, but this is rarer as usually there are strict rules about ownership of the code. More common in closed source software is a developer forking their own code to develop two versions, such as a windowed version and a command line version.
In some cases, a fork can merge back into the original project or replace it. EGCS (Experimental/Enhanced GNU Compiler System) was a fork from GCC which proved more vital than the original project and was eventually "blessed" as the official GCC project.
Some projects attempt internal forks to further development. When the Mozilla suite (Seamonkey) appeared bogged down and overly beholden to Netscape's commercial needs, some Mozilla developers started a separate stripped-down browser project. This developed into Mozilla Firefox, which has been sufficiently successful to be declared the official Mozilla browser.
Contents |
Examples
- Enciclopedia Libre is a fork from the Spanish-language Wikipedia to evade possible advertising.
- Pretty Good Privacy was forked outside of the United States to free it from the restrictive laws on the exportation of cryptographic software.
- XEmacs was a fork from Emacs to support the proprietary Energize environment.
- The split of BSD from AT&T UNIX.
- A closed-source example is the development of the NTFS filesystem by Microsoft based in previous work in HPFS that was left to IBM
- In the wiki world, GetWiki is a fork of MediaWiki, and PhpWiki is a fork of UseModWiki
See also
Further reading
"What is different about a fork is intent. In a fork, the person(s) creating the fork intend for the fork to replace or compete with the original project they are forking."
"Creating a fork is a major and emotional event in the OSS/FS community."
"Forking isn't unique to free software projects, but also takes place in non-profit associations and political and religious movements."
"the right to fork is a powerful check upon the influence of the benevolent dictator"
"Some say the right to fork is a destructive tool, that it should be put on the same shelf as civil war, and that it's far easier to exercise your RightToLeave."
- Fear of Forking essay - Why Linux won't fork 1999-2004, Rick Moen.
A detailed historical overview of the major instances of forking in Unix-derived software.
References
- Adapted from the Wikipedia article, "Fork_(software)" http://en.wikipedia.org/wiki/Fork_(software), used under the GNU Free Documentation License

