Fork (développement logiciel)

Page d'aide sur l'homonymie Pour les articles homonymes, voir fork.
Chronologie montrant les forks de distributions Linux.

Un fork (terme anglais signifiant « fourche », « bifurcation », « embranchement » [1]) est un nouveau logiciel créé à partir du code source d'un logiciel existant lorsque les droits accordés par les auteurs le permettent : ils doivent autoriser l'utilisation, la modification et la redistribution du code source. C'est pour cette raison que les forks se produisent facilement dans le domaine des logiciels libres. En français québécois on emploie le terme de fourche[2].

Un fork peut être bénéfique pour un projet donné lorsque sa gouvernance actuelle conduit à une impasse, sa reprise par un nouveau groupe pouvant le relancer. Il peut aussi être néfaste en provoquant un éparpillement des ressources.

Un fork peut naître à la suite de divergences de points de vue ou d'objectifs parmi les développeurs, ou encore à la suite de conflits personnels (Ex : Iceweasel sous Debian est un fork de Mozilla Firefox). Les projets parents et dissidents peuvent avoir des rapports amicaux (fork amical) ou bien conflictuels (fork inamical). Quels que soient les rapports entre les deux projets, les licences de logiciels libres permettent l'emprunt de code d'un projet par l'autre. Ainsi, les différents BSD s'empruntent régulièrement du code car ils partagent la même licence.

Une illustration de la régulation des projets libres par ce moyen est l'apparition d'au moins trois forks libres pour le projet SourceForge à l'issue de la « dérive de SourceForge »[3] :

Dans d'autres langues