Ho Contribuito ad un Progetto Open Source (Ecco Cosa Ho Imparato)
Sommario
Come mi ha fatto sentire
Ho sempre voluto contribuire ad un progetto Open Source, anche solo per dimostrare a me stesso che ne sono all’altezza. L’ho sempre considerato un modo per mettersi alla prova, uscire dalla propria zona di comfort di progetti personali privati e buttarsi nella codebase scritta da altri!
Essere stato in grado di contribuire per la prima volta ad un progetto Open Source ha dato un grande boost alla mia autostima. Vuol dire che sono pronto, un pezzo del mio codice verrà utilizzato da altre persone oltre che da me. Tutto questo facendo qualcosa per cui ho davvero tanta passione!
Vedere la mia immagine del profilo di GitHub fra tutte quelle degli altri contributori è stato qualcosa di magico che augurerei a tutti quelli che fanno il mio stesso lavoro.
Cosa ho imparato
Durante il processo di contribuzione ho imparato molte cose e l’intera esperienza è stata come una boccata d’aria fresca, non solo perché per me è stata la prima volta, ma anche per le tecnologie utilizzate che si allontanano un po’ da quelle che utilizzo durante il lavoro di tutti i giorni.
All’inizio è stato un po’ sovrastante, ritrovarmi in qualcosa di già costruito e dover impararne i meccanismi, ma grazie alla documentazione del progetto e all’esplorazione della struttura di come sono costruite altre feature simili a quella che ho costruito io, sono riuscito a mettere ordine alla confusione iniziale.
L’IDE è stato molto utile nell’esplorazione del flusso di come i pezzi formano l’intero progetto.
L’esperienza nel complesso è stata molto interessante, ho potuto esplorare un modo diverso di costruzione di un progetto. Certo è vero che è possibile esplorare come i progetti Open Source sono costruiti anche senza contribuire ma farlo ti costringe a esplorarli e penso sia un ottimo esercizio!
Vantaggi
Trovo che contribuire a progetti Open Source sia un ottimo modo per tenersi in allenamento su tecnologie diverse da quelle che si utilizzano tutti i giorni sul lavoro.
Penso anche che sia un modo rapido di contribuire con del valore reale a dei progetti che potrebbero anche essere strumenti che utilizziamo nella vita di tutti i giorni.
Cercare progetti a cui contribuire può farti scoprire nuovi progetti Open Source interessanti che potrebbero aggiungere valore reale nella tua vita.
Io personalmente cerco di scegliere progetti Open Source rispetto a software proprietari perché sono gratuiti e ne ho il controllo totale. Controllo totale che su software proprietari non si possiede. Ad esempio se l’azienda decide che il software che fino ad oggi l’utente ha utilizzato gratuitamente e che ora è sotto abbonamento, l’utente non può farci nulla.
Contribuire a progetti Open Source è visto molto bene nella comunità e anche i datori di lavoro ne tengono conto. Perché è un po’ come lavorare gratuitamente. Se contribuisci attivamente a progetti Open Source, vieni visto come qualcuno che sa già come lavorare.
Come iniziare praticamente
Ecco i passaggi chiave per contribuire ad un progetto Open Source su GitHub.
-
Trovare un progetto
Questo è il punto più complicato per uno sviluppatore alle prime armi perché si tende a voler contribuire a progetti che ci interessano e che utilizziamo nella vita di tutti i giorni ma spesso questi progetti sono codebase di tecnologie che ancora non si conoscono.
Un buon modo per cominciare è guardare su GitHub Good First Issue. Qui vengono riportati progetti che accolgono volentieri sviluppatori alle prime armi che non hanno mai contribuito.
Esistono anche altri siti che hanno l’obiettivo di racchiudere ottimi progetti per chi è alle prime armi:
-
Decidere se contribuire ad un progetto oppure no
Una volta trovato un buon candidato per la vostra contribuzione, ci sono alcuni criteri di valutazione per aiutarvi a decidere se contribuire oppure no:
- Il file
LICENCE
è un ottimo punto di partenza per capire se il progetto è realmente Open Source - Controllare il numero di commit che il progetto conta e quando è stato l’ultimo può aiutare a capire se il progetto è vivo oppure no.
- Anche controllare le
issues
del progetto (ovvero le task non ancora completate) può aiutare a capire se il progetto è vivo e accetta nuovi collaboratori. Ad esempio quanteissues
sono aperte, se sono recenti o se il gestore del progetto risponde con prontezza.
- Il file
-
Leggere la documentazione
Leggere la documentazione è importante per capire come funziona il progetto e come collaborare senza commettere errori.
- Consiglio di partire dal
README.md
e poi leggere sempre più a fondo. - Leggere il
Code of Conduct
vi darà un’idea delle regole generali che chi gestisce il progetto si aspetta da nuovi collaboratori. - Un altro documento importante è la
contribution guide
che potrebbe essere un file o incluso all’interno delREADME.md
del progetto. Questo documento offre istruzioni tecniche per contribuire in modo concreto al progetto.
- Consiglio di partire dal
-
Trova un
issue
su cui lavorareUna volta che il progetto è stato scelto, la prima cosa da fare è trovare un
issue
su cui lavorare, una task da risolvere. Nella tabissues
di un progetto si possono filtrare le task per flag. Consiglio di filtrarle per flaggood first issue
, in questo modo si potranno vedere le task più semplici.Se il progetto vi appassiona e avete delle feature o delle modifiche da proporre, in questa tab potreste aprire un’
issue
voi stessi.Una volta trovata una task, controllate la discussione all’interno e chiedete spiegazioni se qualcosa nella consegna non vi è chiaro.
Assicuratevi che la task non sia già assegnata a qualcun altro prima di proporvi.
-
Lavora alla tua soluzione
Una volta che la task vi è stata assegnata, potrete iniziare a lavorarci.
- La prima cosa da fare è forkare il progetto in modo da averne una copia su cui potete fare tutte le modifiche che volete. Il
fork
del progetto è una copia effettiva di tutto il progetto che sarà sul vostro profilo GitHub e potrete modificarlo come fosse vostro perché non è più collegato in alcun modo al progetto originale. - Una volta forkato il progetto dovrete clonarlo sulla vostra macchina locale
git clone https://github.com/<username>/<githubRepository>
- Creare una nuova branch (se non specificato diversamente nella
contribution guide
). Lavorare su questa branch separata. - Effettuare le modifiche normalmente, committando e pushando dove necessario
- La prima cosa da fare è forkare il progetto in modo da averne una copia su cui potete fare tutte le modifiche che volete. Il
-
Esegui il Pull Request
Una volta pronti, aprire una pull request sul progetto forkato al quale stiamo contribuendo.
Una pull request è la richiesta da parte del contributore di unire le proprie modifiche al progetto originario.
Una volta che il gestore del progetto avrà controllato che il codice scritto dal contributore sia ottimale, accetterà la pull request e il codice sarà finalmente unito al progetto.
Il processo di pull request cambia da progetto a progetto, in alcuni bisognerà rispondere a delle domande, in altri si è liberi di scrivere liberamente una descrizione. Io consiglio di linkare l’
issue
alla quale fa riferimento la pull request.È possibile anche aprire una draft pull request per richiedere un feedback su quello che si è fatto fino ad ora e per far capire che il codice è ancora un work in progress.
Congratulazioni, avete contribuito a rendere il mondo un posto migliore :)
E fidati: anche se può sembrare complicato, ogni piccolo contributo fa la differenza.