xref: /OK3568_Linux_fs/kernel/Documentation/translations/it_IT/process/5.Posting.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. include:: ../disclaimer-ita.rst
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun:Original: :ref:`Documentation/process/5.Posting.rst <development_posting>`
4*4882a593Smuzhiyun:Translator: Federico Vaga <federico.vaga@vaga.pv.it>
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun.. _it_development_posting:
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunPubblicare modifiche
9*4882a593Smuzhiyun====================
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunPrima o poi arriva il momento in cui il vostro lavoro è pronto per essere
12*4882a593Smuzhiyunpresentato alla comunità per una revisione ed eventualmente per la sua
13*4882a593Smuzhiyuninclusione nel ramo principale del kernel.  Com'era prevedibile,
14*4882a593Smuzhiyunla comunità di sviluppo del kernel ha elaborato un insieme di convenzioni
15*4882a593Smuzhiyune di procedure per la pubblicazione delle patch; seguirle renderà la vita
16*4882a593Smuzhiyunpiù facile a tutti quanti.  Questo documento cercherà di coprire questi
17*4882a593Smuzhiyunargomenti con un ragionevole livello di dettaglio; più informazioni possono
18*4882a593Smuzhiyunessere trovare nella cartella 'Documentation', nei file
19*4882a593Smuzhiyun:ref:`translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`,
20*4882a593Smuzhiyun:ref:`translations/it_IT/process/submitting-drivers.rst <it_submittingdrivers>`, e
21*4882a593Smuzhiyun:ref:`translations/it_IT/process/submit-checklist.rst <it_submitchecklist>`.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunQuando pubblicarle
25*4882a593Smuzhiyun------------------
26*4882a593Smuzhiyun
27*4882a593SmuzhiyunC'è sempre una certa resistenza nel pubblicare patch finché non sono
28*4882a593Smuzhiyunveramente "pronte".  Per semplici patch questo non è un problema.
29*4882a593SmuzhiyunMa quando il lavoro è di una certa complessità, c'è molto da guadagnare
30*4882a593Smuzhiyundai riscontri che la comunità può darvi prima che completiate il lavoro.
31*4882a593SmuzhiyunDovreste considerare l'idea di pubblicare un lavoro incompleto, o anche
32*4882a593Smuzhiyunpreparare un ramo git disponibile agli sviluppatori interessati, cosicché
33*4882a593Smuzhiyunpossano stare al passo col vostro lavoro in qualunque momento.
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunQuando pubblicate del codice che non è considerato pronto per l'inclusione,
36*4882a593Smuzhiyunè bene che lo diciate al momento della pubblicazione.  Inoltre, aggiungete
37*4882a593Smuzhiyuninformazioni sulle cose ancora da sviluppare e sui problemi conosciuti.
38*4882a593SmuzhiyunPoche persone guarderanno delle patch che si sa essere fatte a metà,
39*4882a593Smuzhiyunma quelli che lo faranno penseranno di potervi aiutare a condurre il vostro
40*4882a593Smuzhiyunsviluppo nella giusta direzione.
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunPrima di creare patch
44*4882a593Smuzhiyun---------------------
45*4882a593Smuzhiyun
46*4882a593SmuzhiyunCi sono un certo numero di cose che dovreste fare prima di considerare
47*4882a593Smuzhiyunl'invio delle patch alla comunità di sviluppo.  Queste cose includono:
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun - Verificare il codice fino al massimo che vi è consentito. Usate gli
50*4882a593Smuzhiyun   strumenti di debug del kernel, assicuratevi che il kernel compili con
51*4882a593Smuzhiyun   tutte le più ragionevoli combinazioni d'opzioni, usate cross-compilatori
52*4882a593Smuzhiyun   per compilare il codice per differenti architetture, eccetera.
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun - Assicuratevi che il vostro codice sia conforme alla linee guida del
55*4882a593Smuzhiyun   kernel sullo stile del codice.
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun - La vostra patch ha delle conseguenze in termini di prestazioni?
58*4882a593Smuzhiyun   Se è così, dovreste eseguire dei *benchmark* che mostrino il loro
59*4882a593Smuzhiyun   impatto (anche positivo); un riassunto dei risultati dovrebbe essere
60*4882a593Smuzhiyun   incluso nella patch.
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun - Siate certi d'avere i diritti per pubblicare il codice.  Se questo
63*4882a593Smuzhiyun   lavoro è stato fatto per un datore di lavoro, egli avrà dei diritti su
64*4882a593Smuzhiyun   questo lavoro e dovrà quindi essere d'accordo alla sua pubblicazione
65*4882a593Smuzhiyun   con una licenza GPL
66*4882a593Smuzhiyun
67*4882a593SmuzhiyunCome regola generale, pensarci un po' di più prima di inviare il codice
68*4882a593Smuzhiyunripaga quasi sempre lo sforzo.
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun
71*4882a593SmuzhiyunPreparazione di una patch
72*4882a593Smuzhiyun-------------------------
73*4882a593Smuzhiyun
74*4882a593SmuzhiyunLa preparazione delle patch per la pubblicazione può richiedere una quantità
75*4882a593Smuzhiyundi lavoro significativa, ma, ripetiamolo ancora, generalmente sconsigliamo
76*4882a593Smuzhiyundi risparmiare tempo in questa fase, anche sul breve periodo.
77*4882a593Smuzhiyun
78*4882a593SmuzhiyunLe patch devono essere preparate per una specifica versione del kernel.
79*4882a593SmuzhiyunCome regola generale, una patch dovrebbe basarsi sul ramo principale attuale
80*4882a593Smuzhiyuncosì come lo si trova nei sorgenti git di Linus.  Quando vi basate sul ramo
81*4882a593Smuzhiyunprincipale, cominciate da un punto di rilascio ben noto - uno stabile o
82*4882a593Smuzhiyunun -rc - piuttosto che creare il vostro ramo da quello principale in un punto
83*4882a593Smuzhiyuna caso.
84*4882a593Smuzhiyun
85*4882a593SmuzhiyunPer facilitare una revisione e una verifica più estesa, potrebbe diventare
86*4882a593Smuzhiyunnecessaria la produzione di versioni per -mm, linux-next o i sorgenti di un
87*4882a593Smuzhiyunsottosistema.  Basare questa patch sui suddetti sorgenti potrebbe richiedere
88*4882a593Smuzhiyunun lavoro significativo nella risoluzione dei conflitti e nella correzione dei
89*4882a593Smuzhiyuncambiamenti di API; questo potrebbe variare a seconda dell'area d'interesse
90*4882a593Smuzhiyundella vostra patch e da quello che succede altrove nel kernel.
91*4882a593Smuzhiyun
92*4882a593SmuzhiyunSolo le modifiche più semplici dovrebbero essere preparate come una singola
93*4882a593Smuzhiyunpatch; tutto il resto dovrebbe essere preparato come una serie logica di
94*4882a593Smuzhiyunmodifiche.  Spezzettare le patch è un po' un'arte; alcuni sviluppatori
95*4882a593Smuzhiyunpassano molto tempo nel capire come farlo in modo che piaccia alla comunità.
96*4882a593SmuzhiyunCi sono alcune regole spannometriche, che comunque possono aiutare
97*4882a593Smuzhiyunconsiderevolmente:
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun - La serie di patch che pubblicherete, quasi sicuramente, non sarà
100*4882a593Smuzhiyun   come quella che trovate nel vostro sistema di controllo di versione.
101*4882a593Smuzhiyun   Invece, le vostre modifiche dovranno essere considerate nella loro forma
102*4882a593Smuzhiyun   finale, e quindi separate in parti che abbiano un senso.  Gli sviluppatori
103*4882a593Smuzhiyun   sono interessati in modifiche che siano discrete e indipendenti, non
104*4882a593Smuzhiyun   alla strada che avete percorso per ottenerle.
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun - Ogni modifica logicamente indipendente dovrebbe essere preparata come una
107*4882a593Smuzhiyun   patch separata.  Queste modifiche possono essere piccole ("aggiunto un
108*4882a593Smuzhiyun   campo in questa struttura") o grandi (l'aggiunta di un driver nuovo,
109*4882a593Smuzhiyun   per esempio), ma dovrebbero essere concettualmente piccole da permettere
110*4882a593Smuzhiyun   una descrizione in una sola riga.  Ogni patch dovrebbe fare modifiche
111*4882a593Smuzhiyun   specifiche che si possano revisionare indipendentemente e di cui si possa
112*4882a593Smuzhiyun   verificare la veridicità.
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun - Giusto per riaffermare quando detto sopra: non mischiate diversi tipi di
115*4882a593Smuzhiyun   modifiche nella stessa patch.  Se una modifica corregge un baco critico
116*4882a593Smuzhiyun   per la sicurezza, riorganizza alcune strutture, e riformatta il codice,
117*4882a593Smuzhiyun   ci sono buone probabilità che venga ignorata e che la correzione importante
118*4882a593Smuzhiyun   venga persa.
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun - Ogni modifica dovrebbe portare ad un kernel che compila e funziona
121*4882a593Smuzhiyun   correttamente; se la vostra serie di patch si interrompe a metà il
122*4882a593Smuzhiyun   risultato dovrebbe essere comunque un kernel funzionante.  L'applicazione
123*4882a593Smuzhiyun   parziale di una serie di patch è uno scenario comune nel quale il
124*4882a593Smuzhiyun   comando "git bisect" viene usato per trovare delle regressioni; se il
125*4882a593Smuzhiyun   risultato è un kernel guasto, renderete la vita degli sviluppatori più
126*4882a593Smuzhiyun   difficile così come quella di chi s'impegna nel nobile lavoro di
127*4882a593Smuzhiyun   scovare i problemi.
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun - Però, non strafate.  Una volta uno sviluppatore pubblicò una serie di 500
130*4882a593Smuzhiyun   patch che modificavano un unico file - un atto che non lo rese la persona
131*4882a593Smuzhiyun   più popolare sulla lista di discussione del kernel.  Una singola patch
132*4882a593Smuzhiyun   può essere ragionevolmente grande fintanto che contenga un singolo
133*4882a593Smuzhiyun   cambiamento *logico*.
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun - Potrebbe essere allettante l'idea di aggiungere una nuova infrastruttura
136*4882a593Smuzhiyun   come una serie di patch, ma di lasciare questa infrastruttura inutilizzata
137*4882a593Smuzhiyun   finché l'ultima patch della serie non abilita tutto quanto.  Quando è
138*4882a593Smuzhiyun   possibile, questo dovrebbe essere evitato; se questa serie aggiunge delle
139*4882a593Smuzhiyun   regressioni, "bisect" indicherà quest'ultima patch come causa del
140*4882a593Smuzhiyun   problema anche se il baco si trova altrove.  Possibilmente, quando una
141*4882a593Smuzhiyun   patch aggiunge del nuovo codice dovrebbe renderlo attivo immediatamente.
142*4882a593Smuzhiyun
143*4882a593SmuzhiyunLavorare per creare la serie di patch perfetta potrebbe essere frustrante
144*4882a593Smuzhiyunperché richiede un certo tempo e soprattutto dopo che il "vero lavoro" è
145*4882a593Smuzhiyungià stato fatto.  Quando ben fatto, comunque, è tempo ben speso.
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun
148*4882a593SmuzhiyunFormattazione delle patch e i changelog
149*4882a593Smuzhiyun---------------------------------------
150*4882a593Smuzhiyun
151*4882a593SmuzhiyunQuindi adesso avete una serie perfetta di patch pronte per la pubblicazione,
152*4882a593Smuzhiyunma il lavoro non è davvero finito.  Ogni patch deve essere preparata con
153*4882a593Smuzhiyunun messaggio che spieghi al resto del mondo, in modo chiaro e veloce,
154*4882a593Smuzhiyunil suo scopo.  Per ottenerlo, ogni patch sarà composta dai seguenti elementi:
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun - Un campo opzionale "From" col nome dell'autore della patch.  Questa riga
157*4882a593Smuzhiyun   è necessaria solo se state passando la patch di qualcun altro via email,
158*4882a593Smuzhiyun   ma nel dubbio non fa di certo male aggiungerlo.
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun - Una descrizione di una riga che spieghi cosa fa la patch.  Questo
161*4882a593Smuzhiyun   messaggio dovrebbe essere sufficiente per far comprendere al lettore lo
162*4882a593Smuzhiyun   scopo della patch senza altre informazioni.  Questo messaggio,
163*4882a593Smuzhiyun   solitamente, presenta in testa il nome del sottosistema a cui si riferisce,
164*4882a593Smuzhiyun   seguito dallo scopo della patch.  Per esempio:
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun   ::
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun	gpio: fix build on CONFIG_GPIO_SYSFS=n
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun - Una riga bianca seguita da una descrizione dettagliata della patch.
171*4882a593Smuzhiyun   Questa descrizione può essere lunga tanto quanto serve; dovrebbe spiegare
172*4882a593Smuzhiyun   cosa fa e perché dovrebbe essere aggiunta al kernel.
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun - Una o più righe etichette, con, minimo, una riga *Signed-off-by:*
175*4882a593Smuzhiyun   col nome dall'autore della patch.  Queste etichette verranno descritte
176*4882a593Smuzhiyun   meglio più avanti.
177*4882a593Smuzhiyun
178*4882a593SmuzhiyunGli elementi qui sopra, assieme, formano il changelog di una patch.
179*4882a593SmuzhiyunScrivere un buon changelog è cruciale ma è spesso un'arte trascurata;
180*4882a593Smuzhiyunvale la pena spendere qualche parola in più al riguardo.  Quando scrivete
181*4882a593Smuzhiyunun changelog dovreste tenere ben presente che molte persone leggeranno
182*4882a593Smuzhiyunle vostre parole.  Queste includono i manutentori di un sotto-sistema, e i
183*4882a593Smuzhiyunrevisori che devono decidere se la patch debba essere inclusa o no,
184*4882a593Smuzhiyunle distribuzioni e altri manutentori che cercano di valutare se la patch
185*4882a593Smuzhiyundebba essere applicata su kernel più vecchi, i cacciatori di bachi che si
186*4882a593Smuzhiyunchiederanno se la patch è la causa di un problema che stanno cercando,
187*4882a593Smuzhiyungli utenti che vogliono sapere com'è cambiato il kernel, e molti altri.
188*4882a593SmuzhiyunUn buon changelog fornisce le informazioni necessarie a tutte queste
189*4882a593Smuzhiyunpersone nel modo più diretto e conciso possibile.
190*4882a593Smuzhiyun
191*4882a593SmuzhiyunA questo scopo, la riga riassuntiva dovrebbe descrivere gli effetti della
192*4882a593Smuzhiyunmodifica e la motivazione della patch nel modo migliore possibile nonostante
193*4882a593Smuzhiyunil limite di una sola riga.  La descrizione dettagliata può spiegare meglio
194*4882a593Smuzhiyuni temi e fornire maggiori informazioni.  Se una patch corregge un baco,
195*4882a593Smuzhiyuncitate, se possibile, il commit che lo introdusse (e per favore, quando
196*4882a593Smuzhiyuncitate un commit aggiungete sia il suo identificativo che il titolo),
197*4882a593SmuzhiyunSe il problema è associabile ad un file di log o all' output del compilatore,
198*4882a593Smuzhiyunincludeteli al fine d'aiutare gli altri a trovare soluzioni per lo stesso
199*4882a593Smuzhiyunproblema.  Se la modifica ha lo scopo di essere di supporto a sviluppi
200*4882a593Smuzhiyunsuccessivi, ditelo.  Se le API interne vengono cambiate, dettagliate queste
201*4882a593Smuzhiyunmodifiche e come gli altri dovrebbero agire per applicarle.  In generale,
202*4882a593Smuzhiyunpiù riuscirete ad entrare nei panni di tutti quelli che leggeranno il
203*4882a593Smuzhiyunvostro changelog, meglio sarà il changelog (e il kernel nel suo insieme).
204*4882a593Smuzhiyun
205*4882a593SmuzhiyunNon serve dirlo, un changelog dovrebbe essere il testo usato nel messaggio
206*4882a593Smuzhiyundi commit in un sistema di controllo di versione.  Sarà seguito da:
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun - La patch stessa, nel formato unificato per patch ("-u").  Usare
209*4882a593Smuzhiyun   l'opzione "-p" assocerà alla modifica il nome della funzione alla quale
210*4882a593Smuzhiyun   si riferisce, rendendo il risultato più facile da leggere per gli altri.
211*4882a593Smuzhiyun
212*4882a593SmuzhiyunDovreste evitare di includere nelle patch delle modifiche per file
213*4882a593Smuzhiyunirrilevanti (quelli generati dal processo di generazione, per esempio, o i file
214*4882a593Smuzhiyundi backup del vostro editor).  Il file "dontdiff" nella cartella Documentation
215*4882a593Smuzhiyunpotrà esservi d'aiuto su questo punto; passatelo a diff con l'opzione "-X".
216*4882a593Smuzhiyun
217*4882a593SmuzhiyunLe etichette sopra menzionante sono usate per descrivere come i vari
218*4882a593Smuzhiyunsviluppatori sono stati associati allo sviluppo di una patch.  Sono descritte
219*4882a593Smuzhiyunin dettaglio nel documento :ref:`translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`;
220*4882a593Smuzhiyunquello che segue è un breve riassunto.  Ognuna di queste righe ha il seguente
221*4882a593Smuzhiyunformato:
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun::
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun	tag: Full Name <email address>  optional-other-stuff
226*4882a593Smuzhiyun
227*4882a593SmuzhiyunLe etichette in uso più comuni sono:
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun - Signed-off-by: questa è la certificazione che lo sviluppatore ha il diritto
230*4882a593Smuzhiyun   di sottomettere la patch per l'integrazione nel kernel.  Questo rappresenta
231*4882a593Smuzhiyun   il consenso verso il certificato d'origine degli sviluppatori, il testo
232*4882a593Smuzhiyun   completo potrà essere trovato in
233*4882a593Smuzhiyun   :ref:`Documentation/translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`.
234*4882a593Smuzhiyun   Codice che non presenta una firma appropriata non potrà essere integrato.
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun - Co-developed-by: indica che la patch è stata cosviluppata da diversi
237*4882a593Smuzhiyun   sviluppatori; viene usato per assegnare più autori (in aggiunta a quello
238*4882a593Smuzhiyun   associato all'etichetta From:) quando più persone lavorano ad una patch.
239*4882a593Smuzhiyun   Ogni Co-developed-by: dev'essere seguito immediatamente da un Signed-off-by:
240*4882a593Smuzhiyun   del corrispondente coautore.  Maggiori dettagli ed esempi sono disponibili
241*4882a593Smuzhiyun   in :ref:`Documentation/translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`.
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun - Acked-by: indica il consenso di un altro sviluppatore (spesso il manutentore
244*4882a593Smuzhiyun   del codice in oggetto) all'integrazione della patch nel kernel.
245*4882a593Smuzhiyun
246*4882a593Smuzhiyun - Tested-by: menziona la persona che ha verificato la patch e l'ha trovata
247*4882a593Smuzhiyun   funzionante.
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun - Reviwed-by: menziona lo sviluppatore che ha revisionato la patch; per
250*4882a593Smuzhiyun   maggiori dettagli leggete la dichiarazione dei revisori in
251*4882a593Smuzhiyun   :ref:`Documentation/translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun - Reported-by: menziona l'utente che ha riportato il problema corretto da
254*4882a593Smuzhiyun   questa patch; quest'etichetta viene usata per dare credito alle persone
255*4882a593Smuzhiyun   che hanno verificato il codice e ci hanno fatto sapere quando le cose non
256*4882a593Smuzhiyun   funzionavano correttamente.
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun - Cc: la persona menzionata ha ricevuto una copia della patch ed ha avuto
259*4882a593Smuzhiyun   l'opportunità di commentarla.
260*4882a593Smuzhiyun
261*4882a593SmuzhiyunState attenti ad aggiungere queste etichette alla vostra patch: solo
262*4882a593Smuzhiyun"Cc:" può essere aggiunta senza il permesso esplicito della persona menzionata.
263*4882a593Smuzhiyun
264*4882a593SmuzhiyunInviare la modifica
265*4882a593Smuzhiyun-------------------
266*4882a593Smuzhiyun
267*4882a593SmuzhiyunPrima di inviare la vostra patch, ci sarebbero ancora un paio di cose di cui
268*4882a593Smuzhiyundovreste aver cura:
269*4882a593Smuzhiyun
270*4882a593Smuzhiyun - Siete sicuri che il vostro programma di posta non corromperà le patch?
271*4882a593Smuzhiyun   Le patch che hanno spazi bianchi in libertà o andate a capo aggiunti
272*4882a593Smuzhiyun   dai programmi di posta non funzioneranno per chi le riceve, e spesso
273*4882a593Smuzhiyun   non verranno nemmeno esaminate in dettaglio.  Se avete un qualsiasi dubbio,
274*4882a593Smuzhiyun   inviate la patch a voi stessi e verificate che sia integra.
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun   :ref:`Documentation/translations/it_IT/process/email-clients.rst <it_email_clients>`
277*4882a593Smuzhiyun   contiene alcuni suggerimenti utili sulla configurazione dei programmi
278*4882a593Smuzhiyun   di posta al fine di inviare patch.
279*4882a593Smuzhiyun
280*4882a593Smuzhiyun - Siete sicuri che la vostra patch non contenga sciocchi errori?  Dovreste
281*4882a593Smuzhiyun   sempre processare le patch con scripts/checkpatch.pl e correggere eventuali
282*4882a593Smuzhiyun   problemi riportati.  Per favore tenete ben presente che checkpatch.pl non è
283*4882a593Smuzhiyun   più intelligente di voi, nonostante sia il risultato di un certa quantità di
284*4882a593Smuzhiyun   ragionamenti su come debba essere una patch per il kernel.  Se seguire
285*4882a593Smuzhiyun   i suggerimenti di checkpatch.pl rende il codice peggiore, allora non fatelo.
286*4882a593Smuzhiyun
287*4882a593SmuzhiyunLe patch dovrebbero essere sempre inviate come testo puro.  Per favore non
288*4882a593Smuzhiyuninviatele come allegati; questo rende molto più difficile, per i revisori,
289*4882a593Smuzhiyuncitare parti della patch che si vogliono commentare.  Invece, mettete la vostra
290*4882a593Smuzhiyunpatch direttamente nel messaggio.
291*4882a593Smuzhiyun
292*4882a593SmuzhiyunQuando inviate le patch, è importante inviarne una copia a tutte le persone che
293*4882a593Smuzhiyunpotrebbero esserne interessate.  Al contrario di altri progetti, il kernel
294*4882a593Smuzhiyunincoraggia le persone a peccare nell'invio di tante copie; non presumente che
295*4882a593Smuzhiyunle persone interessate vedano i vostri messaggi sulla lista di discussione.
296*4882a593SmuzhiyunIn particolare le copie dovrebbero essere inviate a:
297*4882a593Smuzhiyun
298*4882a593Smuzhiyun - I manutentori dei sottosistemi affetti della modifica.  Come descritto
299*4882a593Smuzhiyun   in precedenza, il file MAINTAINERS è il primo luogo dove cercare i nomi
300*4882a593Smuzhiyun   di queste persone.
301*4882a593Smuzhiyun
302*4882a593Smuzhiyun - Altri sviluppatori che hanno lavorato nello stesso ambiente - specialmente
303*4882a593Smuzhiyun   quelli che potrebbero lavorarci proprio ora.  Usate git potrebbe essere
304*4882a593Smuzhiyun   utile per vedere chi altri ha modificato i file su cui state lavorando.
305*4882a593Smuzhiyun
306*4882a593Smuzhiyun - Se state rispondendo a un rapporto su un baco, o a una richiesta di
307*4882a593Smuzhiyun   funzionalità, includete anche gli autori di quei rapporti/richieste.
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun - Inviate una copia alle liste di discussione interessate, o, se nient'altro
310*4882a593Smuzhiyun   è adatto, alla lista linux-kernel
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun - Se state correggendo un baco, pensate se la patch dovrebbe essere inclusa
313*4882a593Smuzhiyun   nel prossimo rilascio stabile.  Se è così, la lista di discussione
314*4882a593Smuzhiyun   stable@vger.kernel.org dovrebbe riceverne una copia.  Aggiungete anche
315*4882a593Smuzhiyun   l'etichetta "Cc: stable@vger.kernel.org" nella patch stessa; questo
316*4882a593Smuzhiyun   permetterà alla squadra *stable* di ricevere una notifica quando questa
317*4882a593Smuzhiyun   correzione viene integrata nel ramo principale.
318*4882a593Smuzhiyun
319*4882a593SmuzhiyunQuando scegliete i destinatari della patch, è bene avere un'idea di chi
320*4882a593Smuzhiyunpensiate che sia colui che, eventualmente, accetterà la vostra patch e
321*4882a593Smuzhiyunla integrerà.  Nonostante sia possibile inviare patch direttamente a
322*4882a593SmuzhiyunLinus Torvalds, e lasciare che sia lui ad integrarle,solitamente non è la
323*4882a593Smuzhiyunstrada migliore da seguire.  Linus è occupato, e ci sono dei manutentori di
324*4882a593Smuzhiyunsotto-sistema che controllano una parte specifica del kernel.  Solitamente,
325*4882a593Smuzhiyunvorreste che siano questi manutentori ad integrare le vostre patch.  Se non
326*4882a593Smuzhiyunc'è un chiaro manutentore, l'ultima spiaggia è spesso Andrew Morton.
327*4882a593Smuzhiyun
328*4882a593SmuzhiyunLe patch devono avere anche un buon oggetto.  Il tipico formato per l'oggetto
329*4882a593Smuzhiyundi una patch assomiglia a questo:
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun::
332*4882a593Smuzhiyun
333*4882a593Smuzhiyun	[PATCH nn/mm] subsys: one-line description of the patch
334*4882a593Smuzhiyun
335*4882a593Smuzhiyundove "nn" è il numero ordinale della patch, "mm" è il numero totale delle patch
336*4882a593Smuzhiyunnella serie, e "subsys" è il nome del sottosistema interessato.  Chiaramente,
337*4882a593Smuzhiyunnn/mm può essere omesso per una serie composta da una singola patch.
338*4882a593Smuzhiyun
339*4882a593SmuzhiyunSe avete una significative serie di patch, è prassi inviare una descrizione
340*4882a593Smuzhiyunintroduttiva come parte zero.  Tuttavia questa convenzione non è universalmente
341*4882a593Smuzhiyunseguita; se la usate, ricordate che le informazioni nell'introduzione non
342*4882a593Smuzhiyunfaranno parte del changelog del kernel.  Quindi per favore, assicuratevi che
343*4882a593Smuzhiyunogni patch abbia un changelog completo.
344*4882a593Smuzhiyun
345*4882a593SmuzhiyunIn generale, la seconda parte e quelle successive di una patch "composta"
346*4882a593Smuzhiyundovrebbero essere inviate come risposta alla prima, cosicché vengano viste
347*4882a593Smuzhiyuncome un unico *thread*.  Strumenti come git e quilt hanno comandi per inviare
348*4882a593Smuzhiyungruppi di patch con la struttura appropriata.  Se avete una serie lunga
349*4882a593Smuzhiyune state usando git, per favore state alla larga dall'opzione --chain-reply-to
350*4882a593Smuzhiyunper evitare di creare un annidamento eccessivo.
351