€•ŤŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒEnglish”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ/process/6.Followthrough”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Simplified)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/zh_CN/process/6.Followthrough”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/zh_TW/process/6.Followthrough”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ja_JP/process/6.Followthrough”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ko_KR/process/6.Followthrough”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/sp_SP/process/6.Followthrough”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒItalian”uh1h hhŒ _document”hŒsource”NŒline”NubhŒwarning”“”)”}”(hŒ×In caso di dubbi sulla correttezza del contenuto di questa traduzione, l'unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le :ref:`avvertenze `.”h]”hŒ paragraph”“”)”}”(hŒ×In caso di dubbi sulla correttezza del contenuto di questa traduzione, l'unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le :ref:`avvertenze `.”h]”(hŒˇIn caso di dubbi sulla correttezza del contenuto di questa traduzione, l’unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le ”…””}”(hhŠhžhhŸNh Nubh)”}”(hŒ!:ref:`avvertenze `”h]”hŒinline”“”)”}”(hhłh]”hŒ avvertenze”…””}”(hhˇhžhhŸNh Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1hľhhąubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ*translations/it_IT/process/6.Followthrough”Œ refdomain”hŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œ it_disclaimer”uh1hhŸŒ3Documentation/translations/it_IT/disclaimer-ita.rst”h KhhŠubhŒ.”…””}”(hhŠhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhÖh KhhŁubah}”(h]”h ]”h"]”h$]”h&]”uh1hĄhhhžhhŸhÖh NubhŒ field_list”“”)”}”(hhh]”(hŒfield”“”)”}”(hhh]”(hŒ field_name”“”)”}”(hŒOriginal”h]”hŒOriginal”…””}”(hhóhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hńhhîhŸŒX/var/lib/git/docbuild/linux/Documentation/translations/it_IT/process/6.Followthrough.rst”h KubhŒ field_body”“”)”}”(hŒL:ref:`Documentation/process/6.Followthrough.rst `”h]”h¨)”}”(hjh]”h)”}”(hjh]”hś)”}”(hjh]”hŒ)Documentation/process/6.Followthrough.rst”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”(hÁŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hľhj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”hΌ refdomain”jŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆhԌdevelopment_followthrough”uh1hhŸjh Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhîubeh}”(h]”h ]”h"]”h$]”h&]”uh1hěhŸjh Khhéhžhubhí)”}”(hhh]”(hň)”}”(hŒ Translator”h]”hŒ Translator”…””}”(hj?hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hńhj<hŸjh Kubj)”}”(hŒ,Alessia Mantegazza ”h]”h¨)”}”(hŒ+Alessia Mantegazza ”h]”(hŒAlessia Mantegazza <”…””}”(hjQhžhhŸNh NubhŒ reference”“”)”}”(hŒamantegazza@vaga.pv.it”h]”hŒamantegazza@vaga.pv.it”…””}”(hj[hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:amantegazza@vaga.pv.it”uh1jYhjQubhŒ>”…””}”(hjQhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hěhŸjh Khhéhžhubeh}”(h]”h ]”h"]”h$]”h&]”uh1hçhhhžhhŸjh KubhŒtarget”“”)”}”(hŒ!.. _it_development_followthrough:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œit-development-followthrough”uh1j‡h KhhhžhhŸjubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ Completamento”h]”hŒ Completamento”…””}”(hjœhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jšhj—hžhhŸjh K ubh¨)”}”(hXÝA questo punto, avete seguito le linee guida fino a questo punto e, con l'aggiunta delle vostre capacitĂ  ingegneristiche, avete pubblicato una serie perfetta di patch. Uno dei piĂš grandi errori che possono essere commessi persino da sviluppatori kernel esperti è quello di concludere che il lavoro sia ormai finito. In veritĂ , la pubblicazione delle patch simboleggia una transizione alla fase successiva del processo, con, probabilmente, ancora un po' di lavoro da fare.”h]”hXáA questo punto, avete seguito le linee guida fino a questo punto e, con l’aggiunta delle vostre capacitĂ  ingegneristiche, avete pubblicato una serie perfetta di patch. Uno dei piĂš grandi errori che possono essere commessi persino da sviluppatori kernel esperti è quello di concludere che il lavoro sia ormai finito. In veritĂ , la pubblicazione delle patch simboleggia una transizione alla fase successiva del processo, con, probabilmente, ancora un po’ di lavoro da fare.”…””}”(hjŞhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K hj—hžhubh¨)”}”(hXÈ raro che una modifica sia cosĂŹ bella alla sua prima pubblicazione che non ci sia alcuno spazio di miglioramento. Il programma di sviluppo del kernel riconosce questo fatto e quindi, è fortemente orientato al miglioramento del codice pubblicato. Voi, in qualitĂ  di autori del codice, dovrete lavorare con la comunitĂ  del kernel per assicurare che il vostro codice mantenga gli standard qualitativi richiesti. Un fallimento in questo processo è quasi come impedire l'inclusione delle vostre patch nel ramo principale.”h]”hXÈ raro che una modifica sia cosĂŹ bella alla sua prima pubblicazione che non ci sia alcuno spazio di miglioramento. Il programma di sviluppo del kernel riconosce questo fatto e quindi, è fortemente orientato al miglioramento del codice pubblicato. Voi, in qualitĂ  di autori del codice, dovrete lavorare con la comunitĂ  del kernel per assicurare che il vostro codice mantenga gli standard qualitativi richiesti. Un fallimento in questo processo è quasi come impedire l’inclusione delle vostre patch nel ramo principale.”…””}”(hj¸hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh Khj—hžhubj–)”}”(hhh]”(j›)”}”(hŒLavorare con i revisori”h]”hŒLavorare con i revisori”…””}”(hjÉhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jšhjĆhžhhŸjh Kubh¨)”}”(hXaUna patch che abbia una certa rilevanza avrĂ  ricevuto numerosi commenti da parte di altri sviluppatori dato che avranno revisionato il codice. Lavorare con i revisori può rivelarsi, per molti sviluppatori, la parte piĂš intimidatoria del processo di sviluppo del kernel. La vita può esservi resa molto piĂš facile se tenete presente alcuni dettagli:”h]”hXaUna patch che abbia una certa rilevanza avrĂ  ricevuto numerosi commenti da parte di altri sviluppatori dato che avranno revisionato il codice. Lavorare con i revisori può rivelarsi, per molti sviluppatori, la parte piĂš intimidatoria del processo di sviluppo del kernel. La vita può esservi resa molto piĂš facile se tenete presente alcuni dettagli:”…””}”(hj×hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K hjĆhžhubhŒ block_quote”“”)”}”(hXČ- Se avete descritto la vostra modifica correttamente, i revisori ne comprenderanno il valore e il perchĂŠ vi siete presi il disturbo di scriverla. Ma tale valore non li tratterrĂ  dal porvi una domanda fondamentale: come verrĂ  mantenuto questo codice nel kernel nei prossimi cinque o dieci anni? Molti dei cambiamenti che potrebbero esservi richiesti - da piccoli problemi di stile a sostanziali ristesure - vengono dalla consapevolezza che Linux resterĂ  in circolazione e in continuo sviluppo ancora per diverse decadi. - La revisione del codice è un duro lavoro, ed è un mestiere poco riconosciuto; le persone ricordano chi ha scritto il codice, ma meno fama è attribuita a chi lo ha revisionato. Quindi i revisori potrebbero divenire burberi, specialmente quando vendono i medesimi errori venire fatti ancora e ancora. Se ricevete una revisione che vi sembra abbia un tono arrabbiato, insultante o addirittura offensivo, resistente alla tentazione di rispondere a tono. La revisione riguarda il codice e non la persona, e i revisori non vi stanno attaccando personalmente. - Similarmente, i revisori del codice non stanno cercando di promuovere i loro interessi a vostre spese. Gli sviluppatori del kernel spesso si aspettano di lavorare sul kernel per anni, ma sanno che il loro datore di lavoro può cambiare. Davvero, senza praticamente eccezioni, loro stanno lavorando per la creazione del miglior kernel possibile; non stanno cercando di creare un disagio ad aziende concorrenti. - Preparatevi a richieste apparentemente sciocche di modifiche allo stile di codifica e a richieste di trasferire parte del vostro codice in parti condivise del kernel. Uno dei compiti dei manutentori è quello di mantenere lo aspetto del codice. A volte questo significa che l'ingegnoso stratagemma nel vostro driver per aggirare un problema deve diventare una caratteristica generalizzata del kernel pronta per essere riutilizzata. ”h]”(hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hX Se avete descritto la vostra modifica correttamente, i revisori ne comprenderanno il valore e il perchĂŠ vi siete presi il disturbo di scriverla. Ma tale valore non li tratterrĂ  dal porvi una domanda fondamentale: come verrĂ  mantenuto questo codice nel kernel nei prossimi cinque o dieci anni? Molti dei cambiamenti che potrebbero esservi richiesti - da piccoli problemi di stile a sostanziali ristesure - vengono dalla consapevolezza che Linux resterĂ  in circolazione e in continuo sviluppo ancora per diverse decadi. ”h]”h¨)”}”(hX Se avete descritto la vostra modifica correttamente, i revisori ne comprenderanno il valore e il perchĂŠ vi siete presi il disturbo di scriverla. Ma tale valore non li tratterrĂ  dal porvi una domanda fondamentale: come verrĂ  mantenuto questo codice nel kernel nei prossimi cinque o dieci anni? Molti dei cambiamenti che potrebbero esservi richiesti - da piccoli problemi di stile a sostanziali ristesure - vengono dalla consapevolezza che Linux resterĂ  in circolazione e in continuo sviluppo ancora per diverse decadi.”h]”hX Se avete descritto la vostra modifica correttamente, i revisori ne comprenderanno il valore e il perchĂŠ vi siete presi il disturbo di scriverla. Ma tale valore non li tratterrĂ  dal porvi una domanda fondamentale: come verrĂ  mantenuto questo codice nel kernel nei prossimi cinque o dieci anni? Molti dei cambiamenti che potrebbero esservi richiesti - da piccoli problemi di stile a sostanziali ristesure - vengono dalla consapevolezza che Linux resterĂ  in circolazione e in continuo sviluppo ancora per diverse decadi.”…””}”(hjöhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K&hjňubah}”(h]”h ]”h"]”h$]”h&]”uh1jđhjíubjń)”}”(hX/La revisione del codice è un duro lavoro, ed è un mestiere poco riconosciuto; le persone ricordano chi ha scritto il codice, ma meno fama è attribuita a chi lo ha revisionato. Quindi i revisori potrebbero divenire burberi, specialmente quando vendono i medesimi errori venire fatti ancora e ancora. Se ricevete una revisione che vi sembra abbia un tono arrabbiato, insultante o addirittura offensivo, resistente alla tentazione di rispondere a tono. La revisione riguarda il codice e non la persona, e i revisori non vi stanno attaccando personalmente. ”h]”h¨)”}”(hX.La revisione del codice è un duro lavoro, ed è un mestiere poco riconosciuto; le persone ricordano chi ha scritto il codice, ma meno fama è attribuita a chi lo ha revisionato. Quindi i revisori potrebbero divenire burberi, specialmente quando vendono i medesimi errori venire fatti ancora e ancora. Se ricevete una revisione che vi sembra abbia un tono arrabbiato, insultante o addirittura offensivo, resistente alla tentazione di rispondere a tono. La revisione riguarda il codice e non la persona, e i revisori non vi stanno attaccando personalmente.”h]”hX.La revisione del codice è un duro lavoro, ed è un mestiere poco riconosciuto; le persone ricordano chi ha scritto il codice, ma meno fama è attribuita a chi lo ha revisionato. Quindi i revisori potrebbero divenire burberi, specialmente quando vendono i medesimi errori venire fatti ancora e ancora. Se ricevete una revisione che vi sembra abbia un tono arrabbiato, insultante o addirittura offensivo, resistente alla tentazione di rispondere a tono. La revisione riguarda il codice e non la persona, e i revisori non vi stanno attaccando personalmente.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K/hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jđhjíubjń)”}”(hXœSimilarmente, i revisori del codice non stanno cercando di promuovere i loro interessi a vostre spese. Gli sviluppatori del kernel spesso si aspettano di lavorare sul kernel per anni, ma sanno che il loro datore di lavoro può cambiare. Davvero, senza praticamente eccezioni, loro stanno lavorando per la creazione del miglior kernel possibile; non stanno cercando di creare un disagio ad aziende concorrenti. ”h]”h¨)”}”(hX›Similarmente, i revisori del codice non stanno cercando di promuovere i loro interessi a vostre spese. Gli sviluppatori del kernel spesso si aspettano di lavorare sul kernel per anni, ma sanno che il loro datore di lavoro può cambiare. Davvero, senza praticamente eccezioni, loro stanno lavorando per la creazione del miglior kernel possibile; non stanno cercando di creare un disagio ad aziende concorrenti.”h]”hX›Similarmente, i revisori del codice non stanno cercando di promuovere i loro interessi a vostre spese. Gli sviluppatori del kernel spesso si aspettano di lavorare sul kernel per anni, ma sanno che il loro datore di lavoro può cambiare. Davvero, senza praticamente eccezioni, loro stanno lavorando per la creazione del miglior kernel possibile; non stanno cercando di creare un disagio ad aziende concorrenti.”…””}”(hj&hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K8hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jđhjíubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jëhŸjh K&hjçubjć)”}”(hXź- Preparatevi a richieste apparentemente sciocche di modifiche allo stile di codifica e a richieste di trasferire parte del vostro codice in parti condivise del kernel. Uno dei compiti dei manutentori è quello di mantenere lo aspetto del codice. A volte questo significa che l'ingegnoso stratagemma nel vostro driver per aggirare un problema deve diventare una caratteristica generalizzata del kernel pronta per essere riutilizzata. ”h]”jě)”}”(hhh]”jń)”}”(hX°Preparatevi a richieste apparentemente sciocche di modifiche allo stile di codifica e a richieste di trasferire parte del vostro codice in parti condivise del kernel. Uno dei compiti dei manutentori è quello di mantenere lo aspetto del codice. A volte questo significa che l'ingegnoso stratagemma nel vostro driver per aggirare un problema deve diventare una caratteristica generalizzata del kernel pronta per essere riutilizzata. ”h]”h¨)”}”(hXŻPreparatevi a richieste apparentemente sciocche di modifiche allo stile di codifica e a richieste di trasferire parte del vostro codice in parti condivise del kernel. Uno dei compiti dei manutentori è quello di mantenere lo aspetto del codice. A volte questo significa che l'ingegnoso stratagemma nel vostro driver per aggirare un problema deve diventare una caratteristica generalizzata del kernel pronta per essere riutilizzata.”h]”hXąPreparatevi a richieste apparentemente sciocche di modifiche allo stile di codifica e a richieste di trasferire parte del vostro codice in parti condivise del kernel. Uno dei compiti dei manutentori è quello di mantenere lo aspetto del codice. A volte questo significa che l’ingegnoso stratagemma nel vostro driver per aggirare un problema deve diventare una caratteristica generalizzata del kernel pronta per essere riutilizzata.”…””}”(hjMhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K?hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jđhjFubah}”(h]”h ]”h"]”h$]”h&]”j@jAuh1jëhŸjh K?hjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jĺhŸjh K?hjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1jĺhŸjh K&hjĆhžhubh¨)”}”(hXQuello che si sta cercando di dire è che, quando i revisori vi inviano degli appunti dovete fare attenzione alle osservazioni tecniche che vi stanno facendo. Non lasciate che il loro modo di esprimersi o il vostro orgoglio impediscano che ciò accada. Quando avete dei suggerimenti sulla revisione, prendetevi il tempo per comprendere cosa il revisore stia cercando di comunicarvi. Se possibile, sistemate le cose che il revisore vi chiede di modificare. E rispondete al revisore ringraziandolo e spiegando come intendete fare.”h]”hXQuello che si sta cercando di dire è che, quando i revisori vi inviano degli appunti dovete fare attenzione alle osservazioni tecniche che vi stanno facendo. Non lasciate che il loro modo di esprimersi o il vostro orgoglio impediscano che ciò accada. Quando avete dei suggerimenti sulla revisione, prendetevi il tempo per comprendere cosa il revisore stia cercando di comunicarvi. Se possibile, sistemate le cose che il revisore vi chiede di modificare. E rispondete al revisore ringraziandolo e spiegando come intendete fare.”…””}”(hjshžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KFhjĆhžhubh¨)”}”(hX Notate che non dovete per forza essere d'accordo con ogni singola modifica suggerita dai revisori. Se credete che il revisore non abbia compreso il vostro codice, spiegateglielo. Se avete un'obiezione tecnica da fargli su di una modifica suggerita, spiegatela inserendo anche la vostra soluzione al problema. Se la vostra spiegazione ha senso, il revisore la accetterĂ . Tuttavia, la vostra motivazione potrebbe non essere del tutto persuasiva, specialmente se altri iniziano ad essere d'accordo con il revisore. Prendetevi quindi un po' di tempo per pensare ancora alla cosa. Può risultare facile essere accecati dalla propria soluzione al punto che non realizzate che c'è qualcosa di fondamentalmente sbagliato o, magari, non state nemmeno risolvendo il problema giusto.”h]”hXNotate che non dovete per forza essere d’accordo con ogni singola modifica suggerita dai revisori. Se credete che il revisore non abbia compreso il vostro codice, spiegateglielo. Se avete un’obiezione tecnica da fargli su di una modifica suggerita, spiegatela inserendo anche la vostra soluzione al problema. Se la vostra spiegazione ha senso, il revisore la accetterĂ . Tuttavia, la vostra motivazione potrebbe non essere del tutto persuasiva, specialmente se altri iniziano ad essere d’accordo con il revisore. Prendetevi quindi un po’ di tempo per pensare ancora alla cosa. Può risultare facile essere accecati dalla propria soluzione al punto che non realizzate che c’è qualcosa di fondamentalmente sbagliato o, magari, non state nemmeno risolvendo il problema giusto.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KOhjĆhžhubh¨)”}”(hŒüAndrew Morton suggerisce che ogni suggerimento di revisione che non è presente nella modifica del codice dovrebbe essere inserito in un commento aggiuntivo; ciò può essere d'aiuto ai futuri revisori nell'evitare domande che sorgono al primo sguardo.”h]”hXAndrew Morton suggerisce che ogni suggerimento di revisione che non è presente nella modifica del codice dovrebbe essere inserito in un commento aggiuntivo; ciò può essere d’aiuto ai futuri revisori nell’evitare domande che sorgono al primo sguardo.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K[hjĆhžhubh¨)”}”(hXUn errore fatale è quello di ignorare i commenti di revisione nella speranza che se ne andranno. Non andranno via. Se pubblicherete nuovamente il codice senza aver risposto ai commenti ricevuti, probabilmente le vostre modifiche non andranno da nessuna parte.”h]”hXUn errore fatale è quello di ignorare i commenti di revisione nella speranza che se ne andranno. Non andranno via. Se pubblicherete nuovamente il codice senza aver risposto ai commenti ricevuti, probabilmente le vostre modifiche non andranno da nessuna parte.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K`hjĆhžhubh¨)”}”(hXParlando di ripubblicazione del codice: per favore tenete a mente che i revisori non ricorderanno tutti i dettagli del codice che avete pubblicato l'ultima volta. Quindi è sempre una buona idea quella di ricordare ai revisori le questioni sollevate precedetemene e come le avete risolte. I revisori non dovrebbero star lĂŹ a cercare all'interno degli archivi per famigliarizzare con ciò che è stato detto l'ultima volta; se li aiutate in questo senso, saranno di umore migliore quando riguarderanno il vostro codice.”h]”hX Parlando di ripubblicazione del codice: per favore tenete a mente che i revisori non ricorderanno tutti i dettagli del codice che avete pubblicato l’ultima volta. Quindi è sempre una buona idea quella di ricordare ai revisori le questioni sollevate precedetemene e come le avete risolte. I revisori non dovrebbero star lĂŹ a cercare all’interno degli archivi per famigliarizzare con ciò che è stato detto l’ultima volta; se li aiutate in questo senso, saranno di umore migliore quando riguarderanno il vostro codice.”…””}”(hjŤhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KehjĆhžhubh¨)”}”(hXKSe invece avete cercato di far tutto correttamente ma le cose continuano a non andar bene? Molti disaccordi di natura tecnica possono essere risolti attraverso la discussione, ma ci sono volte dove qualcuno deve prendere una decisione. Se credete veramente che tale decisione andrĂ  contro di voi ingiustamente, potete sempre tentare di rivolgervi a qualcuno piĂš in alto di voi. Per cose di questo genere la persona con piĂš potere è Andrew Morton. Andrew è una figura molto rispettata all'interno della comunitĂ  di sviluppo del kernel; lui può spesso sbrogliare situazioni che sembrano irrimediabilmente bloccate. Rivolgersi ad Andrew non deve essere fatto alla leggera, e non deve essere fatto prima di aver esplorato tutte le altre alternative. E tenete a mente, ovviamente, che nemmeno lui potrebbe non essere d'accordo con voi.”h]”hXOSe invece avete cercato di far tutto correttamente ma le cose continuano a non andar bene? Molti disaccordi di natura tecnica possono essere risolti attraverso la discussione, ma ci sono volte dove qualcuno deve prendere una decisione. Se credete veramente che tale decisione andrĂ  contro di voi ingiustamente, potete sempre tentare di rivolgervi a qualcuno piĂš in alto di voi. Per cose di questo genere la persona con piĂš potere è Andrew Morton. Andrew è una figura molto rispettata all’interno della comunitĂ  di sviluppo del kernel; lui può spesso sbrogliare situazioni che sembrano irrimediabilmente bloccate. Rivolgersi ad Andrew non deve essere fatto alla leggera, e non deve essere fatto prima di aver esplorato tutte le altre alternative. E tenete a mente, ovviamente, che nemmeno lui potrebbe non essere d’accordo con voi.”…””}”(hjšhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KnhjĆhžhubeh}”(h]”Œlavorare-con-i-revisori”ah ]”h"]”Œlavorare con i revisori”ah$]”h&]”uh1j•hj—hžhhŸjh Kubj–)”}”(hhh]”(j›)”}”(hŒCosa accade poi”h]”hŒCosa accade poi”…””}”(hjŇhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jšhjĎhžhhŸjh K|ubh¨)”}”(hX&Se la modifica è ritenuta un elemento valido da essere aggiunta al kernel, e una volta che la maggior parte degli appunti dei revisori sono stati sistemati, il passo successivo solitamente è quello di entrare in un sottosistema gestito da un manutentore. Come ciò avviene dipende dal sottosistema medesimo; ogni manutentore ha il proprio modo di fare le cose. In particolare, ci potrebbero essere diversi sorgenti - uno, magari, dedicato alle modifiche pianificate per la finestra di fusione successiva, e un altro per il lavoro di lungo periodo.”h]”hX&Se la modifica è ritenuta un elemento valido da essere aggiunta al kernel, e una volta che la maggior parte degli appunti dei revisori sono stati sistemati, il passo successivo solitamente è quello di entrare in un sottosistema gestito da un manutentore. Come ciò avviene dipende dal sottosistema medesimo; ogni manutentore ha il proprio modo di fare le cose. In particolare, ci potrebbero essere diversi sorgenti - uno, magari, dedicato alle modifiche pianificate per la finestra di fusione successiva, e un altro per il lavoro di lungo periodo.”…””}”(hjŕhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K~hjĎhžhubh¨)”}”(hX Per le modifiche proposte in aree per le quali non esiste un sottosistema preciso (modifiche di gestione della memoria, per esempio), i sorgenti di ripiego finiscono per essere -mm. Ed anche le modifiche che riguardano piĂš sottosistemi possono finire in quest'ultimo.”h]”hXPer le modifiche proposte in aree per le quali non esiste un sottosistema preciso (modifiche di gestione della memoria, per esempio), i sorgenti di ripiego finiscono per essere -mm. Ed anche le modifiche che riguardano piĂš sottosistemi possono finire in quest’ultimo.”…””}”(hjîhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K‡hjĎhžhubh¨)”}”(hXL'inclusione nei sorgenti di un sottosistema può comportare per una patch, un alto livello di visibilitĂ . Ora altri sviluppatori che stanno lavorando in quei medesimi sorgenti avranno le vostre modifiche. I sottosistemi solitamente riforniscono anche Linux-next, rendendo i propri contenuti visibili all'intera comunitĂ  di sviluppo. A questo punto, ci sono buone possibilitĂ  per voi di ricevere ulteriori commenti da un nuovo gruppo di revisori; anche a questi commenti dovrete rispondere come avete giĂ  fatto per gli altri.”h]”hXL’inclusione nei sorgenti di un sottosistema può comportare per una patch, un alto livello di visibilitĂ . Ora altri sviluppatori che stanno lavorando in quei medesimi sorgenti avranno le vostre modifiche. I sottosistemi solitamente riforniscono anche Linux-next, rendendo i propri contenuti visibili all’intera comunitĂ  di sviluppo. A questo punto, ci sono buone possibilitĂ  per voi di ricevere ulteriori commenti da un nuovo gruppo di revisori; anche a questi commenti dovrete rispondere come avete giĂ  fatto per gli altri.”…””}”(hjühžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KŒhjĎhžhubh¨)”}”(hX™Ciò che potrebbe accadere a questo punto, in base alla natura della vostra modifica, riguarda eventuali conflitti con il lavoro svolto da altri. Nella peggiore delle situazioni, i conflitti piĂš pesanti tra modifiche possono concludersi con la messa a lato di alcuni dei lavori svolti cosicchĂŠ le modifiche restanti possano funzionare ed essere integrate. Altre volte, la risoluzione dei conflitti richiederĂ  del lavoro con altri sviluppatori e, possibilmente, lo spostamento di alcune patch da dei sorgenti a degli altri in modo da assicurare che tutto sia applicato in modo pulito. Questo lavoro può rivelarsi una spina nel fianco, ma consideratevi fortunati: prima dell'avvento dei sorgenti linux-next, questi conflitti spesso emergevano solo durante l'apertura della finestra di integrazione e dovevano essere smaltiti in fretta. Ora essi possono essere risolti comodamente, prima dell'apertura della finestra.”h]”hXŸCiò che potrebbe accadere a questo punto, in base alla natura della vostra modifica, riguarda eventuali conflitti con il lavoro svolto da altri. Nella peggiore delle situazioni, i conflitti piĂš pesanti tra modifiche possono concludersi con la messa a lato di alcuni dei lavori svolti cosicchĂŠ le modifiche restanti possano funzionare ed essere integrate. Altre volte, la risoluzione dei conflitti richiederĂ  del lavoro con altri sviluppatori e, possibilmente, lo spostamento di alcune patch da dei sorgenti a degli altri in modo da assicurare che tutto sia applicato in modo pulito. Questo lavoro può rivelarsi una spina nel fianco, ma consideratevi fortunati: prima dell’avvento dei sorgenti linux-next, questi conflitti spesso emergevano solo durante l’apertura della finestra di integrazione e dovevano essere smaltiti in fretta. Ora essi possono essere risolti comodamente, prima dell’apertura della finestra.”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K•hjĎhžhubh¨)”}”(hXUn giorno, se tutto va bene, vi collegherete e vedrete che la vostra patch è stata inserita nel ramo principale de kernel. Congratulazioni! Terminati i festeggiamenti (nel frattempo avrete inserito il vostro nome nel file MAINTAINERS) vale la pena ricordare una piccola cosa, ma importante: il lavoro non è ancora finito. L'inserimento nel ramo principale porta con se nuove sfide.”h]”hXƒUn giorno, se tutto va bene, vi collegherete e vedrete che la vostra patch è stata inserita nel ramo principale de kernel. Congratulazioni! Terminati i festeggiamenti (nel frattempo avrete inserito il vostro nome nel file MAINTAINERS) vale la pena ricordare una piccola cosa, ma importante: il lavoro non è ancora finito. L’inserimento nel ramo principale porta con se nuove sfide.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KŁhjĎhžhubh¨)”}”(hXťCominciamo con il dire che ora la visibilitĂ  della vostra modifica è ulteriormente cresciuta. Ci potrebbe portare ad una nuova fase di commenti dagli sviluppatori che non erano ancora a conoscenza della vostra patch. Ignorarli potrebbe essere allettante dato che non ci sono piĂš dubbi sull'integrazione della modifica. Resistete a tale tentazione, dovete mantenervi disponibili agli sviluppatori che hanno domande o suggerimenti per voi.”h]”hX˝Cominciamo con il dire che ora la visibilitĂ  della vostra modifica è ulteriormente cresciuta. Ci potrebbe portare ad una nuova fase di commenti dagli sviluppatori che non erano ancora a conoscenza della vostra patch. Ignorarli potrebbe essere allettante dato che non ci sono piĂš dubbi sull’integrazione della modifica. Resistete a tale tentazione, dovete mantenervi disponibili agli sviluppatori che hanno domande o suggerimenti per voi.”…””}”(hj&hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KŞhjĎhžhubh¨)”}”(hX†Ancora piĂš importante: l'inclusione nel ramo principale mette il vostro codice nelle mani di un gruppo di *tester* molto piĂš esteso. Anche se avete contribuito ad un driver per un hardware che non è ancora disponibile, sarete sorpresi da quante persone inseriranno il vostro codice nei loro kernel. E, ovviamente, dove ci sono *tester*, ci saranno anche dei rapporti su eventuali bachi.”h]”(hŒmAncora piĂš importante: l’inclusione nel ramo principale mette il vostro codice nelle mani di un gruppo di ”…””}”(hj4hžhhŸNh NubhŒemphasis”“”)”}”(hŒ*tester*”h]”hŒtester”…””}”(hj>hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj4ubhŒŘ molto piĂš esteso. Anche se avete contribuito ad un driver per un hardware che non è ancora disponibile, sarete sorpresi da quante persone inseriranno il vostro codice nei loro kernel. E, ovviamente, dove ci sono ”…””}”(hj4hžhhŸNh Nubj=)”}”(hŒ*tester*”h]”hŒtester”…””}”(hjPhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj4ubhŒ3, ci saranno anche dei rapporti su eventuali bachi.”…””}”(hj4hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh K˛hjĎhžhubh¨)”}”(hX La peggior specie di rapporti sono quelli che indicano delle regressioni. Se la vostra modifica causa una regressione, avrete un gran numero di occhi puntati su di voi; la regressione deve essere sistemata il prima possibile. Se non vorrete o non sarete capaci di sistemarla (e nessuno lo farĂ  per voi), la vostra modifica sarĂ  quasi certamente rimossa durante la fase di stabilizzazione. Oltre alla perdita di tutto il lavoro svolto per far si che la vostra modifica fosse inserita nel ramo principale, l'avere una modifica rimossa a causa del fallimento nel sistemare una regressione, potrebbe rendere piĂš difficile per voi far accettare il vostro lavoro in futuro.”h]”hX˘La peggior specie di rapporti sono quelli che indicano delle regressioni. Se la vostra modifica causa una regressione, avrete un gran numero di occhi puntati su di voi; la regressione deve essere sistemata il prima possibile. Se non vorrete o non sarete capaci di sistemarla (e nessuno lo farĂ  per voi), la vostra modifica sarĂ  quasi certamente rimossa durante la fase di stabilizzazione. Oltre alla perdita di tutto il lavoro svolto per far si che la vostra modifica fosse inserita nel ramo principale, l’avere una modifica rimossa a causa del fallimento nel sistemare una regressione, potrebbe rendere piĂš difficile per voi far accettare il vostro lavoro in futuro.”…””}”(hjhhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KšhjĎhžhubh¨)”}”(hXEDopo che ogni regressione è stata affrontata, ci potrebbero essere altri bachi ordinari da "sconfiggere". Il periodo di stabilizzazione è la vostra migliore opportunitĂ  per sistemare questi bachi e assicurarvi che il debutto del vostro codice nel ramo principale del kernel sia il piĂš solido possibile. Quindi, per favore, rispondete ai rapporti sui bachi e ponete rimedio, se possibile, a tutti i problemi. È a questo che serve il periodo di stabilizzazione; potete iniziare creando nuove fantastiche modifiche una volta che ogni problema con le vecchie sia stato risolto.”h]”hXIDopo che ogni regressione è stata affrontata, ci potrebbero essere altri bachi ordinari da “sconfiggere”. Il periodo di stabilizzazione è la vostra migliore opportunitĂ  per sistemare questi bachi e assicurarvi che il debutto del vostro codice nel ramo principale del kernel sia il piĂš solido possibile. Quindi, per favore, rispondete ai rapporti sui bachi e ponete rimedio, se possibile, a tutti i problemi. È a questo che serve il periodo di stabilizzazione; potete iniziare creando nuove fantastiche modifiche una volta che ogni problema con le vecchie sia stato risolto.”…””}”(hjvhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KÄhjĎhžhubh¨)”}”(hXźNon dimenticate che esistono altre pietre miliari che possono generare rapporti sui bachi: il successivo rilascio stabile, quando una distribuzione importante usa una versione del kernel nel quale è presente la vostra modifica, eccetera. Il continuare a rispondere a questi rapporti è fonte di orgoglio per il vostro lavoro. Se questa non è una sufficiente motivazione, allora, è anche consigliabile considera che la comunitĂ  di sviluppo ricorda gli sviluppatori che hanno perso interesse per il loro codice una volta integrato. La prossima volta che pubblicherete una patch, la comunitĂ  la valuterĂ  anche sulla base del fatto che non sarete disponibili a prendervene cura anche nel futuro.”h]”hXźNon dimenticate che esistono altre pietre miliari che possono generare rapporti sui bachi: il successivo rilascio stabile, quando una distribuzione importante usa una versione del kernel nel quale è presente la vostra modifica, eccetera. Il continuare a rispondere a questi rapporti è fonte di orgoglio per il vostro lavoro. Se questa non è una sufficiente motivazione, allora, è anche consigliabile considera che la comunitĂ  di sviluppo ricorda gli sviluppatori che hanno perso interesse per il loro codice una volta integrato. La prossima volta che pubblicherete una patch, la comunitĂ  la valuterĂ  anche sulla base del fatto che non sarete disponibili a prendervene cura anche nel futuro.”…””}”(hj„hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KÍhjĎhžhubeh}”(h]”Œcosa-accade-poi”ah ]”h"]”Œcosa accade poi”ah$]”h&]”uh1j•hj—hžhhŸjh K|ubj–)”}”(hhh]”(j›)”}”(hŒAltre cose che posso accadere”h]”hŒAltre cose che posso accadere”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jšhjšhžhhŸjh KÚubh¨)”}”(hXęUn giorno, potreste aprire la vostra email e vedere che qualcuno vi ha inviato una patch per il vostro codice. Questo, dopo tutto, è uno dei vantaggi di avere il vostro codice "lĂ  fuori". Se siete d'accordo con la modifica, potrete anche inoltrarla ad un manutentore di sottosistema (assicuratevi di includere la riga "From:" cosicchĂŠ l'attribuzione sia corretta, e aggiungete una vostra firma "Signed-off-by"), oppure inviate un "Acked-by:" e lasciate che l'autore originale la invii.”h]”hXUn giorno, potreste aprire la vostra email e vedere che qualcuno vi ha inviato una patch per il vostro codice. Questo, dopo tutto, è uno dei vantaggi di avere il vostro codice “lĂ  fuori”. Se siete d’accordo con la modifica, potrete anche inoltrarla ad un manutentore di sottosistema (assicuratevi di includere la riga “From:” cosicchĂŠ l’attribuzione sia corretta, e aggiungete una vostra firma “Signed-off-by”), oppure inviate un “Acked-by:” e lasciate che l’autore originale la invii.”…””}”(hjŤhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh KÜhjšhžhubh¨)”}”(hXDSe non siete d'accordo con la patch, inviate una risposta educata spiegando il perchĂŠ. Se possibile, dite all'autore quali cambiamenti servirebbero per rendere la patch accettabile da voi. C'è una certa riluttanza nell'inserire modifiche con un conflitto fra autore e manutentore del codice, ma solo fino ad un certo punto. Se siete visti come qualcuno che blocca un buon lavoro senza motivo, quelle patch vi passeranno oltre e andranno nel ramo principale in ogni caso. Nel kernel Linux, nessuno ha potere di veto assoluto su alcun codice. Eccezione fatta per Linus, forse.”h]”hXLSe non siete d’accordo con la patch, inviate una risposta educata spiegando il perchĂŠ. Se possibile, dite all’autore quali cambiamenti servirebbero per rendere la patch accettabile da voi. C’è una certa riluttanza nell’inserire modifiche con un conflitto fra autore e manutentore del codice, ma solo fino ad un certo punto. Se siete visti come qualcuno che blocca un buon lavoro senza motivo, quelle patch vi passeranno oltre e andranno nel ramo principale in ogni caso. Nel kernel Linux, nessuno ha potere di veto assoluto su alcun codice. Eccezione fatta per Linus, forse.”…””}”(hjšhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh Kähjšhžhubh¨)”}”(hXçIn rarissime occasioni, potreste vedere qualcosa di completamente diverso: un altro sviluppatore che pubblica una soluzione differente al vostro problema. A questo punto, c'è una buona probabilitĂ  che una delle due modifiche non verrĂ  integrata, e il "c'ero prima io" non è considerato un argomento tecnico rilevante. Se la modifica di qualcun'altro rimpiazza la vostra ed entra nel ramo principale, esiste un unico modo di reagire: siate contenti che il vostro problema sia stato risolto e andate avanti con il vostro lavoro. L'avere un vostro lavoro spintonato da parte in questo modo può essere avvilente e scoraggiante, ma la comunitĂ  ricorderĂ  come avrete reagito anche dopo che avrĂ  dimenticato quale fu la modifica accettata.”h]”hXóIn rarissime occasioni, potreste vedere qualcosa di completamente diverso: un altro sviluppatore che pubblica una soluzione differente al vostro problema. A questo punto, c’è una buona probabilitĂ  che una delle due modifiche non verrĂ  integrata, e il “c’ero prima io” non è considerato un argomento tecnico rilevante. Se la modifica di qualcun’altro rimpiazza la vostra ed entra nel ramo principale, esiste un unico modo di reagire: siate contenti che il vostro problema sia stato risolto e andate avanti con il vostro lavoro. L’avere un vostro lavoro spintonato da parte in questo modo può essere avvilente e scoraggiante, ma la comunitĂ  ricorderĂ  come avrete reagito anche dopo che avrĂ  dimenticato quale fu la modifica accettata.”…””}”(hjÇhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸjh Kîhjšhžhubeh}”(h]”Œaltre-cose-che-posso-accadere”ah ]”h"]”Œaltre cose che posso accadere”ah$]”h&]”uh1j•hj—hžhhŸjh KÚubeh}”(h]”(Œ completamento”j”eh ]”h"]”(Œ completamento”Œit_development_followthrough”eh$]”h&]”uh1j•hhhžhhŸjh K Œexpect_referenced_by_name”}”jăj‰sŒexpect_referenced_by_id”}”j”j‰subeh}”(h]”h ]”h"]”h$]”h&]”Œsource”juh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(jšNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”jŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”j”]”j‰asŒnameids”}”(jăj”jâjßjĚjÉj—j”jÚj×uŒ nametypes”}”(jăˆjâ‰j̉j—‰jÚ‰uh}”(j”j—jßj—jÉjĆj”jĎj×jšuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)”}”(hhh]”h¨)”}”(hhh]”hŒBHyperlink target "it-development-followthrough" is not referenced.”…””}”hjwsbah}”(h]”h ]”h"]”h$]”h&]”uh1h§hjtubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”jŒline”Kuh1jrubaŒ transformer”NŒ include_log”]”Œ