Upstream First: Un principio fondamentale di Fedora
Il concetto di "upstream first" è un principio fondamentale all’interno del Progetto Fedora. Plasma la nostra storia, la nostra cultura e il nostro approccio al contributo nell’ecosistema open source. Comprendere questo principio è fondamentale per chiunque voglia contribuire a Fedora e al più ampio ecosistema delle distribuzioni Linux.
L’impegno di Fedora per l’Upstream First
Fedora, come distribuzione Linux, svolge un ruolo unico come integratore di innumerevoli componenti software. Sebbene Fedora sviluppi parte del proprio software, la sua funzione primaria è quella di impacchettare e fornire un’esperienza coerente del sistema operativo basata sul lavoro di numerosi progetti upstream.
Fin dalla sua nascita, Fedora ha sostenuto il principio dell'upstream first. Non si tratta di una politica o di una regola ferrea; è un valore fondamentale intessuto nel tessuto della comunità Fedora. I contributori di Fedora credono che le modifiche e i miglioramenti al software open source debbano, ove possibile, essere ricondivisi con i progetti upstream. Questo assicura che tutti gli utenti di quel software, non solo gli utenti di Fedora, possano beneficiarne. In definitiva, l’obiettivo finale di Fedora è il beneficio dell’utente, e i contributori di Fedora faranno ciò che ritengono sia meglio per l’utente, anche se l’upstream non è d’accordo.
Upstream first è anche un principio ingegneristico pragmatico. Contribuendo con le modifiche upstream, Fedora riduce l’onere di manutenzione a lungo termine del mantenimento di patch specifiche per il downstream. Mantenere set di patch esterni può diventare sempre più difficile man mano che i progetti upstream evolvono. Abbracciare l’upstream first aiuta a garantire la sostenibilità di Fedora e dei suoi contributi.
Questo approccio ha un effetto a catena in tutto l’ecosistema open source. Le modifiche introdotte in Fedora spesso influenzano numerosi progetti downstream che utilizzano Fedora come base. Pertanto, contribuire a Fedora è un modo molto efficace per influenzare e migliorare il panorama open source più ampio, in particolare all’interno dell’ecosistema RPM/Enterprise Linux.
Dando priorità ai contributi upstream, Fedora si allinea con la sua visione di un mondo in cui tutti beneficiano del software libero e open source costruito da comunità inclusive e accoglienti. Questo impegno si estende a tutto il software open source, non solo a Fedora stessa.
Comprendere Upstream e Downstream
Nel mondo dell’open source, i progetti hanno spesso relazioni interconnesse descritte come "upstream" e "downstream". Il progetto upstream è la fonte originale del software, la base su cui altri progetti sono costruiti. I progetti downstream, a loro volta, sono quelli che utilizzano e spesso modificano il software upstream. Pensatelo come un fiume: l’upstream è la sorgente, e i progetti downstream si trovano più a valle lungo il flusso, ricevendo e potenzialmente alterando l’acqua.
Questa metafora è essenziale per comprendere come i progetti open source dipendono e interagiscono tra loro. Diversi modelli di sviluppo incoraggiano vari tipi di relazioni upstream/downstream.
Comunicazione Aperta con l’Upstream
Fedora riconosce l’importanza di una comunicazione chiara e aperta con i progetti upstream. Crediamo nella promozione di solide relazioni con gli sviluppatori e le comunità upstream, e cerchiamo attivamente il loro contributo e feedback.
Fedora è sempre aperta ad ascoltare i progetti upstream su come possiamo migliorare i nostri processi di collaborazione e integrazione. Comprendiamo che l’uso downstream di Fedora possa talvolta creare sfide o attriti per i progetti upstream. Incoraggiamo i maintainer upstream a contattarci se riscontrano problemi o hanno suggerimenti per il miglioramento.
Il nostro obiettivo è lavorare insieme in modo costruttivo per trovare soluzioni che vadano a beneficio sia di Fedora che dei progetti upstream su cui facciamo affidamento. Anche se non possiamo sempre accogliere ogni richiesta upstream, ci impegniamo ad ascoltare, imparare e adattare le nostre pratiche per minimizzare qualsiasi impatto negativo sulle comunità upstream.
La filosofia di lavorare prima upstream non si esaurisce con il solo sviluppo. Comprende anche una relazione produttiva, positiva e rispettosa con i nostri progetti upstream. Le nostre comunità si sovrappongono e vogliamo estendere i nostri valori Fedora al loro progetto tanto quanto faremmo all’interno di Fedora. A tal fine, vogliamo sempre affrontare insieme le sfide tra i progetti e avere linee di comunicazione chiare.
Quando si Verificano Modifiche Downstream
Sebbene Fedora dia priorità ai contributi upstream, ci sono situazioni in cui sono necessarie modifiche specifiche per il downstream. Queste eccezioni non sono contraddizioni del principio upstream-first, ma piuttosto riconoscimenti delle complesse realtà dello sviluppo e della distribuzione del software.
Le ragioni per le patch downstream includono:
-
Rifiuto Upstream: A volte, i maintainer upstream possono rifiutare una patch per vari motivi, anche se è vantaggiosa per Fedora. Fedora potrebbe comunque dover mantenere quella patch per risolvere un problema specifico o un requisito.
-
Progresso Upstream: I progetti upstream possono progredire con nuove funzionalità o modifiche che richiedono un adattamento significativo in Fedora. Fedora potrebbe aver bisogno di effettuare il backport di correzioni o implementare soluzioni temporanee mentre l’adattamento downstream viene completato.
-
Esigenze Specifiche della Distribuzione: Fedora, e le sue distribuzioni downstream come EPEL, possono avere requisiti o vincoli unici che richiedono modifiche downstream. Queste esigenze potrebbero riguardare il supporto hardware specifico, considerazioni sulla sicurezza o l’integrazione con altri componenti di Fedora.
-
Blob Non Liberi: Fedora si impegna a promuovere il software libero e open source e a costruire tutto dal codice sorgente. A volte, i progetti upstream includono blob binari non liberi o precompilati che Fedora deve eliminare con patch per aderire ai suoi principi. Sebbene Fedora possa discutere potenziali correzioni con l’upstream, queste patch potrebbero non essere sempre accettate se non ci sono alternative adeguate o se rimuovono funzionalità.
In queste situazioni, Fedora si impegna a minimizzare l’ambito e la durata delle patch downstream e continua a lavorare per integrare le modifiche upstream ogni volta che sia fattibile. Comprendere le ragioni delle modifiche downstream è essenziale per mantenere la trasparenza e la fiducia all’interno della comunità.
Esempi in Azione
Il principio di "upstream first" si manifesta in vari modi. Ecco un paio di esempi:
-
Miglioramenti nel Packaging: Un packager di Fedora identifica un bug o una funzionalità mancante in una toolchain di build. Invece di creare una patch specifica per Fedora, invia una patch upstream ai maintainer della toolchain. Dopo la revisione e la discussione, la patch viene integrata upstream, a beneficio di tutti gli utenti della toolchain ed eliminando la necessità di una patch downstream per Fedora.
-
Script della Comunità: Un contributore di Fedora sviluppa uno script per analizzare i dati dei pacchetti. Condivide pubblicamente lo script. Un altro contributore migliora lo script con nuove funzionalità e invia una pull request. Il contributore originale integra le modifiche, rendendo lo script migliorato disponibile all’intera comunità.
-
Chiarimenti sulle Licenze: Un packager di Fedora scopre problemi di licenza con un progetto open source, come licenze non chiare o non conformi per gli asset inclusi. Invece di escludere semplicemente il progetto da Fedora, lavora con gli sviluppatori upstream per chiarire o correggere le licenze. Ciò garantisce che il progetto possa essere incluso in Fedora e avvantaggia la comunità open source più ampia promuovendo la conformità delle licenze.
-
Evitare Dipendenze Incorporate: Un packager di Fedora nota che un progetto upstream incorpora una versione specifica di una dipendenza. Invece di utilizzare la dipendenza incorporata, ricompila il progetto per utilizzare la versione della dipendenza a livello di sistema. Ciò garantisce coerenza tra i pacchetti Fedora, consente una rapida distribuzione delle patch di sicurezza e mantiene la compatibilità tra i pacchetti interdipendenti.
-
Test Anticipati e Segnalazione di Bug: Fedora spesso apre la strada all’integrazione di nuove versioni di software e librerie. Questa adozione anticipata consente ai contributori di Fedora di identificare e segnalare bug di build o di compatibilità upstream, in particolare nell’ecosistema Python. Questi contributi vanno a beneficio dell’intera comunità open source garantendo transizioni e aggiornamenti più fluidi per tutti.
Questi esempi illustrano come l’upstream first promuova la collaborazione, la proprietà condivisa e il miglioramento continuo all’interno dell’ecosistema open source. Ti incoraggiamo a pensare a come puoi applicare il principio "Upstream First" nei tuoi contributi a Fedora. Hai una storia su un contributo upstream? Condividila con la comunità!
Want to help? Learn how to contribute to Fedora Docs ›