<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ideawaza.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=124.189.201.107</id>
	<title>IdeaWazaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://ideawaza.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=124.189.201.107"/>
	<link rel="alternate" type="text/html" href="https://ideawaza.com/wiki/Special:Contributions/124.189.201.107"/>
	<updated>2026-09-30T20:47:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://ideawaza.com/index.php?title=Archive:Project_fork&amp;diff=25682</id>
		<title>Archive:Project fork</title>
		<link rel="alternate" type="text/html" href="https://ideawaza.com/index.php?title=Archive:Project_fork&amp;diff=25682"/>
		<updated>2006-10-13T01:23:16Z</updated>

		<summary type="html">&lt;p&gt;124.189.201.107: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{otheruses|fork (disambiguation)}}&lt;br /&gt;
&lt;br /&gt;
In [[software engineering]], a &#039;&#039;&#039;project fork&#039;&#039;&#039;  happens when a developer (or a group of them) takes a copy of [[source code]] from one [[software package]] and starts to independently develop a new package. The term is also used more loosely to represent a similar branching of any work (for example, there are several forks of the English-language [[Wikipedia]]), particularly with [[free software|free]] or [[open source]] software.&lt;br /&gt;
&lt;br /&gt;
A fork that is standard practice in many projects are &#039;&#039;stable&#039;&#039; or &#039;&#039;release&#039;&#039; versions which are modified only for bug fixes, while a &#039;&#039;development&#039;&#039; tree develops new features. This is common practice in the [[Linux kernel]], for instance, but has been misrepresented occasionally in the trade press as the more problematic sort of fork described above.[http://www.groklaw.net/article.php?story=20041121124609671]  Such forks are often referred to instead as &amp;quot;branches&amp;quot; both to avoid the negative connotations of a fork and because it is closer in intent and function to the common software engineering meaning of [[branching (software)|branching]].&lt;br /&gt;
&lt;br /&gt;
==Free software==&lt;br /&gt;
&lt;br /&gt;
In free software, forks often result from a [[schism (religion)|schism]] over different goals or personality clashes. In a fork, both parties assume nearly identical code bases but typically only the larger group, or that containing the original [[software architecture|architect]], will retain the full original name and its associated user community.  Thus there is a reputation penalty associated with forking. The relationship between the different teams can be cordial (&#039;&#039;e.g.&#039;&#039; [[Ubuntu Linux]] and [[Debian]]), very bitter ([[XOrg Server]] and [[XFree86]]) or none to speak of (most branching [[Linux distribution]]s).&lt;br /&gt;
&lt;br /&gt;
Forks are considered an expression of the freedom made available by free software, but a weakness since they duplicate development efforts and can confuse users over which forked package to use.  Developers have the option to collaborate and pool resources with free software, but it is not ensured by [[free software licenses]], only by a commitment to cooperation. That said, many developers will make the effort to put changes into all relevant forks, &#039;&#039;e.g.&#039;&#039; amongst the [[BSD]]s.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[[The Cathedral and the Bazaar]]&#039;&#039; stated in 1997 [http://www.catb.org/~esr/writings/cathedral-bazaar/homesteading/ar01s03.html] that &#039;&#039;&amp;quot;The most important characteristic of a fork is that it spawns competing projects that cannot later exchange code, splitting the potential developer community.&amp;quot;&#039;&#039; However, this is not common present usage.&lt;br /&gt;
&lt;br /&gt;
In some cases, a fork can merge back into the original project or replace it. The [[EGCS|Experimental/Enhanced GNU Compiler System]] was a fork from [[GNU Compiler Collection|GCC]] which proved more vital than the original project and was eventually &amp;quot;blessed&amp;quot; as the official GCC project. Some have attempted to invoke this effect deliberately, &#039;&#039;e.g.&#039;&#039; [[Mozilla Firefox]] was an unofficial project within [[Mozilla]] that soon replaced the [[Mozilla Suite]] as the focus of development.&lt;br /&gt;
&lt;br /&gt;
On the matter of forking, the [[Jargon File]] says:&lt;br /&gt;
:&amp;quot;Forking is considered a [[Bad Thing]] — not merely because it implies a lot of wasted effort in the future, but because forks tend to be accompanied by a great deal of strife and acrimony between the successor groups over issues of legitimacy, succession, and design direction. There is serious social pressure against forking. As a result, major forks (such as the [[GNU Emacs|Gnu-Emacs]]/[[XEmacs]] split, the fissionings of the [[386BSD]] group into three daughter projects, and the short-lived GCC/EGCS split) are rare enough that they are remembered individually in hacker folklore.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It is easy to declare a fork, but can require considerable effort to continue independent development and support. As such, forks without adequate resources can soon become inactive, &#039;&#039;e.g.&#039;&#039; [[GoneME]], a fork of [[GNOME]] by a former developer, which was soon discontinued despite attracting some publicity. Some well-known forks have enjoyed great success, however, such as the [[X.Org Server|X.Org]] [[X Window System|X11]] server, a fork from [[XFree86]] which gained widespread support and notably sped up X development.&lt;br /&gt;
&lt;br /&gt;
==Proprietary software==&lt;br /&gt;
&lt;br /&gt;
In [[proprietary software]], the copyright is usually held by the employing entity, not by the individual software developers.  Proprietary code is thus more commonly forked when the owner needs to develop two or more versions, such as a [[Window (computing)|windowed]] version and a [[command line interface|command line]] version, or versions for differing operating systems, such as a [[wordprocessor]] for [[IBM PC]] compatible machines and [[Apple Macintosh|Macintosh]] computers. Generally, such internal forks will concentrate on having the same look, feel, data format, and behavior between platforms so that a user familiar with one can also be productive or share documents generated on the other. This is almost always an economic decision to generate a greater [[market share]] and thus pay back the associated extra development costs created by the fork.&lt;br /&gt;
&lt;br /&gt;
A notable proprietary fork not of this kind is the many varieties of proprietary [[Unix]] &amp;amp;mdash; all derived from AT&amp;amp;T Unix and all called &amp;quot;Unix&amp;quot;, but increasingly mutually incompatible. &#039;&#039;See&#039;&#039; [[UNIX wars]].&lt;br /&gt;
&lt;br /&gt;
==Other notable forks==&lt;br /&gt;
&lt;br /&gt;
*Most [[Linux distribution]]s are descended from other distributions, most being traceable back to [[Red Hat Linux]] or [[Debian]]. Since most of the content of a distribution is free software, ideas and software interchange freely as is useful to the individual distribution. Merges (&#039;&#039;e.g.&#039;&#039; [[United Linux]] or [[Mandriva]]) are rare.&lt;br /&gt;
*[[Pretty Good Privacy]] was forked outside of the United States to free it from the restrictive laws on the [[export of cryptography|exportation of cryptographic software]].&lt;br /&gt;
*The game [[NetHack]] has spawned a number of variants using the original code, notably [[Slash&#039;EM]], and was itself a fork of [[Rogue (computer game)|Rogue]].&lt;br /&gt;
*[[OpenSSH]] was a fork from [[SSH]], which happened because the license for SSH 2.x was [[non-free]] (even though the source was available), so an older version of SSH 1.x, the last to have been licensed as [[free software]], was forked. Within months, virtually all Linux distributions, BSD versions and even some proprietary Unixes had replaced SSH with OpenSSH.&lt;br /&gt;
*[[DragonFly BSD]] was forked from [[FreeBSD]] 4.8 by long-time FreeBSD developer [[Matt Dillon (computer scientist)|Matt Dillon]], due to disagreement over FreeBSD 5&#039;s technical direction.&lt;br /&gt;
*[[Adempiere]] is a community maintained fork of [[Compiere]] 2.5.3b, due to disagreement with commercial and technical direction of Compiere Inc.&lt;br /&gt;
*[[Enciclopedia Libre]], a fork of the [[Spanish Wikipedia|Spanish-language Wikipedia]], was created to evade the possibility of advertising.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [http://linuxmafia.com/faq/Licensing_and_Law/forking.html Fear of forking] - An essay about forking in [[free software]] projects, by Rick Moen&lt;br /&gt;
* [http://www.dwheeler.com/oss_fs_why.html#forking Forking] ([[David A. Wheeler]])&lt;br /&gt;
* [http://www.sirchin.com Wikipedia Fork].&lt;br /&gt;
* [http://www.usemod.com/cgi-bin/mb.pl?RightToFork Right to Fork] at [[Meatball Wiki]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Software engineering]]&lt;br /&gt;
&lt;br /&gt;
[[cs:Fork]]&lt;br /&gt;
[[de:Fork (Softwareentwicklung)]]&lt;br /&gt;
[[es:Bifurcación (desarrollo de software)]]&lt;br /&gt;
[[fr:Fork]]&lt;br /&gt;
[[it:Fork (sviluppo software)]]&lt;br /&gt;
[[pl:Fork]]&lt;br /&gt;
[[pt:Fork]]&lt;br /&gt;
[[sv:Fork]]&lt;/div&gt;</summary>
		<author><name>124.189.201.107</name></author>
	</entry>
</feed>