⑂ Open source

Il primo contributo a un progetto open source, passo dopo passo

Dalla scelta del progetto alla pull request accettata: come orientarsi, leggere le regole, proporre una modifica piccola e gestire la revisione.

Contribuire a un progetto open source per la prima volta mette spesso più ansia del necessario. Il timore di sbagliare in pubblico, di disturbare i manutentori o di proporre qualcosa di inutile blocca molte persone competenti. In realtà esiste un percorso abbastanza prevedibile che riduce gli attriti, e quasi tutto dipende da preparazione e misura più che da bravura tecnica.

Scegliere il progetto giusto

Il primo contributo funziona meglio su un software che usi davvero. Conosci già il suo comportamento, hai incontrato i suoi difetti e sai riconoscere se una modifica ha senso.

Prima di investire tempo verifica alcuni segnali:

  • attività recente: commit e risposte alle issue nelle ultime settimane;
  • pull request esterne accettate: se le proposte di persone esterne restano aperte per mesi senza risposta, il progetto non è un buon punto di partenza;
  • tono delle discussioni: leggere qualche thread dice molto su come verrai accolto;
  • etichette per principianti: molti progetti marcano alcune issue come adatte a chi inizia.

Leggere le regole prima di scrivere codice

Ogni progetto maturo ha regole proprie, di solito in tre posti:

  1. CONTRIBUTING.md, che spiega come preparare l'ambiente, eseguire i test e formattare i commit;
  2. il codice di condotta, che descrive i comportamenti attesi;
  3. i modelli di issue e di pull request, che indicano quali informazioni fornire.

Molti rifiuti di contributi alle prime armi non riguardano la qualità del codice, ma il mancato rispetto di queste regole: commit senza il formato richiesto, test non eseguiti, firma DCO mancante, stile diverso da quello del progetto.

Annunciare prima di lavorare

Per qualsiasi modifica che non sia banale, scrivi prima nella issue cosa intendi fare. Un messaggio breve basta:

Vorrei occuparmi di questo problema. Penso di intervenire sulla funzione di parsing delle date aggiungendo il supporto al formato con fuso orario. Va bene come approccio?

Questo evita due situazioni frustranti: lavorare su qualcosa che un'altra persona sta già facendo, oppure scoprire dopo giorni che i manutentori preferiscono una soluzione diversa. Per correzioni minime, come un refuso nella documentazione, si può procedere direttamente.

Preparare la modifica

Il flusso tecnico più comune sulle piattaforme di hosting del codice è questo:

git clone <url-del-tuo-fork>
cd progetto
git remote add upstream <url-originale>
git switch -c correzione-parsing-date
# modifiche, test, commit
git push origin correzione-parsing-date

Poi si apre la pull request (o merge request) verso il repository originale. Alcuni progetti usano invece patch inviate per email o sistemi di revisione dedicati: CONTRIBUTING.md lo dice chiaramente.

Regole pratiche che aumentano molto le probabilità di successo:

  • una modifica, un argomento: non mescolare la correzione di un bug con una riformattazione del file;
  • piccolo è meglio: venti righe vengono revisionate in un giorno, duemila possono restare ferme per settimane;
  • test inclusi: se correggi un bug, aggiungi un test che fallisce senza la tua correzione;
  • descrizione chiara: cosa cambia, perché, come l'hai verificato, quale issue chiude.

Affrontare la revisione

La revisione è la parte che spaventa di più ed è anche quella in cui si impara di più. Alcuni principi:

  • i commenti riguardano il codice, non te; anche richieste numerose sono normali;
  • rispondi a ogni osservazione, anche solo per dire che l'hai applicata;
  • se non sei d'accordo, spiega le tue ragioni con calma e accetta la decisione finale dei manutentori;
  • aggiorna la pull request con nuovi commit o riscrivendo la storia, secondo le preferenze del progetto.

Il silenzio non è un rifiuto. I manutentori sono spesso pochi e sommersi; dopo una o due settimane un promemoria cortese è accettabile, ma non insistere ogni giorno.

Errori comuni da evitare

Errore Conseguenza Alternativa
Pull request enorme al primo contatto Revisione rinviata o rifiutata Dividere in passi piccoli
Modifiche di stile non richieste Diff difficile da leggere Toccare solo ciò che serve
Ignorare i test che falliscono Blocco automatico Eseguire i test in locale prima
Aprire la PR senza issue collegata Contesto mancante Collegare o creare la issue
Lamentarsi dei tempi Clima peggiore Un solo promemoria gentile

Dopo il primo contributo

Una volta accettata la prima modifica, la seconda è molto più facile: conosci il progetto, i suoi strumenti e le persone. Molti manutentori di oggi hanno iniziato con una correzione alla documentazione. Restare, rispondere alle issue di altri e rivedere le pull request altrui è il modo più naturale per guadagnare fiducia e responsabilità.

In sintesi

  • Scegli un progetto che usi e che accetta davvero contributi esterni.
  • Leggi CONTRIBUTING.md, codice di condotta e modelli prima di scrivere codice.
  • Annuncia le modifiche non banali e mantienile piccole, con test e descrizione chiara.
  • Tratta la revisione come una collaborazione e sii paziente con i tempi dei manutentori.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche