Fork (software)

From Wikinfo

Jump to: navigation, search


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

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."

A detailed historical overview of the major instances of forking in Unix-derived software.



References

In other languages