Fork (sviluppo software)

Un fork (termine inglese che significa "fork", "biforcazione", "branch") designa nel linguaggio quotidiano, un nuovo software creato dal codice sorgente di un software esistente (da non confondere con un fork , set di dati associato a un filesystem oggetto, né con la chiamata di sistema fork che consente a un processo di crearne uno nuovo). La sua esistenza nasce da una scelta politica proveniente da diverse visioni del progetto dei diversi attori che vi partecipano, attore che decide quindi di creare il fork per imporgli le idee che non poteva sottoporre al progetto precedente, una forma di scisma .

I fork sono comuni nel campo del software libero , comprese le licenze che consentono l'uso, la modifica e la ridistribuzione del codice sorgente. L' Office québécois de la langue française raccomanda i termini fork o branch  ; vengono utilizzate anche le espressioni "ramo software" e "ramo software".

Un fork può essere vantaggioso per un dato progetto quando la sua attuale governance porta a un vicolo cieco, la sua acquisizione da parte di un nuovo gruppo può rilanciarlo. Può anche essere dannoso provocando una dispersione di risorse.

Un fork può sorgere come risultato di punti di vista o obiettivi divergenti tra gli sviluppatori, o anche come risultato di conflitti personali (Es: Iceweasel in Debian è un fork di Mozilla Firefox ). I progetti di genitori e dissidenti possono avere relazioni amichevoli ( fork amichevole) o relazioni conflittuali ( fork ostile). Qualunque sia la relazione tra i due progetti, le licenze di software libero consentono il prestito di codice da un progetto all'altro. Pertanto, i diversi BSD prendono regolarmente in prestito il codice gli uni dagli altri, perché condividono la stessa licenza.

Un esempio della regolamentazione dei progetti gratuiti con questo mezzo è la comparsa di almeno tre forcelle libere per il progetto SourceForge alla fine della "deriva di SourceForge":

Spork

Esiste un'altra categoria di forchette , che si chiama "spork" . Questo tipo di fork nasce a seguito di problemi di relazione con il manutentore (il manutentore) di un pacchetto software che rifiuta di conformarsi al ruolo tradizionale del manutentore. Ad esempio, rifiuta di integrare correzioni completamente valide o nuove funzionalità senza fornire il motivo. Lo spork consiste nel prendere a monte il codice sorgente del progetto e applicarvi le legittime patch rifiutate da quest'ultimo.

Uno spork permette di condividere lo sforzo di manutenzione a valle del progetto. Invece di ogni distribuzione che mantiene in modo indipendente un set di patch da applicare al progetto a monte, possono condividere lo sforzo creando un progetto intermedio che riunisce le patch comuni, quindi tutto ciò che le distribuzioni devono fare è gestire le patch specifiche. distribuzione.

Questo è stato particolarmente il caso di progetti come:

Il generale inglese, uno spork ( cucchiaio-forchetta ), è un portmanteau creato da cucchiaio (cucchiaio) e forchetta (gamma). A causa della dualità di funzione dell'oggetto, l'analogia è stata mantenuta con le ramificazioni del computer che mantengono entrambe le funzioni esistenti e ne aggiungono di nuove.

Esempi di forchette

Esempi di "fusioni"

A differenza dei fork , alcuni progetti di software libero decidono di unire la loro base di codice perché condividono obiettivi simili o riescono a conciliare i loro punti di vista.

Esempi di fusioni di software libero:

Note e riferimenti

  1. Forchetta dell'articolo , su wordreference.com
  2. "  fork  " , Le Grand Dictionnaire terminologique , Office québécois de la langue française (accesso 30 agosto 2020 ) .
  3. "  Branching (Wikizionario, informatica)  " .
  4. SourceForge Drift , della Free Software Foundation Europe
  5. Debian sostituisce glibc con eglibc , di Victor Stinner su linuxfr.org , 8 maggio 2009.
  6. go-oo.org
  7. Mambo diventa Joomla , da Linuxfr.org il 7 settembre 2005.
  8. [1] , da Clubic.com il 4 aprile 2013.
  9. Pylons e repoze.bfg si fondono in Pyramid , per linuxfr.org , 17 dicembre 2010.