Fork

Définition, exemples et bonnes pratiques

À retenir

  • Le fork crée un nouveau projet distinct basé sur le code d'un autre.
  • C'est un droit fondamental dans l'univers de l'Open Source.
  • Les deux projets peuvent ensuite évoluer dans des directions totalement différentes.

Un fork est la création d'un nouveau projet informatique à partir du code source d'un projet existant. C'est un peu comme si vous preniez la recette de cuisine d'un ami pour l'adapter à votre goût et en faire votre propre spécialité : les deux versions partagent la même base, mais évoluent désormais séparément de façon indépendante.

Étymologie

Emprunté à l'anglais fork (fourchette ou bifurcation), le terme évoque l'image d'une route qui se sépare en deux branches. En informatique, il est apparu avec les systèmes Unix pour désigner une fonction qui permet à un programme de se dupliquer, avant de s'étendre à la gestion de projets collaboratifs.

Exemples d'usage

  • MariaDB est un fork de la base de données MySQL, créé pour garantir que le projet reste libre après le rachat de l'original par une grande entreprise.
  • Brave ou Edge sont des navigateurs web qui sont des forks techniques basés sur le projet Chromium (la base libre de Google Chrome).

Cas d'usage

Le fork intervient principalement dans le monde du logiciel libre. Il est utilisé lorsqu'un groupe de développeurs n'est plus d'accord avec la direction d'un projet, lorsqu'une entreprise rachète un logiciel et change ses règles, ou simplement pour expérimenter des nouveautés sans risquer de casser la version originale.

Bonnes pratiques

Avant de lancer un fork, vérifiez toujours la licence du logiciel d'origine pour vous assurer que vous avez le droit de redistribuer le code. Sur le plan communautaire, il est souvent conseillé de discuter avec les auteurs originaux avant de scinder le projet, car gérer un fork demande beaucoup de temps et d'énergie pour maintenir le code à jour.

Synonymes

bifurcation scission ramification dérivation

Antonymes

fusion intégration merge

Conseil

Si vous débutez sur GitHub ou GitLab, n'ayez pas peur de cliquer sur le bouton 'Fork'. C'est la méthode standard et sécurisée pour copier un projet vers votre propre compte afin de l'étudier ou de le modifier sans jamais abîmer le travail de l'auteur original.

Questions fréquentes

Quelle est la différence entre un fork et une branche ?

Une branche est une division temporaire à l'intérieur d'un même projet pour ajouter une fonctionnalité. Un fork est une séparation plus radicale qui crée un nouveau projet autonome.

Est-ce que forker est synonyme de copier ?

Oui, mais c'est une copie qui 'vit' par elle-même. Dans le développement moderne, on forke souvent un projet sur GitHub pour pouvoir y contribuer ensuite via une demande de fusion (Pull Request).