18c2ecf20Sopenharmony_ci.. include:: ../disclaimer-ita.rst
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci:Original: :ref:`Documentation/process/5.Posting.rst <development_posting>`
48c2ecf20Sopenharmony_ci:Translator: Federico Vaga <federico.vaga@vaga.pv.it>
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci.. _it_development_posting:
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciPubblicare modifiche
98c2ecf20Sopenharmony_ci====================
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciPrima o poi arriva il momento in cui il vostro lavoro è pronto per essere
128c2ecf20Sopenharmony_cipresentato alla comunità per una revisione ed eventualmente per la sua
138c2ecf20Sopenharmony_ciinclusione nel ramo principale del kernel.  Com'era prevedibile,
148c2ecf20Sopenharmony_cila comunità di sviluppo del kernel ha elaborato un insieme di convenzioni
158c2ecf20Sopenharmony_cie di procedure per la pubblicazione delle patch; seguirle renderà la vita
168c2ecf20Sopenharmony_cipiù facile a tutti quanti.  Questo documento cercherà di coprire questi
178c2ecf20Sopenharmony_ciargomenti con un ragionevole livello di dettaglio; più informazioni possono
188c2ecf20Sopenharmony_ciessere trovare nella cartella 'Documentation', nei file
198c2ecf20Sopenharmony_ci:ref:`translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`,
208c2ecf20Sopenharmony_ci:ref:`translations/it_IT/process/submitting-drivers.rst <it_submittingdrivers>`, e
218c2ecf20Sopenharmony_ci:ref:`translations/it_IT/process/submit-checklist.rst <it_submitchecklist>`.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciQuando pubblicarle
258c2ecf20Sopenharmony_ci------------------
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciC'è sempre una certa resistenza nel pubblicare patch finché non sono
288c2ecf20Sopenharmony_civeramente "pronte".  Per semplici patch questo non è un problema.
298c2ecf20Sopenharmony_ciMa quando il lavoro è di una certa complessità, c'è molto da guadagnare
308c2ecf20Sopenharmony_cidai riscontri che la comunità può darvi prima che completiate il lavoro.
318c2ecf20Sopenharmony_ciDovreste considerare l'idea di pubblicare un lavoro incompleto, o anche
328c2ecf20Sopenharmony_cipreparare un ramo git disponibile agli sviluppatori interessati, cosicché
338c2ecf20Sopenharmony_cipossano stare al passo col vostro lavoro in qualunque momento.
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciQuando pubblicate del codice che non è considerato pronto per l'inclusione,
368c2ecf20Sopenharmony_ciè bene che lo diciate al momento della pubblicazione.  Inoltre, aggiungete
378c2ecf20Sopenharmony_ciinformazioni sulle cose ancora da sviluppare e sui problemi conosciuti.
388c2ecf20Sopenharmony_ciPoche persone guarderanno delle patch che si sa essere fatte a metà,
398c2ecf20Sopenharmony_cima quelli che lo faranno penseranno di potervi aiutare a condurre il vostro
408c2ecf20Sopenharmony_cisviluppo nella giusta direzione.
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciPrima di creare patch
448c2ecf20Sopenharmony_ci---------------------
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ciCi sono un certo numero di cose che dovreste fare prima di considerare
478c2ecf20Sopenharmony_cil'invio delle patch alla comunità di sviluppo.  Queste cose includono:
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci - Verificare il codice fino al massimo che vi è consentito. Usate gli
508c2ecf20Sopenharmony_ci   strumenti di debug del kernel, assicuratevi che il kernel compili con
518c2ecf20Sopenharmony_ci   tutte le più ragionevoli combinazioni d'opzioni, usate cross-compilatori
528c2ecf20Sopenharmony_ci   per compilare il codice per differenti architetture, eccetera.
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci - Assicuratevi che il vostro codice sia conforme alla linee guida del
558c2ecf20Sopenharmony_ci   kernel sullo stile del codice.
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci - La vostra patch ha delle conseguenze in termini di prestazioni?
588c2ecf20Sopenharmony_ci   Se è così, dovreste eseguire dei *benchmark* che mostrino il loro
598c2ecf20Sopenharmony_ci   impatto (anche positivo); un riassunto dei risultati dovrebbe essere
608c2ecf20Sopenharmony_ci   incluso nella patch.
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci - Siate certi d'avere i diritti per pubblicare il codice.  Se questo
638c2ecf20Sopenharmony_ci   lavoro è stato fatto per un datore di lavoro, egli avrà dei diritti su
648c2ecf20Sopenharmony_ci   questo lavoro e dovrà quindi essere d'accordo alla sua pubblicazione
658c2ecf20Sopenharmony_ci   con una licenza GPL
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ciCome regola generale, pensarci un po' di più prima di inviare il codice
688c2ecf20Sopenharmony_ciripaga quasi sempre lo sforzo.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciPreparazione di una patch
728c2ecf20Sopenharmony_ci-------------------------
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ciLa preparazione delle patch per la pubblicazione può richiedere una quantità
758c2ecf20Sopenharmony_cidi lavoro significativa, ma, ripetiamolo ancora, generalmente sconsigliamo
768c2ecf20Sopenharmony_cidi risparmiare tempo in questa fase, anche sul breve periodo.
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ciLe patch devono essere preparate per una specifica versione del kernel.
798c2ecf20Sopenharmony_ciCome regola generale, una patch dovrebbe basarsi sul ramo principale attuale
808c2ecf20Sopenharmony_cicosì come lo si trova nei sorgenti git di Linus.  Quando vi basate sul ramo
818c2ecf20Sopenharmony_ciprincipale, cominciate da un punto di rilascio ben noto - uno stabile o
828c2ecf20Sopenharmony_ciun -rc - piuttosto che creare il vostro ramo da quello principale in un punto
838c2ecf20Sopenharmony_cia caso.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ciPer facilitare una revisione e una verifica più estesa, potrebbe diventare
868c2ecf20Sopenharmony_cinecessaria la produzione di versioni per -mm, linux-next o i sorgenti di un
878c2ecf20Sopenharmony_cisottosistema.  Basare questa patch sui suddetti sorgenti potrebbe richiedere
888c2ecf20Sopenharmony_ciun lavoro significativo nella risoluzione dei conflitti e nella correzione dei
898c2ecf20Sopenharmony_cicambiamenti di API; questo potrebbe variare a seconda dell'area d'interesse
908c2ecf20Sopenharmony_cidella vostra patch e da quello che succede altrove nel kernel.
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ciSolo le modifiche più semplici dovrebbero essere preparate come una singola
938c2ecf20Sopenharmony_cipatch; tutto il resto dovrebbe essere preparato come una serie logica di
948c2ecf20Sopenharmony_cimodifiche.  Spezzettare le patch è un po' un'arte; alcuni sviluppatori
958c2ecf20Sopenharmony_cipassano molto tempo nel capire come farlo in modo che piaccia alla comunità.
968c2ecf20Sopenharmony_ciCi sono alcune regole spannometriche, che comunque possono aiutare
978c2ecf20Sopenharmony_ciconsiderevolmente:
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ci - La serie di patch che pubblicherete, quasi sicuramente, non sarà
1008c2ecf20Sopenharmony_ci   come quella che trovate nel vostro sistema di controllo di versione.
1018c2ecf20Sopenharmony_ci   Invece, le vostre modifiche dovranno essere considerate nella loro forma
1028c2ecf20Sopenharmony_ci   finale, e quindi separate in parti che abbiano un senso.  Gli sviluppatori
1038c2ecf20Sopenharmony_ci   sono interessati in modifiche che siano discrete e indipendenti, non
1048c2ecf20Sopenharmony_ci   alla strada che avete percorso per ottenerle.
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci - Ogni modifica logicamente indipendente dovrebbe essere preparata come una
1078c2ecf20Sopenharmony_ci   patch separata.  Queste modifiche possono essere piccole ("aggiunto un
1088c2ecf20Sopenharmony_ci   campo in questa struttura") o grandi (l'aggiunta di un driver nuovo,
1098c2ecf20Sopenharmony_ci   per esempio), ma dovrebbero essere concettualmente piccole da permettere
1108c2ecf20Sopenharmony_ci   una descrizione in una sola riga.  Ogni patch dovrebbe fare modifiche
1118c2ecf20Sopenharmony_ci   specifiche che si possano revisionare indipendentemente e di cui si possa
1128c2ecf20Sopenharmony_ci   verificare la veridicità.
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci - Giusto per riaffermare quando detto sopra: non mischiate diversi tipi di
1158c2ecf20Sopenharmony_ci   modifiche nella stessa patch.  Se una modifica corregge un baco critico
1168c2ecf20Sopenharmony_ci   per la sicurezza, riorganizza alcune strutture, e riformatta il codice,
1178c2ecf20Sopenharmony_ci   ci sono buone probabilità che venga ignorata e che la correzione importante
1188c2ecf20Sopenharmony_ci   venga persa.
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci - Ogni modifica dovrebbe portare ad un kernel che compila e funziona
1218c2ecf20Sopenharmony_ci   correttamente; se la vostra serie di patch si interrompe a metà il
1228c2ecf20Sopenharmony_ci   risultato dovrebbe essere comunque un kernel funzionante.  L'applicazione
1238c2ecf20Sopenharmony_ci   parziale di una serie di patch è uno scenario comune nel quale il
1248c2ecf20Sopenharmony_ci   comando "git bisect" viene usato per trovare delle regressioni; se il
1258c2ecf20Sopenharmony_ci   risultato è un kernel guasto, renderete la vita degli sviluppatori più
1268c2ecf20Sopenharmony_ci   difficile così come quella di chi s'impegna nel nobile lavoro di
1278c2ecf20Sopenharmony_ci   scovare i problemi.
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci - Però, non strafate.  Una volta uno sviluppatore pubblicò una serie di 500
1308c2ecf20Sopenharmony_ci   patch che modificavano un unico file - un atto che non lo rese la persona
1318c2ecf20Sopenharmony_ci   più popolare sulla lista di discussione del kernel.  Una singola patch
1328c2ecf20Sopenharmony_ci   può essere ragionevolmente grande fintanto che contenga un singolo
1338c2ecf20Sopenharmony_ci   cambiamento *logico*.
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci - Potrebbe essere allettante l'idea di aggiungere una nuova infrastruttura
1368c2ecf20Sopenharmony_ci   come una serie di patch, ma di lasciare questa infrastruttura inutilizzata
1378c2ecf20Sopenharmony_ci   finché l'ultima patch della serie non abilita tutto quanto.  Quando è
1388c2ecf20Sopenharmony_ci   possibile, questo dovrebbe essere evitato; se questa serie aggiunge delle
1398c2ecf20Sopenharmony_ci   regressioni, "bisect" indicherà quest'ultima patch come causa del
1408c2ecf20Sopenharmony_ci   problema anche se il baco si trova altrove.  Possibilmente, quando una
1418c2ecf20Sopenharmony_ci   patch aggiunge del nuovo codice dovrebbe renderlo attivo immediatamente.
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ciLavorare per creare la serie di patch perfetta potrebbe essere frustrante
1448c2ecf20Sopenharmony_ciperché richiede un certo tempo e soprattutto dopo che il "vero lavoro" è
1458c2ecf20Sopenharmony_cigià stato fatto.  Quando ben fatto, comunque, è tempo ben speso.
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ciFormattazione delle patch e i changelog
1498c2ecf20Sopenharmony_ci---------------------------------------
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ciQuindi adesso avete una serie perfetta di patch pronte per la pubblicazione,
1528c2ecf20Sopenharmony_cima il lavoro non è davvero finito.  Ogni patch deve essere preparata con
1538c2ecf20Sopenharmony_ciun messaggio che spieghi al resto del mondo, in modo chiaro e veloce,
1548c2ecf20Sopenharmony_ciil suo scopo.  Per ottenerlo, ogni patch sarà composta dai seguenti elementi:
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci - Un campo opzionale "From" col nome dell'autore della patch.  Questa riga
1578c2ecf20Sopenharmony_ci   è necessaria solo se state passando la patch di qualcun altro via email,
1588c2ecf20Sopenharmony_ci   ma nel dubbio non fa di certo male aggiungerlo.
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ci - Una descrizione di una riga che spieghi cosa fa la patch.  Questo
1618c2ecf20Sopenharmony_ci   messaggio dovrebbe essere sufficiente per far comprendere al lettore lo
1628c2ecf20Sopenharmony_ci   scopo della patch senza altre informazioni.  Questo messaggio,
1638c2ecf20Sopenharmony_ci   solitamente, presenta in testa il nome del sottosistema a cui si riferisce,
1648c2ecf20Sopenharmony_ci   seguito dallo scopo della patch.  Per esempio:
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ci   ::
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ci	gpio: fix build on CONFIG_GPIO_SYSFS=n
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci - Una riga bianca seguita da una descrizione dettagliata della patch.
1718c2ecf20Sopenharmony_ci   Questa descrizione può essere lunga tanto quanto serve; dovrebbe spiegare
1728c2ecf20Sopenharmony_ci   cosa fa e perché dovrebbe essere aggiunta al kernel.
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ci - Una o più righe etichette, con, minimo, una riga *Signed-off-by:*
1758c2ecf20Sopenharmony_ci   col nome dall'autore della patch.  Queste etichette verranno descritte
1768c2ecf20Sopenharmony_ci   meglio più avanti.
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ciGli elementi qui sopra, assieme, formano il changelog di una patch.
1798c2ecf20Sopenharmony_ciScrivere un buon changelog è cruciale ma è spesso un'arte trascurata;
1808c2ecf20Sopenharmony_civale la pena spendere qualche parola in più al riguardo.  Quando scrivete
1818c2ecf20Sopenharmony_ciun changelog dovreste tenere ben presente che molte persone leggeranno
1828c2ecf20Sopenharmony_cile vostre parole.  Queste includono i manutentori di un sotto-sistema, e i
1838c2ecf20Sopenharmony_cirevisori che devono decidere se la patch debba essere inclusa o no,
1848c2ecf20Sopenharmony_cile distribuzioni e altri manutentori che cercano di valutare se la patch
1858c2ecf20Sopenharmony_cidebba essere applicata su kernel più vecchi, i cacciatori di bachi che si
1868c2ecf20Sopenharmony_cichiederanno se la patch è la causa di un problema che stanno cercando,
1878c2ecf20Sopenharmony_cigli utenti che vogliono sapere com'è cambiato il kernel, e molti altri.
1888c2ecf20Sopenharmony_ciUn buon changelog fornisce le informazioni necessarie a tutte queste
1898c2ecf20Sopenharmony_cipersone nel modo più diretto e conciso possibile.
1908c2ecf20Sopenharmony_ci
1918c2ecf20Sopenharmony_ciA questo scopo, la riga riassuntiva dovrebbe descrivere gli effetti della
1928c2ecf20Sopenharmony_cimodifica e la motivazione della patch nel modo migliore possibile nonostante
1938c2ecf20Sopenharmony_ciil limite di una sola riga.  La descrizione dettagliata può spiegare meglio
1948c2ecf20Sopenharmony_cii temi e fornire maggiori informazioni.  Se una patch corregge un baco,
1958c2ecf20Sopenharmony_cicitate, se possibile, il commit che lo introdusse (e per favore, quando
1968c2ecf20Sopenharmony_cicitate un commit aggiungete sia il suo identificativo che il titolo),
1978c2ecf20Sopenharmony_ciSe il problema è associabile ad un file di log o all' output del compilatore,
1988c2ecf20Sopenharmony_ciincludeteli al fine d'aiutare gli altri a trovare soluzioni per lo stesso
1998c2ecf20Sopenharmony_ciproblema.  Se la modifica ha lo scopo di essere di supporto a sviluppi
2008c2ecf20Sopenharmony_cisuccessivi, ditelo.  Se le API interne vengono cambiate, dettagliate queste
2018c2ecf20Sopenharmony_cimodifiche e come gli altri dovrebbero agire per applicarle.  In generale,
2028c2ecf20Sopenharmony_cipiù riuscirete ad entrare nei panni di tutti quelli che leggeranno il
2038c2ecf20Sopenharmony_civostro changelog, meglio sarà il changelog (e il kernel nel suo insieme).
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ciNon serve dirlo, un changelog dovrebbe essere il testo usato nel messaggio
2068c2ecf20Sopenharmony_cidi commit in un sistema di controllo di versione.  Sarà seguito da:
2078c2ecf20Sopenharmony_ci
2088c2ecf20Sopenharmony_ci - La patch stessa, nel formato unificato per patch ("-u").  Usare
2098c2ecf20Sopenharmony_ci   l'opzione "-p" assocerà alla modifica il nome della funzione alla quale
2108c2ecf20Sopenharmony_ci   si riferisce, rendendo il risultato più facile da leggere per gli altri.
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ciDovreste evitare di includere nelle patch delle modifiche per file
2138c2ecf20Sopenharmony_ciirrilevanti (quelli generati dal processo di generazione, per esempio, o i file
2148c2ecf20Sopenharmony_cidi backup del vostro editor).  Il file "dontdiff" nella cartella Documentation
2158c2ecf20Sopenharmony_cipotrà esservi d'aiuto su questo punto; passatelo a diff con l'opzione "-X".
2168c2ecf20Sopenharmony_ci
2178c2ecf20Sopenharmony_ciLe etichette sopra menzionante sono usate per descrivere come i vari
2188c2ecf20Sopenharmony_cisviluppatori sono stati associati allo sviluppo di una patch.  Sono descritte
2198c2ecf20Sopenharmony_ciin dettaglio nel documento :ref:`translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`;
2208c2ecf20Sopenharmony_ciquello che segue è un breve riassunto.  Ognuna di queste righe ha il seguente
2218c2ecf20Sopenharmony_ciformato:
2228c2ecf20Sopenharmony_ci
2238c2ecf20Sopenharmony_ci::
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ci	tag: Full Name <email address>  optional-other-stuff
2268c2ecf20Sopenharmony_ci
2278c2ecf20Sopenharmony_ciLe etichette in uso più comuni sono:
2288c2ecf20Sopenharmony_ci
2298c2ecf20Sopenharmony_ci - Signed-off-by: questa è la certificazione che lo sviluppatore ha il diritto
2308c2ecf20Sopenharmony_ci   di sottomettere la patch per l'integrazione nel kernel.  Questo rappresenta
2318c2ecf20Sopenharmony_ci   il consenso verso il certificato d'origine degli sviluppatori, il testo
2328c2ecf20Sopenharmony_ci   completo potrà essere trovato in
2338c2ecf20Sopenharmony_ci   :ref:`Documentation/translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`.
2348c2ecf20Sopenharmony_ci   Codice che non presenta una firma appropriata non potrà essere integrato.
2358c2ecf20Sopenharmony_ci
2368c2ecf20Sopenharmony_ci - Co-developed-by: indica che la patch è stata cosviluppata da diversi
2378c2ecf20Sopenharmony_ci   sviluppatori; viene usato per assegnare più autori (in aggiunta a quello
2388c2ecf20Sopenharmony_ci   associato all'etichetta From:) quando più persone lavorano ad una patch.
2398c2ecf20Sopenharmony_ci   Ogni Co-developed-by: dev'essere seguito immediatamente da un Signed-off-by:
2408c2ecf20Sopenharmony_ci   del corrispondente coautore.  Maggiori dettagli ed esempi sono disponibili
2418c2ecf20Sopenharmony_ci   in :ref:`Documentation/translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`.
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ci - Acked-by: indica il consenso di un altro sviluppatore (spesso il manutentore
2448c2ecf20Sopenharmony_ci   del codice in oggetto) all'integrazione della patch nel kernel.
2458c2ecf20Sopenharmony_ci
2468c2ecf20Sopenharmony_ci - Tested-by: menziona la persona che ha verificato la patch e l'ha trovata
2478c2ecf20Sopenharmony_ci   funzionante.
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci - Reviwed-by: menziona lo sviluppatore che ha revisionato la patch; per
2508c2ecf20Sopenharmony_ci   maggiori dettagli leggete la dichiarazione dei revisori in
2518c2ecf20Sopenharmony_ci   :ref:`Documentation/translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`
2528c2ecf20Sopenharmony_ci
2538c2ecf20Sopenharmony_ci - Reported-by: menziona l'utente che ha riportato il problema corretto da
2548c2ecf20Sopenharmony_ci   questa patch; quest'etichetta viene usata per dare credito alle persone
2558c2ecf20Sopenharmony_ci   che hanno verificato il codice e ci hanno fatto sapere quando le cose non
2568c2ecf20Sopenharmony_ci   funzionavano correttamente.
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ci - Cc: la persona menzionata ha ricevuto una copia della patch ed ha avuto
2598c2ecf20Sopenharmony_ci   l'opportunità di commentarla.
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ciState attenti ad aggiungere queste etichette alla vostra patch: solo
2628c2ecf20Sopenharmony_ci"Cc:" può essere aggiunta senza il permesso esplicito della persona menzionata.
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ciInviare la modifica
2658c2ecf20Sopenharmony_ci-------------------
2668c2ecf20Sopenharmony_ci
2678c2ecf20Sopenharmony_ciPrima di inviare la vostra patch, ci sarebbero ancora un paio di cose di cui
2688c2ecf20Sopenharmony_cidovreste aver cura:
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_ci - Siete sicuri che il vostro programma di posta non corromperà le patch?
2718c2ecf20Sopenharmony_ci   Le patch che hanno spazi bianchi in libertà o andate a capo aggiunti
2728c2ecf20Sopenharmony_ci   dai programmi di posta non funzioneranno per chi le riceve, e spesso
2738c2ecf20Sopenharmony_ci   non verranno nemmeno esaminate in dettaglio.  Se avete un qualsiasi dubbio,
2748c2ecf20Sopenharmony_ci   inviate la patch a voi stessi e verificate che sia integra.
2758c2ecf20Sopenharmony_ci
2768c2ecf20Sopenharmony_ci   :ref:`Documentation/translations/it_IT/process/email-clients.rst <it_email_clients>`
2778c2ecf20Sopenharmony_ci   contiene alcuni suggerimenti utili sulla configurazione dei programmi
2788c2ecf20Sopenharmony_ci   di posta al fine di inviare patch.
2798c2ecf20Sopenharmony_ci
2808c2ecf20Sopenharmony_ci - Siete sicuri che la vostra patch non contenga sciocchi errori?  Dovreste
2818c2ecf20Sopenharmony_ci   sempre processare le patch con scripts/checkpatch.pl e correggere eventuali
2828c2ecf20Sopenharmony_ci   problemi riportati.  Per favore tenete ben presente che checkpatch.pl non è
2838c2ecf20Sopenharmony_ci   più intelligente di voi, nonostante sia il risultato di un certa quantità di
2848c2ecf20Sopenharmony_ci   ragionamenti su come debba essere una patch per il kernel.  Se seguire
2858c2ecf20Sopenharmony_ci   i suggerimenti di checkpatch.pl rende il codice peggiore, allora non fatelo.
2868c2ecf20Sopenharmony_ci
2878c2ecf20Sopenharmony_ciLe patch dovrebbero essere sempre inviate come testo puro.  Per favore non
2888c2ecf20Sopenharmony_ciinviatele come allegati; questo rende molto più difficile, per i revisori,
2898c2ecf20Sopenharmony_cicitare parti della patch che si vogliono commentare.  Invece, mettete la vostra
2908c2ecf20Sopenharmony_cipatch direttamente nel messaggio.
2918c2ecf20Sopenharmony_ci
2928c2ecf20Sopenharmony_ciQuando inviate le patch, è importante inviarne una copia a tutte le persone che
2938c2ecf20Sopenharmony_cipotrebbero esserne interessate.  Al contrario di altri progetti, il kernel
2948c2ecf20Sopenharmony_ciincoraggia le persone a peccare nell'invio di tante copie; non presumente che
2958c2ecf20Sopenharmony_cile persone interessate vedano i vostri messaggi sulla lista di discussione.
2968c2ecf20Sopenharmony_ciIn particolare le copie dovrebbero essere inviate a:
2978c2ecf20Sopenharmony_ci
2988c2ecf20Sopenharmony_ci - I manutentori dei sottosistemi affetti della modifica.  Come descritto
2998c2ecf20Sopenharmony_ci   in precedenza, il file MAINTAINERS è il primo luogo dove cercare i nomi
3008c2ecf20Sopenharmony_ci   di queste persone.
3018c2ecf20Sopenharmony_ci
3028c2ecf20Sopenharmony_ci - Altri sviluppatori che hanno lavorato nello stesso ambiente - specialmente
3038c2ecf20Sopenharmony_ci   quelli che potrebbero lavorarci proprio ora.  Usate git potrebbe essere
3048c2ecf20Sopenharmony_ci   utile per vedere chi altri ha modificato i file su cui state lavorando.
3058c2ecf20Sopenharmony_ci
3068c2ecf20Sopenharmony_ci - Se state rispondendo a un rapporto su un baco, o a una richiesta di
3078c2ecf20Sopenharmony_ci   funzionalità, includete anche gli autori di quei rapporti/richieste.
3088c2ecf20Sopenharmony_ci
3098c2ecf20Sopenharmony_ci - Inviate una copia alle liste di discussione interessate, o, se nient'altro
3108c2ecf20Sopenharmony_ci   è adatto, alla lista linux-kernel
3118c2ecf20Sopenharmony_ci
3128c2ecf20Sopenharmony_ci - Se state correggendo un baco, pensate se la patch dovrebbe essere inclusa
3138c2ecf20Sopenharmony_ci   nel prossimo rilascio stabile.  Se è così, la lista di discussione
3148c2ecf20Sopenharmony_ci   stable@vger.kernel.org dovrebbe riceverne una copia.  Aggiungete anche
3158c2ecf20Sopenharmony_ci   l'etichetta "Cc: stable@vger.kernel.org" nella patch stessa; questo
3168c2ecf20Sopenharmony_ci   permetterà alla squadra *stable* di ricevere una notifica quando questa
3178c2ecf20Sopenharmony_ci   correzione viene integrata nel ramo principale.
3188c2ecf20Sopenharmony_ci
3198c2ecf20Sopenharmony_ciQuando scegliete i destinatari della patch, è bene avere un'idea di chi
3208c2ecf20Sopenharmony_cipensiate che sia colui che, eventualmente, accetterà la vostra patch e
3218c2ecf20Sopenharmony_cila integrerà.  Nonostante sia possibile inviare patch direttamente a
3228c2ecf20Sopenharmony_ciLinus Torvalds, e lasciare che sia lui ad integrarle,solitamente non è la
3238c2ecf20Sopenharmony_cistrada migliore da seguire.  Linus è occupato, e ci sono dei manutentori di
3248c2ecf20Sopenharmony_cisotto-sistema che controllano una parte specifica del kernel.  Solitamente,
3258c2ecf20Sopenharmony_civorreste che siano questi manutentori ad integrare le vostre patch.  Se non
3268c2ecf20Sopenharmony_cic'è un chiaro manutentore, l'ultima spiaggia è spesso Andrew Morton.
3278c2ecf20Sopenharmony_ci
3288c2ecf20Sopenharmony_ciLe patch devono avere anche un buon oggetto.  Il tipico formato per l'oggetto
3298c2ecf20Sopenharmony_cidi una patch assomiglia a questo:
3308c2ecf20Sopenharmony_ci
3318c2ecf20Sopenharmony_ci::
3328c2ecf20Sopenharmony_ci
3338c2ecf20Sopenharmony_ci	[PATCH nn/mm] subsys: one-line description of the patch
3348c2ecf20Sopenharmony_ci
3358c2ecf20Sopenharmony_cidove "nn" è il numero ordinale della patch, "mm" è il numero totale delle patch
3368c2ecf20Sopenharmony_cinella serie, e "subsys" è il nome del sottosistema interessato.  Chiaramente,
3378c2ecf20Sopenharmony_cinn/mm può essere omesso per una serie composta da una singola patch.
3388c2ecf20Sopenharmony_ci
3398c2ecf20Sopenharmony_ciSe avete una significative serie di patch, è prassi inviare una descrizione
3408c2ecf20Sopenharmony_ciintroduttiva come parte zero.  Tuttavia questa convenzione non è universalmente
3418c2ecf20Sopenharmony_ciseguita; se la usate, ricordate che le informazioni nell'introduzione non
3428c2ecf20Sopenharmony_cifaranno parte del changelog del kernel.  Quindi per favore, assicuratevi che
3438c2ecf20Sopenharmony_ciogni patch abbia un changelog completo.
3448c2ecf20Sopenharmony_ci
3458c2ecf20Sopenharmony_ciIn generale, la seconda parte e quelle successive di una patch "composta"
3468c2ecf20Sopenharmony_cidovrebbero essere inviate come risposta alla prima, cosicché vengano viste
3478c2ecf20Sopenharmony_cicome un unico *thread*.  Strumenti come git e quilt hanno comandi per inviare
3488c2ecf20Sopenharmony_cigruppi di patch con la struttura appropriata.  Se avete una serie lunga
3498c2ecf20Sopenharmony_cie state usando git, per favore state alla larga dall'opzione --chain-reply-to
3508c2ecf20Sopenharmony_ciper evitare di creare un annidamento eccessivo.
351