162306a36Sopenharmony_ci.. include:: ../disclaimer-ita.rst
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci:Original: :ref:`Documentation/process/6.Followthrough.rst <development_followthrough>`
462306a36Sopenharmony_ci:Translator: Alessia Mantegazza <amantegazza@vaga.pv.it>
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci.. _it_development_followthrough:
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci=============
962306a36Sopenharmony_ciCompletamento
1062306a36Sopenharmony_ci=============
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciA questo punto, avete seguito le linee guida fino a questo punto e, con
1362306a36Sopenharmony_cil'aggiunta delle vostre capacità ingegneristiche, avete pubblicato una serie
1462306a36Sopenharmony_ciperfetta di patch.  Uno dei più grandi errori che possono essere commessi
1562306a36Sopenharmony_cipersino da sviluppatori kernel esperti è quello di concludere che il
1662306a36Sopenharmony_cilavoro sia ormai finito.  In verità, la pubblicazione delle patch
1762306a36Sopenharmony_cisimboleggia una transizione alla fase successiva del processo, con,
1862306a36Sopenharmony_ciprobabilmente, ancora un po' di lavoro da fare.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciÈ raro che una modifica sia così bella alla sua prima pubblicazione che non
2162306a36Sopenharmony_cici sia alcuno spazio di miglioramento.  Il programma di sviluppo del kernel
2262306a36Sopenharmony_ciriconosce questo fatto e quindi, è fortemente orientato al miglioramento
2362306a36Sopenharmony_cidel codice pubblicato.  Voi, in qualità di autori del codice, dovrete
2462306a36Sopenharmony_cilavorare con la comunità del kernel per assicurare che il vostro codice
2562306a36Sopenharmony_cimantenga gli standard qualitativi richiesti.  Un fallimento in questo
2662306a36Sopenharmony_ciprocesso è quasi come impedire l'inclusione delle vostre patch nel
2762306a36Sopenharmony_ciramo principale.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciLavorare con i revisori
3062306a36Sopenharmony_ci=======================
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciUna patch che abbia una certa rilevanza avrà ricevuto numerosi commenti
3362306a36Sopenharmony_cida parte di altri sviluppatori dato che avranno revisionato il codice.
3462306a36Sopenharmony_ciLavorare con i revisori può rivelarsi, per molti sviluppatori, la parte
3562306a36Sopenharmony_cipiù intimidatoria del processo di sviluppo del kernel.  La vita può esservi
3662306a36Sopenharmony_ciresa molto più facile se tenete presente alcuni dettagli:
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci - Se avete descritto la vostra modifica correttamente, i revisori ne
3962306a36Sopenharmony_ci   comprenderanno il valore e il perché vi siete presi il disturbo di
4062306a36Sopenharmony_ci   scriverla.  Ma tale valore non li tratterrà dal porvi una domanda
4162306a36Sopenharmony_ci   fondamentale: come verrà mantenuto questo codice nel kernel nei prossimi
4262306a36Sopenharmony_ci   cinque o dieci anni?  Molti dei cambiamenti che potrebbero esservi
4362306a36Sopenharmony_ci   richiesti - da piccoli problemi di stile a sostanziali ristesure -
4462306a36Sopenharmony_ci   vengono dalla consapevolezza che Linux resterà in circolazione e in
4562306a36Sopenharmony_ci   continuo sviluppo ancora per diverse decadi.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci - La revisione del codice è un duro lavoro, ed è un mestiere poco
4862306a36Sopenharmony_ci   riconosciuto; le persone ricordano chi ha scritto il codice, ma meno
4962306a36Sopenharmony_ci   fama è attribuita a chi lo ha revisionato.  Quindi i revisori potrebbero
5062306a36Sopenharmony_ci   divenire burberi, specialmente quando vendono i medesimi errori venire
5162306a36Sopenharmony_ci   fatti ancora e ancora.  Se ricevete una revisione che vi sembra abbia
5262306a36Sopenharmony_ci   un tono arrabbiato, insultante o addirittura offensivo, resistente alla
5362306a36Sopenharmony_ci   tentazione di rispondere a tono.  La revisione riguarda il codice e non
5462306a36Sopenharmony_ci   la persona, e i revisori non vi stanno attaccando personalmente.
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci - Similarmente, i revisori del codice non stanno cercando di promuovere
5762306a36Sopenharmony_ci   i loro interessi a vostre spese.  Gli sviluppatori del kernel spesso si
5862306a36Sopenharmony_ci   aspettano di lavorare sul kernel per anni, ma sanno che il loro datore
5962306a36Sopenharmony_ci   di lavoro può cambiare.  Davvero, senza praticamente eccezioni, loro
6062306a36Sopenharmony_ci   stanno lavorando per la creazione del miglior kernel possibile; non
6162306a36Sopenharmony_ci   stanno cercando di creare un disagio ad aziende concorrenti.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciQuello che si sta cercando di dire è che, quando i revisori vi inviano degli
6462306a36Sopenharmony_ciappunti dovete fare attenzione alle osservazioni tecniche che vi stanno
6562306a36Sopenharmony_cifacendo.  Non lasciate che il loro modo di esprimersi o il vostro orgoglio
6662306a36Sopenharmony_ciimpediscano che ciò accada.  Quando avete dei suggerimenti sulla revisione,
6762306a36Sopenharmony_ciprendetevi il tempo per comprendere cosa il revisore stia cercando di
6862306a36Sopenharmony_cicomunicarvi.  Se possibile, sistemate le cose che il revisore vi chiede di
6962306a36Sopenharmony_cimodificare.  E rispondete al revisore ringraziandolo e spiegando come
7062306a36Sopenharmony_ciintendete fare.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciNotate che non dovete per forza essere d'accordo con ogni singola modifica
7362306a36Sopenharmony_cisuggerita dai revisori.  Se credete che il revisore non abbia compreso
7462306a36Sopenharmony_ciil vostro codice, spiegateglielo.  Se avete un'obiezione tecnica da fargli
7562306a36Sopenharmony_cisu di una modifica suggerita, spiegatela inserendo anche la vostra soluzione
7662306a36Sopenharmony_cial problema.  Se la vostra spiegazione ha senso, il revisore la accetterà.
7762306a36Sopenharmony_ciTuttavia, la vostra motivazione potrebbe non essere del tutto persuasiva,
7862306a36Sopenharmony_cispecialmente se altri iniziano ad essere d'accordo con il revisore.
7962306a36Sopenharmony_ciPrendetevi quindi un po' di tempo per pensare ancora alla cosa. Può risultare
8062306a36Sopenharmony_cifacile essere accecati dalla propria soluzione al punto che non realizzate che
8162306a36Sopenharmony_cic'è qualcosa di fondamentalmente sbagliato o, magari, non state nemmeno
8262306a36Sopenharmony_cirisolvendo il problema giusto.
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciAndrew Morton suggerisce che ogni suggerimento di revisione che non è
8562306a36Sopenharmony_cipresente nella modifica del codice dovrebbe essere inserito in un commento
8662306a36Sopenharmony_ciaggiuntivo; ciò può essere d'aiuto ai futuri revisori nell'evitare domande
8762306a36Sopenharmony_ciche sorgono al primo sguardo.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciUn errore fatale è quello di ignorare i commenti di revisione nella speranza
9062306a36Sopenharmony_ciche se ne andranno.  Non andranno via.  Se pubblicherete nuovamente il
9162306a36Sopenharmony_cicodice senza aver risposto ai commenti ricevuti, probabilmente le vostre
9262306a36Sopenharmony_cimodifiche non andranno da nessuna parte.
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ciParlando di ripubblicazione del codice: per favore tenete a mente che i
9562306a36Sopenharmony_cirevisori non ricorderanno tutti i dettagli del codice che avete pubblicato
9662306a36Sopenharmony_cil'ultima volta. Quindi è sempre una buona idea quella di ricordare ai
9762306a36Sopenharmony_cirevisori le questioni sollevate precedetemene e come le avete risolte.
9862306a36Sopenharmony_ciI revisori non dovrebbero star lì a cercare all'interno degli archivi per
9962306a36Sopenharmony_cifamigliarizzare con ciò che è stato detto l'ultima volta; se li aiutate
10062306a36Sopenharmony_ciin questo senso, saranno di umore migliore quando riguarderanno il vostro
10162306a36Sopenharmony_cicodice.
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ciSe invece avete cercato di far tutto correttamente ma le cose continuano
10462306a36Sopenharmony_cia non andar bene?  Molti disaccordi di natura tecnica possono essere risolti
10562306a36Sopenharmony_ciattraverso la discussione, ma ci sono volte dove qualcuno deve prendere
10662306a36Sopenharmony_ciuna decisione.  Se credete veramente che tale decisione andrà contro di voi
10762306a36Sopenharmony_ciingiustamente, potete sempre tentare di rivolgervi a qualcuno più
10862306a36Sopenharmony_ciin alto di voi.  Per cose di questo genere la persona con più potere è
10962306a36Sopenharmony_ciAndrew Morton.  Andrew è una figura molto rispettata all'interno della
11062306a36Sopenharmony_cicomunità di sviluppo del kernel; lui può spesso sbrogliare situazioni che
11162306a36Sopenharmony_cisembrano irrimediabilmente bloccate.  Rivolgersi ad Andrew non deve essere
11262306a36Sopenharmony_cifatto alla leggera, e non deve essere fatto prima di aver esplorato tutte
11362306a36Sopenharmony_cile altre alternative.  E tenete a mente, ovviamente, che nemmeno lui
11462306a36Sopenharmony_cipotrebbe non essere d'accordo con voi.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ciCosa accade poi
11762306a36Sopenharmony_ci===============
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ciSe la modifica è ritenuta un elemento valido da essere aggiunta al kernel,
12062306a36Sopenharmony_cie una volta che la maggior parte degli appunti dei revisori sono stati
12162306a36Sopenharmony_cisistemati, il passo successivo solitamente è quello di entrare in un
12262306a36Sopenharmony_cisottosistema gestito da un manutentore.  Come ciò avviene dipende dal
12362306a36Sopenharmony_cisottosistema medesimo; ogni manutentore ha il proprio modo di fare le cose.
12462306a36Sopenharmony_ciIn particolare, ci potrebbero essere diversi sorgenti - uno, magari, dedicato
12562306a36Sopenharmony_cialle modifiche pianificate per la finestra di fusione successiva, e un altro
12662306a36Sopenharmony_ciper il lavoro di lungo periodo.
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ciPer le modifiche proposte in aree per le quali non esiste un sottosistema
12962306a36Sopenharmony_cipreciso (modifiche di gestione della memoria, per esempio), i sorgenti di
13062306a36Sopenharmony_ciripiego finiscono per essere -mm.  Ed anche le modifiche che riguardano
13162306a36Sopenharmony_cipiù sottosistemi possono finire in quest'ultimo.
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ciL'inclusione nei sorgenti di un sottosistema può comportare per una patch,
13462306a36Sopenharmony_ciun alto livello di visibilità.  Ora altri sviluppatori che stanno lavorando
13562306a36Sopenharmony_ciin quei medesimi sorgenti avranno le vostre modifiche.  I sottosistemi
13662306a36Sopenharmony_cisolitamente riforniscono anche Linux-next, rendendo i propri contenuti
13762306a36Sopenharmony_civisibili all'intera comunità di sviluppo.  A questo punto, ci sono buone
13862306a36Sopenharmony_cipossibilità per voi di ricevere ulteriori commenti da un nuovo gruppo di
13962306a36Sopenharmony_cirevisori; anche a questi commenti dovrete rispondere come avete già fatto per
14062306a36Sopenharmony_cigli altri.
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ciCiò che potrebbe accadere a questo punto, in base alla natura della vostra
14362306a36Sopenharmony_cimodifica, riguarda eventuali conflitti con il lavoro svolto da altri.
14462306a36Sopenharmony_ciNella peggiore delle situazioni, i conflitti più pesanti tra modifiche possono
14562306a36Sopenharmony_ciconcludersi con la messa a lato di alcuni dei lavori svolti cosicché le
14662306a36Sopenharmony_cimodifiche restanti possano funzionare ed essere integrate.  Altre volte, la
14762306a36Sopenharmony_cirisoluzione dei conflitti richiederà del lavoro con altri sviluppatori e,
14862306a36Sopenharmony_cipossibilmente, lo spostamento di alcune patch da dei sorgenti a degli altri
14962306a36Sopenharmony_ciin modo da assicurare che tutto sia applicato in modo pulito.  Questo lavoro
15062306a36Sopenharmony_cipuò rivelarsi una spina nel fianco, ma consideratevi fortunati: prima
15162306a36Sopenharmony_cidell'avvento dei sorgenti linux-next, questi conflitti spesso emergevano solo
15262306a36Sopenharmony_cidurante l'apertura della finestra di integrazione e dovevano essere smaltiti
15362306a36Sopenharmony_ciin fretta.  Ora essi possono essere risolti comodamente, prima dell'apertura
15462306a36Sopenharmony_cidella finestra.
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ciUn giorno, se tutto va bene, vi collegherete e vedrete che la vostra patch
15762306a36Sopenharmony_ciè stata inserita nel ramo principale de kernel. Congratulazioni!  Terminati
15862306a36Sopenharmony_cii festeggiamenti (nel frattempo avrete inserito il vostro nome nel file
15962306a36Sopenharmony_ciMAINTAINERS) vale la pena ricordare una piccola cosa, ma importante: il
16062306a36Sopenharmony_cilavoro non è ancora finito.  L'inserimento nel ramo principale porta con se
16162306a36Sopenharmony_cinuove sfide.
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ciCominciamo con il dire che ora la visibilità della vostra modifica è
16462306a36Sopenharmony_ciulteriormente cresciuta.  Ci potrebbe portare ad una nuova fase di
16562306a36Sopenharmony_cicommenti dagli sviluppatori che non erano ancora a conoscenza della vostra
16662306a36Sopenharmony_cipatch.  Ignorarli potrebbe essere allettante dato che non ci sono più
16762306a36Sopenharmony_cidubbi sull'integrazione della modifica.  Resistete a tale tentazione, dovete
16862306a36Sopenharmony_cimantenervi disponibili agli sviluppatori che hanno domande o suggerimenti
16962306a36Sopenharmony_ciper voi.
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ciAncora più importante: l'inclusione nel ramo principale mette il vostro
17262306a36Sopenharmony_cicodice nelle mani di un gruppo di *tester* molto più esteso.  Anche se avete
17362306a36Sopenharmony_cicontribuito ad un driver per un hardware che non è ancora disponibile, sarete
17462306a36Sopenharmony_cisorpresi da quante persone inseriranno il vostro codice nei loro kernel.
17562306a36Sopenharmony_ciE, ovviamente, dove ci sono *tester*, ci saranno anche dei rapporti su
17662306a36Sopenharmony_cieventuali bachi.
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ciLa peggior specie di rapporti sono quelli che indicano delle regressioni.
17962306a36Sopenharmony_ciSe la vostra modifica causa una regressione, avrete un gran numero di
18062306a36Sopenharmony_ciocchi puntati su di voi; la regressione deve essere sistemata il prima
18162306a36Sopenharmony_cipossibile.  Se non vorrete o non sarete capaci di sistemarla (e nessuno
18262306a36Sopenharmony_cilo farà per voi), la vostra modifica sarà quasi certamente rimossa durante
18362306a36Sopenharmony_cila fase di stabilizzazione.  Oltre alla perdita di tutto il lavoro svolto
18462306a36Sopenharmony_ciper far si che la vostra modifica fosse inserita nel ramo principale,
18562306a36Sopenharmony_cil'avere una modifica rimossa a causa del fallimento nel sistemare una
18662306a36Sopenharmony_ciregressione, potrebbe rendere più difficile per voi far accettare
18762306a36Sopenharmony_ciil vostro lavoro in futuro.
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ciDopo che ogni regressione è stata affrontata, ci potrebbero essere altri
19062306a36Sopenharmony_cibachi ordinari da "sconfiggere".  Il periodo di stabilizzazione è la
19162306a36Sopenharmony_civostra migliore opportunità per sistemare questi bachi e assicurarvi che
19262306a36Sopenharmony_ciil debutto del vostro codice nel ramo principale del kernel sia il più solido
19362306a36Sopenharmony_cipossibile.  Quindi, per favore, rispondete ai rapporti sui bachi e ponete
19462306a36Sopenharmony_cirimedio, se possibile, a tutti i problemi.  È a questo che serve il periodo
19562306a36Sopenharmony_cidi stabilizzazione; potete iniziare creando nuove fantastiche modifiche
19662306a36Sopenharmony_ciuna volta che ogni problema con le vecchie sia stato risolto.
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ciNon dimenticate che esistono altre pietre miliari che possono generare
19962306a36Sopenharmony_cirapporti sui bachi: il successivo rilascio stabile, quando una distribuzione
20062306a36Sopenharmony_ciimportante usa una versione del kernel nel quale è presente la vostra
20162306a36Sopenharmony_cimodifica, eccetera.  Il continuare a rispondere a questi rapporti è fonte di
20262306a36Sopenharmony_ciorgoglio per il vostro lavoro.  Se questa non è una sufficiente motivazione,
20362306a36Sopenharmony_ciallora, è anche consigliabile considera che la comunità di sviluppo ricorda
20462306a36Sopenharmony_cigli sviluppatori che hanno perso interesse per il loro codice una volta
20562306a36Sopenharmony_ciintegrato.  La prossima volta che pubblicherete una patch, la comunità
20662306a36Sopenharmony_cila valuterà anche sulla base del fatto che non sarete disponibili a
20762306a36Sopenharmony_ciprendervene cura anche nel futuro.
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ciAltre cose che posso accadere
21162306a36Sopenharmony_ci=============================
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ciUn giorno, potreste aprire la vostra email e vedere che qualcuno vi ha
21462306a36Sopenharmony_ciinviato una patch per il vostro codice.  Questo, dopo tutto, è uno dei
21562306a36Sopenharmony_civantaggi di avere il vostro codice "là fuori".  Se siete d'accordo con
21662306a36Sopenharmony_cila modifica, potrete anche inoltrarla ad un manutentore di sottosistema
21762306a36Sopenharmony_ci(assicuratevi di includere la riga "From:" cosicché l'attribuzione sia
21862306a36Sopenharmony_cicorretta, e aggiungete una vostra firma "Signed-off-by"), oppure inviate
21962306a36Sopenharmony_ciun "Acked-by:" e lasciate che l'autore originale la invii.
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ciSe non siete d'accordo con la patch, inviate una risposta educata
22262306a36Sopenharmony_cispiegando il perché.  Se possibile, dite all'autore quali cambiamenti
22362306a36Sopenharmony_ciservirebbero per rendere la patch accettabile da voi.  C'è una certa
22462306a36Sopenharmony_ciriluttanza nell'inserire modifiche con un conflitto fra autore
22562306a36Sopenharmony_cie manutentore del codice, ma solo fino ad un certo punto.  Se siete visti
22662306a36Sopenharmony_cicome qualcuno che blocca un buon lavoro senza motivo, quelle patch vi
22762306a36Sopenharmony_cipasseranno oltre e andranno nel ramo principale in ogni caso. Nel kernel
22862306a36Sopenharmony_ciLinux, nessuno ha potere di veto assoluto su alcun codice.  Eccezione
22962306a36Sopenharmony_cifatta per Linus, forse.
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ciIn rarissime occasioni, potreste vedere qualcosa di completamente diverso:
23262306a36Sopenharmony_ciun altro sviluppatore che pubblica una soluzione differente al vostro
23362306a36Sopenharmony_ciproblema.  A questo punto, c'è una buona probabilità che una delle due
23462306a36Sopenharmony_cimodifiche non verrà integrata, e il "c'ero prima io" non è considerato
23562306a36Sopenharmony_ciun argomento tecnico rilevante.  Se la modifica di qualcun'altro rimpiazza
23662306a36Sopenharmony_cila vostra ed entra nel ramo principale, esiste un unico modo di reagire:
23762306a36Sopenharmony_cisiate contenti che il vostro problema sia stato risolto e andate avanti con
23862306a36Sopenharmony_ciil vostro lavoro.  L'avere un vostro lavoro spintonato da parte in questo
23962306a36Sopenharmony_cimodo può essere avvilente e scoraggiante, ma la comunità ricorderà come
24062306a36Sopenharmony_ciavrete reagito anche dopo che avrà dimenticato quale fu la modifica accettata.
241