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