18c2ecf20Sopenharmony_ci.. include:: ../disclaimer-ita.rst
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci:Original: :ref:`Documentation/process/submitting-patches.rst <submittingpatches>`
48c2ecf20Sopenharmony_ci:Translator: Federico Vaga <federico.vaga@vaga.pv.it>
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci.. _it_submittingpatches:
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciInviare patch: la guida essenziale per vedere il vostro codice nel kernel
98c2ecf20Sopenharmony_ci=========================================================================
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciUna persona o un'azienda che volesse inviare una patch al kernel potrebbe
128c2ecf20Sopenharmony_cisentirsi scoraggiata dal processo di sottomissione, specialmente quando manca
138c2ecf20Sopenharmony_ciuna certa familiarità col "sistema".  Questo testo è una raccolta di
148c2ecf20Sopenharmony_cisuggerimenti che aumenteranno significativamente le probabilità di vedere le
158c2ecf20Sopenharmony_civostre patch accettate.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciQuesto documento contiene un vasto numero di suggerimenti concisi.  Per
188c2ecf20Sopenharmony_cimaggiori dettagli su come funziona il processo di sviluppo del kernel leggete
198c2ecf20Sopenharmony_ci:ref:`Documentation/translations/it_IT/process <it_development_process_main>`.
208c2ecf20Sopenharmony_ciLeggete anche :ref:`Documentation/translations/it_IT/process/submit-checklist.rst <it_submitchecklist>`
218c2ecf20Sopenharmony_ciper una lista di punti da verificare prima di inviare del codice.  Se state
228c2ecf20Sopenharmony_ciinviando un driver, allora leggete anche :ref:`Documentation/translations/it_IT/process/submitting-drivers.rst <it_submittingdrivers>`;
238c2ecf20Sopenharmony_ciper delle patch relative alle associazioni per Device Tree leggete
248c2ecf20Sopenharmony_ciDocumentation/devicetree/bindings/submitting-patches.rst.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciMolti di questi passi descrivono il comportamento di base del sistema di
278c2ecf20Sopenharmony_cicontrollo di versione ``git``; se utilizzate ``git`` per preparare le vostre
288c2ecf20Sopenharmony_cipatch molto del lavoro più ripetitivo lo troverete già fatto per voi, tuttavia
298c2ecf20Sopenharmony_cidovete preparare e documentare un certo numero di patch.  Generalmente, l'uso
308c2ecf20Sopenharmony_cidi ``git`` renderà la vostra vita di sviluppatore del kernel più facile.
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci0) Ottenere i sorgenti attuali
338c2ecf20Sopenharmony_ci------------------------------
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciSe non avete un repositorio coi sorgenti del kernel più recenti, allora usate
368c2ecf20Sopenharmony_ci``git`` per ottenerli.  Vorrete iniziare col repositorio principale che può
378c2ecf20Sopenharmony_ciessere recuperato col comando::
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci  git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ciNotate, comunque, che potreste non voler sviluppare direttamente coi sorgenti
428c2ecf20Sopenharmony_ciprincipali del kernel.  La maggior parte dei manutentori hanno i propri
438c2ecf20Sopenharmony_cisorgenti e desiderano che le patch siano preparate basandosi su di essi.
448c2ecf20Sopenharmony_ciGuardate l'elemento **T:** per un determinato sottosistema nel file MAINTANERS
458c2ecf20Sopenharmony_ciche troverete nei sorgenti, o semplicemente chiedete al manutentore nel caso
468c2ecf20Sopenharmony_ciin cui i sorgenti da usare non siano elencati il quel file.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciEsiste ancora la possibilità di scaricare un rilascio del kernel come archivio
498c2ecf20Sopenharmony_citar (come descritto in una delle prossime sezioni), ma questa è la via più
508c2ecf20Sopenharmony_cicomplicata per sviluppare per il kernel.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci1) ``diff -up``
538c2ecf20Sopenharmony_ci---------------
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciSe dovete produrre le vostre patch a mano, usate ``diff -up`` o ``diff -uprN``
568c2ecf20Sopenharmony_ciper crearle.  Git produce di base le patch in questo formato; se state
578c2ecf20Sopenharmony_ciusando ``git``, potete saltare interamente questa sezione.
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciTutte le modifiche al kernel Linux avvengono mediate patch, come descritte
608c2ecf20Sopenharmony_ciin :manpage:`diff(1)`.  Quando create la vostra patch, assicuratevi di
618c2ecf20Sopenharmony_cicrearla nel formato "unified diff", come l'argomento ``-u`` di
628c2ecf20Sopenharmony_ci:manpage:`diff(1)`.
638c2ecf20Sopenharmony_ciInoltre, per favore usate l'argomento ``-p`` per mostrare la funzione C
648c2ecf20Sopenharmony_cialla quale si riferiscono le diverse modifiche - questo rende il risultato
658c2ecf20Sopenharmony_cidi ``diff`` molto più facile da leggere.  Le patch dovrebbero essere basate
668c2ecf20Sopenharmony_cisulla radice dei sorgenti del kernel, e non sulle sue sottocartelle.
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ciPer creare una patch per un singolo file, spesso è sufficiente fare::
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci	SRCTREE=linux
718c2ecf20Sopenharmony_ci	MYFILE=drivers/net/mydriver.c
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci	cd $SRCTREE
748c2ecf20Sopenharmony_ci	cp $MYFILE $MYFILE.orig
758c2ecf20Sopenharmony_ci	vi $MYFILE	# make your change
768c2ecf20Sopenharmony_ci	cd ..
778c2ecf20Sopenharmony_ci	diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ciPer creare una patch per molteplici file, dovreste spacchettare i sorgenti
808c2ecf20Sopenharmony_ci"vergini", o comunque non modificati, e fare un ``diff`` coi vostri.
818c2ecf20Sopenharmony_ciPer esempio::
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci	MYSRC=/devel/linux
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci	tar xvfz linux-3.19.tar.gz
868c2ecf20Sopenharmony_ci	mv linux-3.19 linux-3.19-vanilla
878c2ecf20Sopenharmony_ci	diff -uprN -X linux-3.19-vanilla/Documentation/dontdiff \
888c2ecf20Sopenharmony_ci		linux-3.19-vanilla $MYSRC > /tmp/patch
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci``dontdiff`` è una lista di file che sono generati durante il processo di
918c2ecf20Sopenharmony_cicompilazione del kernel; questi dovrebbero essere ignorati in qualsiasi
928c2ecf20Sopenharmony_cipatch generata con :manpage:`diff(1)`.
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ciAssicuratevi che la vostra patch non includa file che non ne fanno veramente
958c2ecf20Sopenharmony_ciparte.  Al fine di verificarne la correttezza, assicuratevi anche di
968c2ecf20Sopenharmony_cirevisionare la vostra patch -dopo- averla generata con :manpage:`diff(1)`.
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ciSe le vostre modifiche producono molte differenze, allora dovrete dividerle
998c2ecf20Sopenharmony_ciin patch indipendenti che modificano le cose in passi logici;  leggete
1008c2ecf20Sopenharmony_ci:ref:`split_changes`.  Questo faciliterà la revisione da parte degli altri
1018c2ecf20Sopenharmony_cisviluppatori, il che è molto importante se volete che la patch venga accettata.
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ciSe state utilizzando ``git``, ``git rebase -i`` può aiutarvi nel procedimento.
1048c2ecf20Sopenharmony_ciSe non usate ``git``, un'alternativa popolare è ``quilt``
1058c2ecf20Sopenharmony_ci<http://savannah.nongnu.org/projects/quilt>.
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci.. _it_describe_changes:
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci2) Descrivete le vostre modifiche
1108c2ecf20Sopenharmony_ci---------------------------------
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ciDescrivete il vostro problema. Esiste sempre un problema che via ha spinto
1138c2ecf20Sopenharmony_ciha fare il vostro lavoro, che sia la correzione di un baco da una riga o una
1148c2ecf20Sopenharmony_cinuova funzionalità da 5000 righe di codice.  Convincete i revisori che vale
1158c2ecf20Sopenharmony_cila pena risolvere il vostro problema e che ha senso continuare a leggere oltre
1168c2ecf20Sopenharmony_cial primo paragrafo.
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ciDescrivete ciò che sarà visibile agli utenti.  Chiari incidenti nel sistema
1198c2ecf20Sopenharmony_cie blocchi sono abbastanza convincenti, ma non tutti i bachi sono così evidenti.
1208c2ecf20Sopenharmony_ciAnche se il problema è stato scoperto durante la revisione del codice,
1218c2ecf20Sopenharmony_cidescrivete l'impatto che questo avrà sugli utenti.  Tenete presente che
1228c2ecf20Sopenharmony_cila maggior parte delle installazioni Linux usa un kernel che arriva dai
1238c2ecf20Sopenharmony_cisorgenti stabili o dai sorgenti di una distribuzione particolare che prende
1248c2ecf20Sopenharmony_cisingolarmente le patch dai sorgenti principali; quindi, includete tutte
1258c2ecf20Sopenharmony_cile informazioni che possono essere utili a capire le vostre modifiche:
1268c2ecf20Sopenharmony_cile circostanze che causano il problema, estratti da dmesg, descrizioni di
1278c2ecf20Sopenharmony_ciun incidente di sistema, prestazioni di una regressione, picchi di latenza,
1288c2ecf20Sopenharmony_ciblocchi, eccetera.
1298c2ecf20Sopenharmony_ci
1308c2ecf20Sopenharmony_ciQuantificare le ottimizzazioni e i compromessi.  Se affermate di aver
1318c2ecf20Sopenharmony_cimigliorato le prestazioni, il consumo di memoria, l'impatto sollo stack,
1328c2ecf20Sopenharmony_cio la dimensione del file binario, includete dei numeri a supporto della
1338c2ecf20Sopenharmony_civostra dichiarazione.  Ma ricordatevi di descrivere anche eventuali costi
1348c2ecf20Sopenharmony_ciche non sono ovvi.  Solitamente le ottimizzazioni non sono gratuite, ma sono
1358c2ecf20Sopenharmony_ciun compromesso fra l'uso di CPU, la memoria e la leggibilità; o, quando si
1368c2ecf20Sopenharmony_ciparla di ipotesi euristiche, fra differenti carichi.  Descrivete i lati
1378c2ecf20Sopenharmony_cinegativi che vi aspettate dall'ottimizzazione cosicché i revisori possano
1388c2ecf20Sopenharmony_civalutare i costi e i benefici.
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ciUna volta che il problema è chiaro, descrivete come lo risolvete andando
1418c2ecf20Sopenharmony_cinel dettaglio tecnico.  È molto importante che descriviate la modifica
1428c2ecf20Sopenharmony_ciin un inglese semplice cosicché i revisori possano verificare che il codice si
1438c2ecf20Sopenharmony_cicomporti come descritto.
1448c2ecf20Sopenharmony_ci
1458c2ecf20Sopenharmony_ciI manutentori vi saranno grati se scrivete la descrizione della patch in un
1468c2ecf20Sopenharmony_ciformato che sia compatibile con il gestore dei sorgenti usato dal kernel,
1478c2ecf20Sopenharmony_ci``git``, come un "commit log".  Leggete :ref:`it_explicit_in_reply_to`.
1488c2ecf20Sopenharmony_ci
1498c2ecf20Sopenharmony_ciRisolvete solo un problema per patch.  Se la vostra descrizione inizia ad
1508c2ecf20Sopenharmony_ciessere lunga, potrebbe essere un segno che la vostra patch necessita d'essere
1518c2ecf20Sopenharmony_cidivisa. Leggete :ref:`split_changes`.
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ciQuando inviate o rinviate una patch o una serie, includete la descrizione
1548c2ecf20Sopenharmony_cicompleta delle modifiche e la loro giustificazione.  Non limitatevi a dire che
1558c2ecf20Sopenharmony_ciquesta è la versione N della patch (o serie).  Non aspettatevi che i
1568c2ecf20Sopenharmony_cimanutentori di un sottosistema vadano a cercare le versioni precedenti per
1578c2ecf20Sopenharmony_cicercare la descrizione da aggiungere.  In pratica, la patch (o serie) e la sua
1588c2ecf20Sopenharmony_cidescrizione devono essere un'unica cosa.  Questo aiuta i manutentori e i
1598c2ecf20Sopenharmony_cirevisori.  Probabilmente, alcuni revisori non hanno nemmeno ricevuto o visto
1608c2ecf20Sopenharmony_cile versioni precedenti della patch.
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ciDescrivete le vostro modifiche usando l'imperativo, per esempio "make xyzzy
1638c2ecf20Sopenharmony_cido frotz" piuttosto che "[This patch] makes xyzzy do frotz" or "[I] changed
1648c2ecf20Sopenharmony_cixyzzy to do frotz", come se steste dando ordini al codice di cambiare il suo
1658c2ecf20Sopenharmony_cicomportamento.
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ciSe la patch corregge un baco conosciuto, fare riferimento a quel baco inserendo
1688c2ecf20Sopenharmony_ciil suo numero o il suo URL.  Se la patch è la conseguenza di una discussione
1698c2ecf20Sopenharmony_cisu una lista di discussione, allora fornite l'URL all'archivio di quella
1708c2ecf20Sopenharmony_cidiscussione;  usate i collegamenti a https://lkml.kernel.org/ con il
1718c2ecf20Sopenharmony_ci``Message-Id``, in questo modo vi assicurerete che il collegamento non diventi
1728c2ecf20Sopenharmony_ciinvalido nel tempo.
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ciTuttavia, cercate di rendere la vostra spiegazione comprensibile anche senza
1758c2ecf20Sopenharmony_cifar riferimento a fonti esterne.  In aggiunta ai collegamenti a bachi e liste
1768c2ecf20Sopenharmony_cidi discussione, riassumente i punti più importanti della discussione che hanno
1778c2ecf20Sopenharmony_ciportato alla creazione della patch.
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ciSe volete far riferimento a uno specifico commit, non usate solo
1808c2ecf20Sopenharmony_cil'identificativo SHA-1.  Per cortesia, aggiungete anche la breve riga
1818c2ecf20Sopenharmony_ciriassuntiva del commit per rendere la chiaro ai revisori l'oggetto.
1828c2ecf20Sopenharmony_ciPer esempio::
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci	Commit e21d2170f36602ae2708 ("video: remove unnecessary
1858c2ecf20Sopenharmony_ci	platform_set_drvdata()") removed the unnecessary
1868c2ecf20Sopenharmony_ci	platform_set_drvdata(), but left the variable "dev" unused,
1878c2ecf20Sopenharmony_ci	delete it.
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ciDovreste anche assicurarvi di usare almeno i primi 12 caratteri
1908c2ecf20Sopenharmony_cidell'identificativo SHA-1.  Il repositorio del kernel ha *molti* oggetti e
1918c2ecf20Sopenharmony_ciquesto rende possibile la collisione fra due identificativi con pochi
1928c2ecf20Sopenharmony_cicaratteri.  Tenete ben presente che anche se oggi non ci sono collisioni con il
1938c2ecf20Sopenharmony_civostro identificativo a 6 caratteri, potrebbero essercene fra 5 anni da oggi.
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ciSe la vostra patch corregge un baco in un commit specifico, per esempio avete
1968c2ecf20Sopenharmony_citrovato un problema usando ``git bisect``, per favore usate l'etichetta
1978c2ecf20Sopenharmony_ci'Fixes:' indicando i primi 12 caratteri dell'identificativo SHA-1 seguiti
1988c2ecf20Sopenharmony_cidalla riga riassuntiva.  Per esempio::
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ci	Fixes: e21d2170f366 ("video: remove unnecessary platform_set_drvdata()")
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ciLa seguente configurazione di ``git config`` può essere usata per formattare
2038c2ecf20Sopenharmony_cii risultati dei comandi ``git log`` o ``git show`` come nell'esempio
2048c2ecf20Sopenharmony_ciprecedente::
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_ci	[core]
2078c2ecf20Sopenharmony_ci		abbrev = 12
2088c2ecf20Sopenharmony_ci	[pretty]
2098c2ecf20Sopenharmony_ci		fixes = Fixes: %h (\"%s\")
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ci.. _it_split_changes:
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_ci3) Separate le vostre modifiche
2148c2ecf20Sopenharmony_ci-------------------------------
2158c2ecf20Sopenharmony_ci
2168c2ecf20Sopenharmony_ciSeparate ogni **cambiamento logico** in patch distinte.
2178c2ecf20Sopenharmony_ci
2188c2ecf20Sopenharmony_ciPer esempio, se i vostri cambiamenti per un singolo driver includono
2198c2ecf20Sopenharmony_cisia delle correzioni di bachi che miglioramenti alle prestazioni,
2208c2ecf20Sopenharmony_ciallora separateli in due o più patch.  Se i vostri cambiamenti includono
2218c2ecf20Sopenharmony_ciun aggiornamento dell'API e un nuovo driver che lo sfrutta, allora separateli
2228c2ecf20Sopenharmony_ciin due patch.
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ciD'altro canto, se fate una singola modifica su più file, raggruppate tutte
2258c2ecf20Sopenharmony_ciqueste modifiche in una singola patch.  Dunque, un singolo cambiamento logico
2268c2ecf20Sopenharmony_ciè contenuto in una sola patch.
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ciIl punto da ricordare è che ogni modifica dovrebbe fare delle modifiche
2298c2ecf20Sopenharmony_ciche siano facilmente comprensibili e che possano essere verificate dai revisori.
2308c2ecf20Sopenharmony_ciOgni patch dovrebbe essere giustificabile di per sé.
2318c2ecf20Sopenharmony_ci
2328c2ecf20Sopenharmony_ciSe al fine di ottenere un cambiamento completo una patch dipende da un'altra,
2338c2ecf20Sopenharmony_civa bene.  Semplicemente scrivete una nota nella descrizione della patch per
2348c2ecf20Sopenharmony_cifarlo presente: **"this patch depends on patch X"**.
2358c2ecf20Sopenharmony_ci
2368c2ecf20Sopenharmony_ciQuando dividete i vostri cambiamenti in una serie di patch, prestate
2378c2ecf20Sopenharmony_ciparticolare attenzione alla verifica di ogni patch della serie; per ognuna
2388c2ecf20Sopenharmony_ciil kernel deve compilare ed essere eseguito correttamente.  Gli sviluppatori
2398c2ecf20Sopenharmony_ciche usano ``git bisect`` per scovare i problemi potrebbero finire nel mezzo
2408c2ecf20Sopenharmony_cidella vostra serie in un punto qualsiasi; non vi saranno grati se nel mezzo
2418c2ecf20Sopenharmony_ciavete introdotto dei bachi.
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ciSe non potete condensare la vostra serie di patch in una più piccola, allora
2448c2ecf20Sopenharmony_cipubblicatene una quindicina alla volta e aspettate che vengano revisionate
2458c2ecf20Sopenharmony_cied integrate.
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ci
2488c2ecf20Sopenharmony_ci4) Verificate lo stile delle vostre modifiche
2498c2ecf20Sopenharmony_ci---------------------------------------------
2508c2ecf20Sopenharmony_ci
2518c2ecf20Sopenharmony_ciControllate che la vostra patch non violi lo stile del codice, maggiori
2528c2ecf20Sopenharmony_cidettagli sono disponibili in :ref:`Documentation/translations/it_IT/process/coding-style.rst <it_codingstyle>`.
2538c2ecf20Sopenharmony_ciNon farlo porta semplicemente a una perdita di tempo da parte dei revisori e
2548c2ecf20Sopenharmony_civoi vedrete la vostra patch rifiutata, probabilmente senza nemmeno essere stata
2558c2ecf20Sopenharmony_ciletta.
2568c2ecf20Sopenharmony_ci
2578c2ecf20Sopenharmony_ciUn'eccezione importante si ha quando del codice viene spostato da un file
2588c2ecf20Sopenharmony_ciad un altro -- in questo caso non dovreste modificare il codice spostato
2598c2ecf20Sopenharmony_ciper nessun motivo, almeno non nella patch che lo sposta.  Questo separa
2608c2ecf20Sopenharmony_cichiaramente l'azione di spostare il codice e il vostro cambiamento.
2618c2ecf20Sopenharmony_ciQuesto aiuta enormemente la revisione delle vere differenze e permette agli
2628c2ecf20Sopenharmony_cistrumenti di tenere meglio la traccia della storia del codice.
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ciPrima di inviare una patch, verificatene lo stile usando l'apposito
2658c2ecf20Sopenharmony_civerificatore (scripts/checkpatch.pl).  Da notare, comunque, che il verificator
2668c2ecf20Sopenharmony_cidi stile dovrebbe essere visto come una guida, non come un sostituto al
2678c2ecf20Sopenharmony_cigiudizio umano.  Se il vostro codice è migliore nonostante una violazione
2688c2ecf20Sopenharmony_cidello stile, probabilmente è meglio lasciarlo com'è.
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_ciIl verificatore ha tre diversi livelli di severità:
2718c2ecf20Sopenharmony_ci - ERROR: le cose sono molto probabilmente sbagliate
2728c2ecf20Sopenharmony_ci - WARNING: le cose necessitano d'essere revisionate con attenzione
2738c2ecf20Sopenharmony_ci - CHECK: le cose necessitano di un pensierino
2748c2ecf20Sopenharmony_ci
2758c2ecf20Sopenharmony_ciDovreste essere in grado di giustificare tutte le eventuali violazioni rimaste
2768c2ecf20Sopenharmony_cinella vostra patch.
2778c2ecf20Sopenharmony_ci
2788c2ecf20Sopenharmony_ci
2798c2ecf20Sopenharmony_ci5) Selezionate i destinatari della vostra patch
2808c2ecf20Sopenharmony_ci-----------------------------------------------
2818c2ecf20Sopenharmony_ci
2828c2ecf20Sopenharmony_ciDovreste sempre inviare una copia della patch ai manutentori dei sottosistemi
2838c2ecf20Sopenharmony_ciinteressati dalle modifiche; date un'occhiata al file MAINTAINERS e alla storia
2848c2ecf20Sopenharmony_cidelle revisioni per scoprire chi si occupa del codice.  Lo script
2858c2ecf20Sopenharmony_ciscripts/get_maintainer.pl può esservi d'aiuto.  Se non riuscite a trovare un
2868c2ecf20Sopenharmony_cimanutentore per il sottosistema su cui state lavorando, allora Andrew Morton
2878c2ecf20Sopenharmony_ci(akpm@linux-foundation.org) sarà la vostra ultima possibilità.
2888c2ecf20Sopenharmony_ci
2898c2ecf20Sopenharmony_ciNormalmente, dovreste anche scegliere una lista di discussione a cui inviare
2908c2ecf20Sopenharmony_cila vostra serie di patch.  La lista di discussione linux-kernel@vger.kernel.org
2918c2ecf20Sopenharmony_ciè proprio l'ultima spiaggia, il volume di email su questa lista fa si che
2928c2ecf20Sopenharmony_cidiversi sviluppatori non la seguano.  Guardate nel file MAINTAINERS per trovare
2938c2ecf20Sopenharmony_cila lista di discussione dedicata ad un sottosistema; probabilmente lì la vostra
2948c2ecf20Sopenharmony_cipatch riceverà molta più attenzione.  Tuttavia, per favore, non spammate le
2958c2ecf20Sopenharmony_ciliste di discussione che non sono interessate al vostro lavoro.
2968c2ecf20Sopenharmony_ci
2978c2ecf20Sopenharmony_ciMolte delle liste di discussione relative al kernel vengono ospitate su
2988c2ecf20Sopenharmony_civger.kernel.org; potete trovare un loro elenco alla pagina
2998c2ecf20Sopenharmony_cihttp://vger.kernel.org/vger-lists.html.  Tuttavia, ci sono altre liste di
3008c2ecf20Sopenharmony_cidiscussione ospitate altrove.
3018c2ecf20Sopenharmony_ci
3028c2ecf20Sopenharmony_ciNon inviate più di 15 patch alla volta sulle liste di discussione vger!!!
3038c2ecf20Sopenharmony_ci
3048c2ecf20Sopenharmony_ciL'ultimo giudizio sull'integrazione delle modifiche accettate spetta a
3058c2ecf20Sopenharmony_ciLinux Torvalds.  Il suo indirizzo e-mail è <torvalds@linux-foundation.org>.
3068c2ecf20Sopenharmony_ciRiceve moltissime e-mail, e, a questo punto, solo poche patch passano
3078c2ecf20Sopenharmony_cidirettamente attraverso il suo giudizio; quindi, dovreste fare del vostro
3088c2ecf20Sopenharmony_cimeglio per -evitare di- inviargli e-mail.
3098c2ecf20Sopenharmony_ci
3108c2ecf20Sopenharmony_ciSe avete una patch che corregge un baco di sicurezza che potrebbe essere
3118c2ecf20Sopenharmony_cisfruttato, inviatela a security@kernel.org.  Per bachi importanti, un breve
3128c2ecf20Sopenharmony_ciembargo potrebbe essere preso in considerazione per dare il tempo alle
3138c2ecf20Sopenharmony_cidistribuzioni di prendere la patch e renderla disponibile ai loro utenti;
3148c2ecf20Sopenharmony_ciin questo caso, ovviamente, la patch non dovrebbe essere inviata su alcuna
3158c2ecf20Sopenharmony_cilista di discussione pubblica.
3168c2ecf20Sopenharmony_ci
3178c2ecf20Sopenharmony_ciPatch che correggono bachi importanti su un kernel già rilasciato, dovrebbero
3188c2ecf20Sopenharmony_ciessere inviate ai manutentori dei kernel stabili aggiungendo la seguente riga::
3198c2ecf20Sopenharmony_ci
3208c2ecf20Sopenharmony_ci  Cc: stable@vger.kernel.org
3218c2ecf20Sopenharmony_ci
3228c2ecf20Sopenharmony_cinella vostra patch, nell'area dedicata alle firme (notate, NON come destinatario
3238c2ecf20Sopenharmony_cidelle e-mail).  In aggiunta a questo file, dovreste leggere anche
3248c2ecf20Sopenharmony_ci:ref:`Documentation/translations/it_IT/process/stable-kernel-rules.rst <it_stable_kernel_rules>`
3258c2ecf20Sopenharmony_ci
3268c2ecf20Sopenharmony_ciTuttavia, notate, che alcuni manutentori di sottosistema preferiscono avere
3278c2ecf20Sopenharmony_cil'ultima parola su quali patch dovrebbero essere aggiunte ai kernel stabili.
3288c2ecf20Sopenharmony_ciLa rete di manutentori, in particolare, non vorrebbe vedere i singoli
3298c2ecf20Sopenharmony_cisviluppatori aggiungere alle loro patch delle righe come quella sopracitata.
3308c2ecf20Sopenharmony_ci
3318c2ecf20Sopenharmony_ciSe le modifiche hanno effetti sull'interfaccia con lo spazio utente, per favore
3328c2ecf20Sopenharmony_ciinviate una patch per le pagine man ai manutentori di suddette pagine (elencati
3338c2ecf20Sopenharmony_cinel file MAINTAINERS), o almeno una notifica circa la vostra modifica,
3348c2ecf20Sopenharmony_cicosicché l'informazione possa trovare la sua strada nel manuale.  Le modifiche
3358c2ecf20Sopenharmony_ciall'API dello spazio utente dovrebbero essere inviate in copia anche a
3368c2ecf20Sopenharmony_cilinux-api@vger.kernel.org.
3378c2ecf20Sopenharmony_ci
3388c2ecf20Sopenharmony_ciPer le piccole patch potreste aggiungere in CC l'indirizzo
3398c2ecf20Sopenharmony_ci*Trivial Patch Monkey trivial@kernel.org* che ha lo scopo di raccogliere
3408c2ecf20Sopenharmony_cile patch "banali".  Date uno sguardo al file MAINTAINERS per vedere chi
3418c2ecf20Sopenharmony_ciè l'attuale amministratore.
3428c2ecf20Sopenharmony_ci
3438c2ecf20Sopenharmony_ciLe patch banali devono rientrare in una delle seguenti categorie:
3448c2ecf20Sopenharmony_ci
3458c2ecf20Sopenharmony_ci- errori grammaticali nella documentazione
3468c2ecf20Sopenharmony_ci- errori grammaticali negli errori che potrebbero rompere :manpage:`grep(1)`
3478c2ecf20Sopenharmony_ci- correzione di avvisi di compilazione (riempirsi di avvisi inutili è negativo)
3488c2ecf20Sopenharmony_ci- correzione di errori di compilazione (solo se correggono qualcosa sul serio)
3498c2ecf20Sopenharmony_ci- rimozione di funzioni/macro deprecate
3508c2ecf20Sopenharmony_ci- sostituzione di codice non potabile con uno portabile (anche in codice
3518c2ecf20Sopenharmony_ci  specifico per un'architettura, dato che le persone copiano, fintanto che
3528c2ecf20Sopenharmony_ci  la modifica sia banale)
3538c2ecf20Sopenharmony_ci- qualsiasi modifica dell'autore/manutentore di un file (in pratica
3548c2ecf20Sopenharmony_ci  "patch monkey" in modalità ritrasmissione)
3558c2ecf20Sopenharmony_ci
3568c2ecf20Sopenharmony_ci
3578c2ecf20Sopenharmony_ci6) Niente: MIME, links, compressione, allegati.  Solo puro testo
3588c2ecf20Sopenharmony_ci----------------------------------------------------------------
3598c2ecf20Sopenharmony_ci
3608c2ecf20Sopenharmony_ciLinus e gli altri sviluppatori del kernel devono poter commentare
3618c2ecf20Sopenharmony_cile modifiche che sottomettete.  Per uno sviluppatore è importante
3628c2ecf20Sopenharmony_ciessere in grado di "citare" le vostre modifiche, usando normali
3638c2ecf20Sopenharmony_ciprogrammi di posta elettronica, cosicché sia possibile commentare
3648c2ecf20Sopenharmony_ciuna porzione specifica del vostro codice.
3658c2ecf20Sopenharmony_ci
3668c2ecf20Sopenharmony_ciPer questa ragione tutte le patch devono essere inviate via e-mail
3678c2ecf20Sopenharmony_cicome testo.
3688c2ecf20Sopenharmony_ci
3698c2ecf20Sopenharmony_ci.. warning::
3708c2ecf20Sopenharmony_ci
3718c2ecf20Sopenharmony_ci  Se decidete di copiare ed incollare la patch nel corpo dell'e-mail, state
3728c2ecf20Sopenharmony_ci  attenti che il vostro programma non corrompa il contenuto con andate
3738c2ecf20Sopenharmony_ci  a capo automatiche.
3748c2ecf20Sopenharmony_ci
3758c2ecf20Sopenharmony_ciLa patch non deve essere un allegato MIME, compresso o meno.  Molti
3768c2ecf20Sopenharmony_cidei più popolari programmi di posta elettronica non trasmettono un allegato
3778c2ecf20Sopenharmony_ciMIME come puro testo, e questo rende impossibile commentare il vostro codice.
3788c2ecf20Sopenharmony_ciInoltre, un allegato MIME rende l'attività di Linus più laboriosa, diminuendo
3798c2ecf20Sopenharmony_cicosì la possibilità che il vostro allegato-MIME venga accettato.
3808c2ecf20Sopenharmony_ci
3818c2ecf20Sopenharmony_ciEccezione: se il vostro servizio di posta storpia le patch, allora qualcuno
3828c2ecf20Sopenharmony_cipotrebbe chiedervi di rinviarle come allegato MIME.
3838c2ecf20Sopenharmony_ci
3848c2ecf20Sopenharmony_ciLeggete :ref:`Documentation/translations/it_IT/process/email-clients.rst <it_email_clients>`
3858c2ecf20Sopenharmony_ciper dei suggerimenti sulla configurazione del programmi di posta elettronica
3868c2ecf20Sopenharmony_ciper l'invio di patch intatte.
3878c2ecf20Sopenharmony_ci
3888c2ecf20Sopenharmony_ci7) Dimensione delle e-mail
3898c2ecf20Sopenharmony_ci--------------------------
3908c2ecf20Sopenharmony_ci
3918c2ecf20Sopenharmony_ciLe grosse modifiche non sono adatte ad una lista di discussione, e nemmeno
3928c2ecf20Sopenharmony_ciper alcuni manutentori.  Se la vostra patch, non compressa, eccede i 300 kB
3938c2ecf20Sopenharmony_cidi spazio, allora caricatela in una spazio accessibile su internet fornendo
3948c2ecf20Sopenharmony_cil'URL (collegamento) ad essa.  Ma notate che se la vostra patch eccede i 300 kB
3958c2ecf20Sopenharmony_ciè quasi certo che necessiti comunque di essere spezzettata.
3968c2ecf20Sopenharmony_ci
3978c2ecf20Sopenharmony_ci8) Rispondere ai commenti di revisione
3988c2ecf20Sopenharmony_ci--------------------------------------
3998c2ecf20Sopenharmony_ci
4008c2ecf20Sopenharmony_ciQuasi certamente i revisori vi invieranno dei commenti su come migliorare
4018c2ecf20Sopenharmony_cila vostra patch.  Dovete rispondere a questi commenti; ignorare i revisori
4028c2ecf20Sopenharmony_ciè un ottimo modo per essere ignorati.  Riscontri o domande che non conducono
4038c2ecf20Sopenharmony_ciad una modifica del codice quasi certamente dovrebbero portare ad un commento
4048c2ecf20Sopenharmony_cinel changelog cosicché il prossimo revisore potrà meglio comprendere cosa stia
4058c2ecf20Sopenharmony_ciaccadendo.
4068c2ecf20Sopenharmony_ci
4078c2ecf20Sopenharmony_ciAssicuratevi di dire ai revisori quali cambiamenti state facendo e di
4088c2ecf20Sopenharmony_ciringraziarli per il loro tempo.  Revisionare codice è un lavoro faticoso e che
4098c2ecf20Sopenharmony_cirichiede molto tempo, e a volte i revisori diventano burberi.  Tuttavia, anche
4108c2ecf20Sopenharmony_ciin questo caso, rispondete con educazione e concentratevi sul problema che
4118c2ecf20Sopenharmony_cihanno evidenziato.
4128c2ecf20Sopenharmony_ci
4138c2ecf20Sopenharmony_ci9) Non scoraggiatevi - o impazientitevi
4148c2ecf20Sopenharmony_ci---------------------------------------
4158c2ecf20Sopenharmony_ci
4168c2ecf20Sopenharmony_ciDopo che avete inviato le vostre modifiche, siate pazienti e aspettate.
4178c2ecf20Sopenharmony_ciI revisori sono persone occupate e potrebbero non ricevere la vostra patch
4188c2ecf20Sopenharmony_ciimmediatamente.
4198c2ecf20Sopenharmony_ci
4208c2ecf20Sopenharmony_ciUn tempo, le patch erano solite scomparire nel vuoto senza alcun commento,
4218c2ecf20Sopenharmony_cima ora il processo di sviluppo funziona meglio.  Dovreste ricevere commenti
4228c2ecf20Sopenharmony_ciin una settimana o poco più; se questo non dovesse accadere, assicuratevi di
4238c2ecf20Sopenharmony_ciaver inviato le patch correttamente.  Aspettate almeno una settimana prima di
4248c2ecf20Sopenharmony_cirinviare le modifiche o sollecitare i revisori - probabilmente anche di più
4258c2ecf20Sopenharmony_cidurante la finestra d'integrazione.
4268c2ecf20Sopenharmony_ci
4278c2ecf20Sopenharmony_ci10) Aggiungete PATCH nell'oggetto
4288c2ecf20Sopenharmony_ci---------------------------------
4298c2ecf20Sopenharmony_ci
4308c2ecf20Sopenharmony_ciDato l'alto volume di e-mail per Linus, e la lista linux-kernel, è prassi
4318c2ecf20Sopenharmony_ciprefiggere il vostro oggetto con [PATCH].  Questo permette a Linus e agli
4328c2ecf20Sopenharmony_cialtri sviluppatori del kernel di distinguere facilmente le patch dalle altre
4338c2ecf20Sopenharmony_cidiscussioni.
4348c2ecf20Sopenharmony_ci
4358c2ecf20Sopenharmony_ci
4368c2ecf20Sopenharmony_ci11) Firmate il vostro lavoro - Il certificato d'origine dello sviluppatore
4378c2ecf20Sopenharmony_ci--------------------------------------------------------------------------
4388c2ecf20Sopenharmony_ci
4398c2ecf20Sopenharmony_ciPer migliorare la tracciabilità su "chi ha fatto cosa", specialmente per
4408c2ecf20Sopenharmony_ciquelle patch che per raggiungere lo stadio finale passano attraverso
4418c2ecf20Sopenharmony_cidiversi livelli di manutentori, abbiamo introdotto la procedura di "firma"
4428c2ecf20Sopenharmony_cidelle patch che vengono inviate per e-mail.
4438c2ecf20Sopenharmony_ci
4448c2ecf20Sopenharmony_ciLa firma è una semplice riga alla fine della descrizione della patch che
4458c2ecf20Sopenharmony_cicertifica che l'avete scritta voi o che avete il diritto di pubblicarla
4468c2ecf20Sopenharmony_cicome patch open-source.  Le regole sono abbastanza semplici: se potete
4478c2ecf20Sopenharmony_cicertificare quanto segue:
4488c2ecf20Sopenharmony_ci
4498c2ecf20Sopenharmony_ciIl certificato d'origine dello sviluppatore 1.1
4508c2ecf20Sopenharmony_ci^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4518c2ecf20Sopenharmony_ci
4528c2ecf20Sopenharmony_ciContribuendo a questo progetto, io certifico che:
4538c2ecf20Sopenharmony_ci
4548c2ecf20Sopenharmony_ci        (a) Il contributo è stato creato interamente, o in parte, da me e che
4558c2ecf20Sopenharmony_ci            ho il diritto di inviarlo in accordo con la licenza open-source
4568c2ecf20Sopenharmony_ci            indicata nel file; oppure
4578c2ecf20Sopenharmony_ci
4588c2ecf20Sopenharmony_ci        (b) Il contributo è basato su un lavoro precedente che, nei limiti
4598c2ecf20Sopenharmony_ci            della mia conoscenza, è coperto da un'appropriata licenza
4608c2ecf20Sopenharmony_ci            open-source che mi da il diritto di modificarlo e inviarlo,
4618c2ecf20Sopenharmony_ci            le cui modifiche sono interamente o in parte mie, in accordo con
4628c2ecf20Sopenharmony_ci            la licenza open-source (a meno che non abbia il permesso di usare
4638c2ecf20Sopenharmony_ci            un'altra licenza) indicata nel file; oppure
4648c2ecf20Sopenharmony_ci
4658c2ecf20Sopenharmony_ci        (c) Il contributo mi è stato fornito direttamente da qualcuno che
4668c2ecf20Sopenharmony_ci            ha certificato (a), (b) o (c) e non l'ho modificata.
4678c2ecf20Sopenharmony_ci
4688c2ecf20Sopenharmony_ci        (d) Capisco e concordo col fatto che questo progetto e i suoi
4698c2ecf20Sopenharmony_ci            contributi sono pubblici e che un registro dei contributi (incluse
4708c2ecf20Sopenharmony_ci            tutte le informazioni personali che invio con essi, inclusa la mia
4718c2ecf20Sopenharmony_ci            firma) verrà mantenuto indefinitamente e che possa essere
4728c2ecf20Sopenharmony_ci            ridistribuito in accordo con questo progetto o le licenze
4738c2ecf20Sopenharmony_ci            open-source coinvolte.
4748c2ecf20Sopenharmony_ci
4758c2ecf20Sopenharmony_cipoi dovete solo aggiungere una riga che dice::
4768c2ecf20Sopenharmony_ci
4778c2ecf20Sopenharmony_ci	Signed-off-by: Random J Developer <random@developer.example.org>
4788c2ecf20Sopenharmony_ci
4798c2ecf20Sopenharmony_ciusando il vostro vero nome (spiacenti, non si accettano pseudonimi o
4808c2ecf20Sopenharmony_cicontributi anonimi).
4818c2ecf20Sopenharmony_ci
4828c2ecf20Sopenharmony_ciAlcune persone aggiungono delle etichette alla fine.  Per ora queste verranno
4838c2ecf20Sopenharmony_ciignorate, ma potete farlo per meglio identificare procedure aziendali interne o
4848c2ecf20Sopenharmony_ciper aggiungere dettagli circa la firma.
4858c2ecf20Sopenharmony_ci
4868c2ecf20Sopenharmony_ciSe siete un manutentore di un sottosistema o di un ramo, qualche volta dovrete
4878c2ecf20Sopenharmony_cimodificare leggermente le patch che avete ricevuto al fine di poterle
4888c2ecf20Sopenharmony_ciintegrare; questo perché il codice non è esattamente lo stesso nei vostri
4898c2ecf20Sopenharmony_cisorgenti e in quelli dei vostri contributori.  Se rispettate rigidamente la
4908c2ecf20Sopenharmony_ciregola (c), dovreste chiedere al mittente di rifare la patch, ma questo è
4918c2ecf20Sopenharmony_cicontroproducente e una totale perdita di tempo ed energia.  La regola (b)
4928c2ecf20Sopenharmony_civi permette di correggere il codice, ma poi diventa davvero maleducato cambiare
4938c2ecf20Sopenharmony_cila patch di qualcuno e addossargli la responsabilità per i vostri bachi.
4948c2ecf20Sopenharmony_ciPer risolvere questo problema dovreste aggiungere una riga, fra l'ultimo
4958c2ecf20Sopenharmony_ciSigned-off-by e il vostro, che spiega la vostra modifica.  Nonostante non ci
4968c2ecf20Sopenharmony_cisia nulla di obbligatorio, un modo efficace è quello di indicare il vostro
4978c2ecf20Sopenharmony_cinome o indirizzo email fra parentesi quadre, seguito da una breve descrizione;
4988c2ecf20Sopenharmony_ciquesto renderà abbastanza visibile chi è responsabile per le modifiche
4998c2ecf20Sopenharmony_cidell'ultimo minuto.  Per esempio::
5008c2ecf20Sopenharmony_ci
5018c2ecf20Sopenharmony_ci	Signed-off-by: Random J Developer <random@developer.example.org>
5028c2ecf20Sopenharmony_ci	[lucky@maintainer.example.org: struct foo moved from foo.c to foo.h]
5038c2ecf20Sopenharmony_ci	Signed-off-by: Lucky K Maintainer <lucky@maintainer.example.org>
5048c2ecf20Sopenharmony_ci
5058c2ecf20Sopenharmony_ciQuesta pratica è particolarmente utile se siete i manutentori di un ramo
5068c2ecf20Sopenharmony_cistabile ma al contempo volete dare credito agli autori, tracciare e integrare
5078c2ecf20Sopenharmony_cile modifiche, e proteggere i mittenti dalle lamentele.  Notate che in nessuna
5088c2ecf20Sopenharmony_cicircostanza è permessa la modifica dell'identità dell'autore (l'intestazione
5098c2ecf20Sopenharmony_ciFrom), dato che è quella che appare nei changelog.
5108c2ecf20Sopenharmony_ci
5118c2ecf20Sopenharmony_ciUn appunto speciale per chi porta il codice su vecchie versioni.  Sembra che
5128c2ecf20Sopenharmony_cisia comune l'utile pratica di inserire un'indicazione circa l'origine della
5138c2ecf20Sopenharmony_cipatch all'inizio del messaggio di commit (appena dopo la riga dell'oggetto)
5148c2ecf20Sopenharmony_cial fine di migliorare la tracciabilità.  Per esempio, questo è quello che si
5158c2ecf20Sopenharmony_civede nel rilascio stabile 3.x-stable::
5168c2ecf20Sopenharmony_ci
5178c2ecf20Sopenharmony_ci  Date:   Tue Oct 7 07:26:38 2014 -0400
5188c2ecf20Sopenharmony_ci
5198c2ecf20Sopenharmony_ci    libata: Un-break ATA blacklist
5208c2ecf20Sopenharmony_ci
5218c2ecf20Sopenharmony_ci    commit 1c40279960bcd7d52dbdf1d466b20d24b99176c8 upstream.
5228c2ecf20Sopenharmony_ci
5238c2ecf20Sopenharmony_ciE qui quello che potrebbe vedersi su un kernel più vecchio dove la patch è
5248c2ecf20Sopenharmony_cistata applicata::
5258c2ecf20Sopenharmony_ci
5268c2ecf20Sopenharmony_ci    Date:   Tue May 13 22:12:27 2008 +0200
5278c2ecf20Sopenharmony_ci
5288c2ecf20Sopenharmony_ci        wireless, airo: waitbusy() won't delay
5298c2ecf20Sopenharmony_ci
5308c2ecf20Sopenharmony_ci        [backport of 2.6 commit b7acbdfbd1f277c1eb23f344f899cfa4cd0bf36a]
5318c2ecf20Sopenharmony_ci
5328c2ecf20Sopenharmony_ciQualunque sia il formato, questa informazione fornisce un importante aiuto
5338c2ecf20Sopenharmony_cialle persone che vogliono seguire i vostri sorgenti, e quelle che cercano
5348c2ecf20Sopenharmony_cidei bachi.
5358c2ecf20Sopenharmony_ci
5368c2ecf20Sopenharmony_ci
5378c2ecf20Sopenharmony_ci12) Quando utilizzare Acked-by:, Cc:, e Co-developed-by:
5388c2ecf20Sopenharmony_ci--------------------------------------------------------
5398c2ecf20Sopenharmony_ci
5408c2ecf20Sopenharmony_ciL'etichetta Signed-off-by: indica che il firmatario è stato coinvolto nello
5418c2ecf20Sopenharmony_cisviluppo della patch, o che era nel suo percorso di consegna.
5428c2ecf20Sopenharmony_ci
5438c2ecf20Sopenharmony_ciSe una persona non è direttamente coinvolta con la preparazione o gestione
5448c2ecf20Sopenharmony_cidella patch ma desidera firmare e mettere agli atti la loro approvazione,
5458c2ecf20Sopenharmony_ciallora queste persone possono chiedere di aggiungere al changelog della patch
5468c2ecf20Sopenharmony_ciuna riga Acked-by:.
5478c2ecf20Sopenharmony_ci
5488c2ecf20Sopenharmony_ciAcked-by: viene spesso utilizzato dai manutentori del sottosistema in oggetto
5498c2ecf20Sopenharmony_ciquando quello stesso manutentore non ha contribuito né trasmesso la patch.
5508c2ecf20Sopenharmony_ci
5518c2ecf20Sopenharmony_ciAcked-by: non è formale come Signed-off-by:.  Questo indica che la persona ha
5528c2ecf20Sopenharmony_cirevisionato la patch e l'ha trovata accettabile.  Per cui, a volte, chi
5538c2ecf20Sopenharmony_ciintegra le patch convertirà un "sì, mi sembra che vada bene" in un Acked-by:
5548c2ecf20Sopenharmony_ci(ma tenete presente che solitamente è meglio chiedere esplicitamente).
5558c2ecf20Sopenharmony_ci
5568c2ecf20Sopenharmony_ciAcked-by: non indica l'accettazione di un'intera patch.  Per esempio, quando
5578c2ecf20Sopenharmony_ciuna patch ha effetti su diversi sottosistemi e ha un Acked-by: da un
5588c2ecf20Sopenharmony_cimanutentore di uno di questi, significa che il manutentore accetta quella
5598c2ecf20Sopenharmony_ciparte di codice relativa al sottosistema che mantiene.  Qui dovremmo essere
5608c2ecf20Sopenharmony_cigiudiziosi.  Quando si hanno dei dubbi si dovrebbe far riferimento alla
5618c2ecf20Sopenharmony_cidiscussione originale negli archivi della lista di discussione.
5628c2ecf20Sopenharmony_ci
5638c2ecf20Sopenharmony_ciSe una persona ha avuto l'opportunità di commentare la patch, ma non lo ha
5648c2ecf20Sopenharmony_cifatto, potete aggiungere l'etichetta ``Cc:`` alla patch.  Questa è l'unica
5658c2ecf20Sopenharmony_cietichetta che può essere aggiunta senza che la persona in questione faccia
5668c2ecf20Sopenharmony_cialcunché - ma dovrebbe indicare che la persona ha ricevuto una copia della
5678c2ecf20Sopenharmony_cipatch.  Questa etichetta documenta che terzi potenzialmente interessati sono
5688c2ecf20Sopenharmony_cistati inclusi nella discussione.
5698c2ecf20Sopenharmony_ci
5708c2ecf20Sopenharmony_ciCo-developed-by: indica che la patch è stata cosviluppata da diversi
5718c2ecf20Sopenharmony_cisviluppatori; viene usato per assegnare più autori (in aggiunta a quello
5728c2ecf20Sopenharmony_ciassociato all'etichetta From:) quando più persone lavorano ad una patch.  Dato
5738c2ecf20Sopenharmony_ciche Co-developed-by: implica la paternità della patch, ogni Co-developed-by:
5748c2ecf20Sopenharmony_cidev'essere seguito immediatamente dal Signed-off-by: del corrispondente
5758c2ecf20Sopenharmony_cicoautore. Qui si applica la procedura di base per sign-off, in pratica
5768c2ecf20Sopenharmony_cil'ordine delle etichette Signed-off-by: dovrebbe riflettere il più possibile
5778c2ecf20Sopenharmony_cil'ordine cronologico della storia della patch, indipendentemente dal fatto che
5788c2ecf20Sopenharmony_cila paternità venga assegnata via From: o Co-developed-by:. Da notare che
5798c2ecf20Sopenharmony_cil'ultimo Signed-off-by: dev'essere quello di colui che ha sottomesso la patch.
5808c2ecf20Sopenharmony_ci
5818c2ecf20Sopenharmony_ciNotate anche che l'etichetta From: è opzionale quando l'autore in From: è
5828c2ecf20Sopenharmony_cianche la persona (e indirizzo email) indicato nel From: dell'intestazione
5838c2ecf20Sopenharmony_cidell'email.
5848c2ecf20Sopenharmony_ci
5858c2ecf20Sopenharmony_ciEsempio di una patch sottomessa dall'autore in From:::
5868c2ecf20Sopenharmony_ci
5878c2ecf20Sopenharmony_ci	<changelog>
5888c2ecf20Sopenharmony_ci
5898c2ecf20Sopenharmony_ci	Co-developed-by: First Co-Author <first@coauthor.example.org>
5908c2ecf20Sopenharmony_ci	Signed-off-by: First Co-Author <first@coauthor.example.org>
5918c2ecf20Sopenharmony_ci	Co-developed-by: Second Co-Author <second@coauthor.example.org>
5928c2ecf20Sopenharmony_ci	Signed-off-by: Second Co-Author <second@coauthor.example.org>
5938c2ecf20Sopenharmony_ci	Signed-off-by: From Author <from@author.example.org>
5948c2ecf20Sopenharmony_ci
5958c2ecf20Sopenharmony_ciEsempio di una patch sottomessa dall'autore Co-developed-by:::
5968c2ecf20Sopenharmony_ci
5978c2ecf20Sopenharmony_ci	From: From Author <from@author.example.org>
5988c2ecf20Sopenharmony_ci
5998c2ecf20Sopenharmony_ci	<changelog>
6008c2ecf20Sopenharmony_ci
6018c2ecf20Sopenharmony_ci	Co-developed-by: Random Co-Author <random@coauthor.example.org>
6028c2ecf20Sopenharmony_ci	Signed-off-by: Random Co-Author <random@coauthor.example.org>
6038c2ecf20Sopenharmony_ci	Signed-off-by: From Author <from@author.example.org>
6048c2ecf20Sopenharmony_ci	Co-developed-by: Submitting Co-Author <sub@coauthor.example.org>
6058c2ecf20Sopenharmony_ci	Signed-off-by: Submitting Co-Author <sub@coauthor.example.org>
6068c2ecf20Sopenharmony_ci
6078c2ecf20Sopenharmony_ci13) Utilizzare Reported-by:, Tested-by:, Reviewed-by:, Suggested-by: e Fixes:
6088c2ecf20Sopenharmony_ci-----------------------------------------------------------------------------
6098c2ecf20Sopenharmony_ci
6108c2ecf20Sopenharmony_ciL'etichetta Reported-by da credito alle persone che trovano e riportano i bachi
6118c2ecf20Sopenharmony_cie si spera che questo possa ispirarli ad aiutarci nuovamente in futuro.
6128c2ecf20Sopenharmony_ciRammentate che se il baco è stato riportato in privato, dovrete chiedere il
6138c2ecf20Sopenharmony_cipermesso prima di poter utilizzare l'etichetta Reported-by.
6148c2ecf20Sopenharmony_ci
6158c2ecf20Sopenharmony_ciL'etichetta Tested-by: indica che la patch è stata verificata con successo
6168c2ecf20Sopenharmony_ci(su un qualche sistema) dalla persona citata.  Questa etichetta informa i
6178c2ecf20Sopenharmony_cimanutentori che qualche verifica è stata fatta, fornisce un mezzo per trovare
6188c2ecf20Sopenharmony_cipersone che possano verificare il codice in futuro, e garantisce che queste
6198c2ecf20Sopenharmony_cistesse persone ricevano credito per il loro lavoro.
6208c2ecf20Sopenharmony_ci
6218c2ecf20Sopenharmony_ciReviewd-by:, invece, indica che la patch è stata revisionata ed è stata
6228c2ecf20Sopenharmony_ciconsiderata accettabile in accordo con la dichiarazione dei revisori:
6238c2ecf20Sopenharmony_ci
6248c2ecf20Sopenharmony_ciDichiarazione di svista dei revisori
6258c2ecf20Sopenharmony_ci^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6268c2ecf20Sopenharmony_ci
6278c2ecf20Sopenharmony_ciOffrendo la mia etichetta Reviewed-by, dichiaro quanto segue:
6288c2ecf20Sopenharmony_ci
6298c2ecf20Sopenharmony_ci	 (a) Ho effettuato una revisione tecnica di questa patch per valutarne
6308c2ecf20Sopenharmony_ci	     l'adeguatezza ai fini dell'inclusione nel ramo principale del
6318c2ecf20Sopenharmony_ci	     kernel.
6328c2ecf20Sopenharmony_ci
6338c2ecf20Sopenharmony_ci	 (b) Tutti i problemi e le domande riguardanti la patch sono stati
6348c2ecf20Sopenharmony_ci	     comunicati al mittente.  Sono soddisfatto dalle risposte
6358c2ecf20Sopenharmony_ci	     del mittente.
6368c2ecf20Sopenharmony_ci
6378c2ecf20Sopenharmony_ci	 (c) Nonostante ci potrebbero essere cose migliorabili in queste
6388c2ecf20Sopenharmony_ci	     sottomissione, credo che sia, in questo momento, (1) una modifica
6398c2ecf20Sopenharmony_ci	     di interesse per il kernel, e (2) libera da problemi che
6408c2ecf20Sopenharmony_ci	     potrebbero metterne in discussione l'integrazione.
6418c2ecf20Sopenharmony_ci
6428c2ecf20Sopenharmony_ci	 (d) Nonostante abbia revisionato la patch e creda che vada bene,
6438c2ecf20Sopenharmony_ci	     non garantisco (se non specificato altrimenti) che questa
6448c2ecf20Sopenharmony_ci	     otterrà quello che promette o funzionerà correttamente in tutte
6458c2ecf20Sopenharmony_ci	     le possibili situazioni.
6468c2ecf20Sopenharmony_ci
6478c2ecf20Sopenharmony_ciL'etichetta Reviewed-by è la dichiarazione di un parere sulla bontà di
6488c2ecf20Sopenharmony_ciuna modifica che si ritiene appropriata e senza alcun problema tecnico
6498c2ecf20Sopenharmony_ciimportante.  Qualsiasi revisore interessato (quelli che lo hanno fatto)
6508c2ecf20Sopenharmony_cipossono offrire il proprio Reviewed-by per la patch.  Questa etichetta serve
6518c2ecf20Sopenharmony_cia dare credito ai revisori e a informare i manutentori sul livello di revisione
6528c2ecf20Sopenharmony_ciche è stato fatto sulla patch.  L'etichetta Reviewd-by, quando fornita da
6538c2ecf20Sopenharmony_cirevisori conosciuti per la loro conoscenza sulla materia in oggetto e per la
6548c2ecf20Sopenharmony_ciloro serietà nella revisione, accrescerà le probabilità che la vostra patch
6558c2ecf20Sopenharmony_civenga integrate nel kernel.
6568c2ecf20Sopenharmony_ci
6578c2ecf20Sopenharmony_ciL'etichetta Suggested-by: indica che l'idea della patch è stata suggerita
6588c2ecf20Sopenharmony_cidalla persona nominata e le da credito. Tenete a mente che questa etichetta
6598c2ecf20Sopenharmony_cinon dovrebbe essere aggiunta senza un permesso esplicito, specialmente se
6608c2ecf20Sopenharmony_cil'idea non è stata pubblicata in un forum pubblico.  Detto ciò, dando credito
6618c2ecf20Sopenharmony_cia chi ci fornisce delle idee, si spera di poterli ispirare ad aiutarci
6628c2ecf20Sopenharmony_cinuovamente in futuro.
6638c2ecf20Sopenharmony_ci
6648c2ecf20Sopenharmony_ciL'etichetta Fixes: indica che la patch corregge un problema in un commit
6658c2ecf20Sopenharmony_ciprecedente.  Serve a chiarire l'origine di un baco, il che aiuta la revisione
6668c2ecf20Sopenharmony_cidel baco stesso.  Questa etichetta è di aiuto anche per i manutentori dei
6678c2ecf20Sopenharmony_cikernel stabili al fine di capire quale kernel deve ricevere la correzione.
6688c2ecf20Sopenharmony_ciQuesto è il modo suggerito per indicare che un baco è stato corretto nella
6698c2ecf20Sopenharmony_cipatch. Per maggiori dettagli leggete :ref:`it_describe_changes`
6708c2ecf20Sopenharmony_ci
6718c2ecf20Sopenharmony_ci
6728c2ecf20Sopenharmony_ci14) Il formato canonico delle patch
6738c2ecf20Sopenharmony_ci-----------------------------------
6748c2ecf20Sopenharmony_ci
6758c2ecf20Sopenharmony_ciQuesta sezione descrive il formato che dovrebbe essere usato per le patch.
6768c2ecf20Sopenharmony_ciNotate che se state usando un repositorio ``git`` per salvare le vostre patch
6778c2ecf20Sopenharmony_cipotere usare il comando ``git format-patch`` per ottenere patch nel formato
6788c2ecf20Sopenharmony_ciappropriato.  Lo strumento non crea il testo necessario, per cui, leggete
6798c2ecf20Sopenharmony_cile seguenti istruzioni.
6808c2ecf20Sopenharmony_ci
6818c2ecf20Sopenharmony_ciL'oggetto di una patch canonica è la riga::
6828c2ecf20Sopenharmony_ci
6838c2ecf20Sopenharmony_ci    Subject: [PATCH 001/123] subsystem: summary phrase
6848c2ecf20Sopenharmony_ci
6858c2ecf20Sopenharmony_ciIl corpo di una patch canonica contiene i seguenti elementi:
6868c2ecf20Sopenharmony_ci
6878c2ecf20Sopenharmony_ci  - Una riga ``from`` che specifica l'autore della patch, seguita
6888c2ecf20Sopenharmony_ci    da una riga vuota (necessaria soltanto se la persona che invia la
6898c2ecf20Sopenharmony_ci    patch non ne è l'autore).
6908c2ecf20Sopenharmony_ci
6918c2ecf20Sopenharmony_ci  - Il corpo della spiegazione, con linee non più lunghe di 75 caratteri,
6928c2ecf20Sopenharmony_ci    che verrà copiato permanentemente nel changelog per descrivere la patch.
6938c2ecf20Sopenharmony_ci
6948c2ecf20Sopenharmony_ci  - Una riga vuota
6958c2ecf20Sopenharmony_ci
6968c2ecf20Sopenharmony_ci  - Le righe ``Signed-off-by:``, descritte in precedenza, che finiranno
6978c2ecf20Sopenharmony_ci    anch'esse nel changelog.
6988c2ecf20Sopenharmony_ci
6998c2ecf20Sopenharmony_ci  - Una linea di demarcazione contenente semplicemente ``---``.
7008c2ecf20Sopenharmony_ci
7018c2ecf20Sopenharmony_ci  - Qualsiasi altro commento che non deve finire nel changelog.
7028c2ecf20Sopenharmony_ci
7038c2ecf20Sopenharmony_ci  - Le effettive modifiche al codice (il prodotto di ``diff``).
7048c2ecf20Sopenharmony_ci
7058c2ecf20Sopenharmony_ciIl formato usato per l'oggetto permette ai programmi di posta di usarlo
7068c2ecf20Sopenharmony_ciper ordinare le patch alfabeticamente - tutti i programmi di posta hanno
7078c2ecf20Sopenharmony_ciquesta funzionalità - dato che al numero sequenziale si antepongono degli zeri;
7088c2ecf20Sopenharmony_ciin questo modo l'ordine numerico ed alfabetico coincidono.
7098c2ecf20Sopenharmony_ci
7108c2ecf20Sopenharmony_ciIl ``subsystem`` nell'oggetto dell'email dovrebbe identificare l'area
7118c2ecf20Sopenharmony_cio il sottosistema modificato dalla patch.
7128c2ecf20Sopenharmony_ci
7138c2ecf20Sopenharmony_ciLa ``summary phrase`` nell'oggetto dell'email dovrebbe descrivere brevemente
7148c2ecf20Sopenharmony_ciil contenuto della patch.  La ``summary phrase`` non dovrebbe essere un nome
7158c2ecf20Sopenharmony_cidi file. Non utilizzate la stessa ``summary phrase`` per tutte le patch in
7168c2ecf20Sopenharmony_ciuna serie (dove una ``serie di patch`` è una sequenza ordinata di diverse
7178c2ecf20Sopenharmony_cipatch correlate).
7188c2ecf20Sopenharmony_ci
7198c2ecf20Sopenharmony_ciRicordatevi che la ``summary phrase`` della vostra email diventerà un
7208c2ecf20Sopenharmony_ciidentificatore globale ed unico per quella patch.  Si propaga fino al
7218c2ecf20Sopenharmony_cichangelog ``git``.  La ``summary phrase`` potrà essere usata in futuro
7228c2ecf20Sopenharmony_cidagli sviluppatori per riferirsi a quella patch.  Le persone vorranno
7238c2ecf20Sopenharmony_cicercare la ``summary phrase`` su internet per leggere le discussioni che la
7248c2ecf20Sopenharmony_ciriguardano.  Potrebbe anche essere l'unica cosa che le persone vedranno
7258c2ecf20Sopenharmony_ciquando, in due o tre mesi, riguarderanno centinaia di patch usando strumenti
7268c2ecf20Sopenharmony_cicome ``gitk`` o ``git log --oneline``.
7278c2ecf20Sopenharmony_ci
7288c2ecf20Sopenharmony_ciPer queste ragioni, dovrebbe essere lunga fra i 70 e i 75 caratteri, e deve
7298c2ecf20Sopenharmony_cidescrivere sia cosa viene modificato, sia il perché sia necessario. Essere
7308c2ecf20Sopenharmony_cibrevi e descrittivi è una bella sfida, ma questo è quello che fa un riassunto
7318c2ecf20Sopenharmony_ciben scritto.
7328c2ecf20Sopenharmony_ci
7338c2ecf20Sopenharmony_ciLa ``summary phrase`` può avere un'etichetta (*tag*) di prefisso racchiusa fra
7348c2ecf20Sopenharmony_cile parentesi quadre "Subject: [PATCH <tag>...] <summary phrase>".
7358c2ecf20Sopenharmony_ciLe etichette non verranno considerate come parte della frase riassuntiva, ma
7368c2ecf20Sopenharmony_ciindicano come la patch dovrebbe essere trattata.  Fra le etichette più comuni
7378c2ecf20Sopenharmony_cici sono quelle di versione che vengono usate quando una patch è stata inviata
7388c2ecf20Sopenharmony_cipiù volte (per esempio, "v1, v2, v3"); oppure "RFC" per indicare che si
7398c2ecf20Sopenharmony_ciattendono dei commenti (*Request For Comments*).  Se ci sono quattro patch
7408c2ecf20Sopenharmony_cinella serie, queste dovrebbero essere enumerate così: 1/4, 2/4, 3/4, 4/4.
7418c2ecf20Sopenharmony_ciQuesto assicura che gli sviluppatori capiranno l'ordine in cui le patch
7428c2ecf20Sopenharmony_cidovrebbero essere applicate, e per tracciare quelle che hanno revisionate o
7438c2ecf20Sopenharmony_ciche hanno applicato.
7448c2ecf20Sopenharmony_ci
7458c2ecf20Sopenharmony_ciUn paio di esempi di oggetti::
7468c2ecf20Sopenharmony_ci
7478c2ecf20Sopenharmony_ci    Subject: [PATCH 2/5] ext2: improve scalability of bitmap searching
7488c2ecf20Sopenharmony_ci    Subject: [PATCH v2 01/27] x86: fix eflags tracking
7498c2ecf20Sopenharmony_ci
7508c2ecf20Sopenharmony_ciLa riga ``from`` dev'essere la prima nel corpo del messaggio ed è nel
7518c2ecf20Sopenharmony_ciformato:
7528c2ecf20Sopenharmony_ci
7538c2ecf20Sopenharmony_ci        From: Patch Author <author@example.com>
7548c2ecf20Sopenharmony_ci
7558c2ecf20Sopenharmony_ciLa riga ``from`` indica chi verrà accreditato nel changelog permanente come
7568c2ecf20Sopenharmony_cil'autore della patch.  Se la riga ``from`` è mancante, allora per determinare
7578c2ecf20Sopenharmony_cil'autore da inserire nel changelog verrà usata la riga ``From``
7588c2ecf20Sopenharmony_cinell'intestazione dell'email.
7598c2ecf20Sopenharmony_ci
7608c2ecf20Sopenharmony_ciIl corpo della spiegazione verrà incluso nel changelog permanente, per cui
7618c2ecf20Sopenharmony_cideve aver senso per un lettore esperto che è ha dimenticato i dettagli della
7628c2ecf20Sopenharmony_cidiscussione che hanno portato alla patch.  L'inclusione di informazioni
7638c2ecf20Sopenharmony_cisui problemi oggetto dalla patch (messaggi del kernel, messaggi di oops,
7648c2ecf20Sopenharmony_cieccetera) è particolarmente utile per le persone che potrebbero cercare fra
7658c2ecf20Sopenharmony_cii messaggi di log per la patch che li tratta.  Se la patch corregge un errore
7668c2ecf20Sopenharmony_cidi compilazione, non sarà necessario includere proprio _tutto_ quello che
7678c2ecf20Sopenharmony_ciè uscito dal compilatore; aggiungete solo quello che è necessario per far si
7688c2ecf20Sopenharmony_ciche la vostra patch venga trovata.  Come nella ``summary phrase``, è importante
7698c2ecf20Sopenharmony_ciessere sia brevi che descrittivi.
7708c2ecf20Sopenharmony_ci
7718c2ecf20Sopenharmony_ciLa linea di demarcazione ``---`` serve essenzialmente a segnare dove finisce
7728c2ecf20Sopenharmony_ciil messaggio di changelog.
7738c2ecf20Sopenharmony_ci
7748c2ecf20Sopenharmony_ciAggiungere il ``diffstat`` dopo ``---`` è un buon uso di questo spazio, per
7758c2ecf20Sopenharmony_cimostrare i file che sono cambiati, e il numero di file aggiunto o rimossi.
7768c2ecf20Sopenharmony_ciUn ``diffstat`` è particolarmente utile per le patch grandi.  Altri commenti
7778c2ecf20Sopenharmony_ciche sono importanti solo per i manutentori, quindi inadatti al changelog
7788c2ecf20Sopenharmony_cipermanente, dovrebbero essere messi qui.  Un buon esempio per questo tipo
7798c2ecf20Sopenharmony_cidi commenti potrebbe essere quello di descrivere le differenze fra le versioni
7808c2ecf20Sopenharmony_cidella patch.
7818c2ecf20Sopenharmony_ci
7828c2ecf20Sopenharmony_ciSe includete un ``diffstat`` dopo ``---``, usate le opzioni ``-p 1 -w70``
7838c2ecf20Sopenharmony_cicosicché i nomi dei file elencati non occupino troppo spazio (facilmente
7848c2ecf20Sopenharmony_cirientreranno negli 80 caratteri, magari con qualche indentazione).
7858c2ecf20Sopenharmony_ci(``git`` genera di base dei diffstat adatti).
7868c2ecf20Sopenharmony_ci
7878c2ecf20Sopenharmony_ciMaggiori dettagli sul formato delle patch nei riferimenti qui di seguito.
7888c2ecf20Sopenharmony_ci
7898c2ecf20Sopenharmony_ci.. _it_explicit_in_reply_to:
7908c2ecf20Sopenharmony_ci
7918c2ecf20Sopenharmony_ci15) Usare esplicitamente In-Reply-To nell'intestazione
7928c2ecf20Sopenharmony_ci------------------------------------------------------
7938c2ecf20Sopenharmony_ci
7948c2ecf20Sopenharmony_ciAggiungere manualmente In-Reply-To: nell'intestazione dell'e-mail
7958c2ecf20Sopenharmony_cipotrebbe essere d'aiuto per associare una patch ad una discussione
7968c2ecf20Sopenharmony_ciprecedente, per esempio per collegare la correzione di un baco con l'e-mail
7978c2ecf20Sopenharmony_ciche lo riportava.  Tuttavia, per serie di patch multiple è generalmente
7988c2ecf20Sopenharmony_cisconsigliato l'uso di In-Reply-To: per collegare precedenti versioni.
7998c2ecf20Sopenharmony_ciIn questo modo versioni multiple di una patch non diventeranno un'ingestibile
8008c2ecf20Sopenharmony_cigiungla di riferimenti all'interno dei programmi di posta.  Se un collegamento
8018c2ecf20Sopenharmony_ciè utile, potete usare https://lkml.kernel.org/ per ottenere i collegamenti
8028c2ecf20Sopenharmony_ciad una versione precedente di una serie di patch (per esempio, potete usarlo
8038c2ecf20Sopenharmony_ciper l'email introduttiva alla serie).
8048c2ecf20Sopenharmony_ci
8058c2ecf20Sopenharmony_ci16) Inviare richieste ``git pull``
8068c2ecf20Sopenharmony_ci----------------------------------
8078c2ecf20Sopenharmony_ci
8088c2ecf20Sopenharmony_ciSe avete una serie di patch, potrebbe essere più conveniente per un manutentore
8098c2ecf20Sopenharmony_citirarle dentro al repositorio del sottosistema attraverso l'operazione
8108c2ecf20Sopenharmony_ci``git pull``.  Comunque, tenete presente che prendere patch da uno sviluppatore
8118c2ecf20Sopenharmony_ciin questo modo richiede un livello di fiducia più alto rispetto a prenderle da
8128c2ecf20Sopenharmony_ciuna lista di discussione.  Di conseguenza, molti manutentori sono riluttanti
8138c2ecf20Sopenharmony_ciad accettare richieste di *pull*, specialmente dagli sviluppatori nuovi e
8148c2ecf20Sopenharmony_ciquindi sconosciuti.  Se siete in dubbio, potete fare una richiesta di *pull*
8158c2ecf20Sopenharmony_cicome messaggio introduttivo ad una normale pubblicazione di patch, così
8168c2ecf20Sopenharmony_ciil manutentore avrà la possibilità di scegliere come integrarle.
8178c2ecf20Sopenharmony_ci
8188c2ecf20Sopenharmony_ciUna richiesta di *pull* dovrebbe avere nell'oggetto [GIT] o [PULL].
8198c2ecf20Sopenharmony_ciLa richiesta stessa dovrebbe includere il nome del repositorio e quello del
8208c2ecf20Sopenharmony_ciramo su una singola riga; dovrebbe essere più o meno così::
8218c2ecf20Sopenharmony_ci
8228c2ecf20Sopenharmony_ci  Please pull from
8238c2ecf20Sopenharmony_ci
8248c2ecf20Sopenharmony_ci      git://jdelvare.pck.nerim.net/jdelvare-2.6 i2c-for-linus
8258c2ecf20Sopenharmony_ci
8268c2ecf20Sopenharmony_ci  to get these changes:
8278c2ecf20Sopenharmony_ci
8288c2ecf20Sopenharmony_ciUna richiesta di *pull* dovrebbe includere anche un messaggio generico
8298c2ecf20Sopenharmony_ciche dica cos'è incluso, una lista delle patch usando ``git shortlog``, e una
8308c2ecf20Sopenharmony_cipanoramica sugli effetti della serie di patch con ``diffstat``.  Il modo più
8318c2ecf20Sopenharmony_cisemplice per ottenere tutte queste informazioni è, ovviamente, quello di
8328c2ecf20Sopenharmony_cilasciar fare tutto a ``git`` con il comando ``git request-pull``.
8338c2ecf20Sopenharmony_ci
8348c2ecf20Sopenharmony_ciAlcuni manutentori (incluso Linus) vogliono vedere le richieste di *pull*
8358c2ecf20Sopenharmony_cida commit firmati con GPG; questo fornisce una maggiore garanzia sul fatto
8368c2ecf20Sopenharmony_ciche siate stati proprio voi a fare la richiesta.  In assenza di tale etichetta
8378c2ecf20Sopenharmony_cifirmata Linus, in particolare, non prenderà alcuna patch da siti pubblici come
8388c2ecf20Sopenharmony_ciGitHub.
8398c2ecf20Sopenharmony_ci
8408c2ecf20Sopenharmony_ciIl primo passo verso la creazione di questa etichetta firmata è quello di
8418c2ecf20Sopenharmony_cicreare una chiave GNUPG ed averla fatta firmare da uno o più sviluppatori
8428c2ecf20Sopenharmony_ciprincipali del kernel.  Questo potrebbe essere difficile per i nuovi
8438c2ecf20Sopenharmony_cisviluppatori, ma non ci sono altre vie.  Andare alle conferenze potrebbe
8448c2ecf20Sopenharmony_ciessere un buon modo per trovare sviluppatori che possano firmare la vostra
8458c2ecf20Sopenharmony_cichiave.
8468c2ecf20Sopenharmony_ci
8478c2ecf20Sopenharmony_ciUna volta che avete preparato la vostra serie di patch in ``git``, e volete che
8488c2ecf20Sopenharmony_ciqualcuno le prenda, create una etichetta firmata col comando ``git tag -s``.
8498c2ecf20Sopenharmony_ciQuesto creerà una nuova etichetta che identifica l'ultimo commit della serie
8508c2ecf20Sopenharmony_cicontenente una firma creata con la vostra chiave privata.  Avrete anche
8518c2ecf20Sopenharmony_cil'opportunità di aggiungere un messaggio di changelog all'etichetta; questo è
8528c2ecf20Sopenharmony_ciil posto ideale per descrivere gli effetti della richiesta di *pull*.
8538c2ecf20Sopenharmony_ci
8548c2ecf20Sopenharmony_ciSe i sorgenti da cui il manutentore prenderà le patch non sono gli stessi del
8558c2ecf20Sopenharmony_cirepositorio su cui state lavorando, allora non dimenticatevi di caricare
8568c2ecf20Sopenharmony_cil'etichetta firmata anche sui sorgenti pubblici.
8578c2ecf20Sopenharmony_ci
8588c2ecf20Sopenharmony_ciQuando generate una richiesta di *pull*, usate l'etichetta firmata come
8598c2ecf20Sopenharmony_ciobiettivo.  Un comando come il seguente farà il suo dovere::
8608c2ecf20Sopenharmony_ci
8618c2ecf20Sopenharmony_ci  git request-pull master git://my.public.tree/linux.git my-signed-tag
8628c2ecf20Sopenharmony_ci
8638c2ecf20Sopenharmony_ci
8648c2ecf20Sopenharmony_ciRiferimenti
8658c2ecf20Sopenharmony_ci-----------
8668c2ecf20Sopenharmony_ci
8678c2ecf20Sopenharmony_ciAndrew Morton, "La patch perfetta" (tpp).
8688c2ecf20Sopenharmony_ci  <http://www.ozlabs.org/~akpm/stuff/tpp.txt>
8698c2ecf20Sopenharmony_ci
8708c2ecf20Sopenharmony_ciJeff Garzik, "Formato per la sottomissione di patch per il kernel Linux"
8718c2ecf20Sopenharmony_ci  <https://web.archive.org/web/20180829112450/http://linux.yyz.us/patch-format.html>
8728c2ecf20Sopenharmony_ci
8738c2ecf20Sopenharmony_ciGreg Kroah-Hartman, "Come scocciare un manutentore di un sottosistema"
8748c2ecf20Sopenharmony_ci  <http://www.kroah.com/log/linux/maintainer.html>
8758c2ecf20Sopenharmony_ci
8768c2ecf20Sopenharmony_ci  <http://www.kroah.com/log/linux/maintainer-02.html>
8778c2ecf20Sopenharmony_ci
8788c2ecf20Sopenharmony_ci  <http://www.kroah.com/log/linux/maintainer-03.html>
8798c2ecf20Sopenharmony_ci
8808c2ecf20Sopenharmony_ci  <http://www.kroah.com/log/linux/maintainer-04.html>
8818c2ecf20Sopenharmony_ci
8828c2ecf20Sopenharmony_ci  <http://www.kroah.com/log/linux/maintainer-05.html>
8838c2ecf20Sopenharmony_ci
8848c2ecf20Sopenharmony_ci  <http://www.kroah.com/log/linux/maintainer-06.html>
8858c2ecf20Sopenharmony_ci
8868c2ecf20Sopenharmony_ciNo!!!! Basta gigantesche bombe patch alle persone sulla lista linux-kernel@vger.kernel.org!
8878c2ecf20Sopenharmony_ci  <https://lkml.org/lkml/2005/7/11/336>
8888c2ecf20Sopenharmony_ci
8898c2ecf20Sopenharmony_ciKernel Documentation/translations/it_IT/process/coding-style.rst:
8908c2ecf20Sopenharmony_ci  :ref:`Documentation/translations/it_IT/process/coding-style.rst <it_codingstyle>`
8918c2ecf20Sopenharmony_ci
8928c2ecf20Sopenharmony_ciE-mail di Linus Torvalds sul formato canonico di una patch:
8938c2ecf20Sopenharmony_ci  <http://lkml.org/lkml/2005/4/7/183>
8948c2ecf20Sopenharmony_ci
8958c2ecf20Sopenharmony_ciAndi Kleen, "Su come sottomettere patch del kernel"
8968c2ecf20Sopenharmony_ci  Alcune strategie su come sottomettere modifiche toste o controverse.
8978c2ecf20Sopenharmony_ci
8988c2ecf20Sopenharmony_ci  http://halobates.de/on-submitting-patches.pdf
899