Source Git

source-git è l’attuale nome in codice di un’attività che copre molteplici aree: l’automazione e il miglioramento del packaging, la stabilizzazione di Rawhide e l’avvicinamento dei progetti upstream a Fedora. Nel nostro mondo, un source-git è un repository contenente i sorgenti upstream e le ricette di build per Fedora (file spec, patch downstream come commit aggiuntivi). Il repository contiene branch git che tracciano le rispettive versioni di Fedora. Idealmente, il source-git coincide con il repository upstream.

Dichiarazione di intenti

Puntiamo a quattro obiettivi:

  1. Avvicinare i progetti upstream a Fedora.

  2. Migliorare la stabilità di Fedora Rawhide.

  3. Migliorare la stabilità di Fedora Rawhide.

  4. Automatizzare il pull dei nuovi rilasci upstream in Fedora.

Sei interessato? Continua a leggere!

Cosa e perché?

  • Il nostro intento è quello di avvicinare le comunità downstream e upstream: fornire feedback da downstream a upstream (es. "Ciao <progetto upstream Y>, il vostro ultimo rilascio non funziona in Fedora Rawhide, interrompe il funzionamento di <Z>, ecco un link ai log."). Tutto questo può essere automatizzato.

  • Una delle implicazioni è che diventa banale proporre modifiche a monte (upstream) o fare il cherry-pick di correzioni da upstream a downstream.

  • La stabilità di Fedora Rawhide è ora all’ordine del giorno: unire, compilare e comporre solo componenti che si integrano bene con il resto del sistema operativo. Basta con build di composizione corrotte o aggiornamenti che interrompono il funzionamento del resto del sistema operativo.

  • Sviluppare in dist-git è macchinoso. Modificare file di patch e spostare continuamente archivi tarball non è divertente. Perché non lavorare direttamente con il codice sorgente? Con il source-git, avrai a disposizione un repository upstream con il contenuto di dist-git inserito in una directory dedicata.

  • Utilizziamo tecniche di sviluppo moderne come le pull request, la code review, le moderne piattaforme git, l’automazione e la continuous integration. Abbiamo i computer per svolgere tutti i compiti banali. Perché noi, in quanto esseri umani, dovremmo fare un simile lavoro?

  • Vogliamo che dist-git sia "un database del contenuto di una release" piuttosto che un luogo in cui svolgere il lavoro vero e proprio. D’altra parte, potrai comunque interagire con dist-git allo stesso modo. Non ti priveremo di questo. Il source-git vuole essere l’alternativa moderna e migliore.

  • Scaricare e convalidare automaticamente i nuovi rilasci upstream. Questa può essere un’operazione banale, perché i manutentori dovrebbero sprecare il proprio tempo in un lavoro che può essere automatizzato.

Stato attuale

Al momento puntiamo a un proof of concept. Una volta completato, creeremo una demo e la presenteremo alla DevConf.cz.

Sappiamo che questa pagina è piuttosto concisa. Non appena avremo maggiori informazioni da condividere (specialmente quando il PoC sarà completato), aggiorneremo questa pagina wiki. Nel frattempo, vi invitiamo a consultare la repository GitHub per informazioni sempre aggiornate.