xref: /linux/Documentation/translations/pt_BR/process/maintainer-netdev.rst (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*c991b7efSDaniel Pereira.. SPDX-License-Identifier: GPL-2.0
2*c991b7efSDaniel Pereira
3*c991b7efSDaniel Pereira=====================================
4*c991b7efSDaniel PereiraSubsistema de Rede do Linux (netdev)
5*c991b7efSDaniel Pereira=====================================
6*c991b7efSDaniel Pereira
7*c991b7efSDaniel Pereiratl;dr
8*c991b7efSDaniel Pereira-----
9*c991b7efSDaniel Pereira
10*c991b7efSDaniel Pereira- **Direcione seu patch para uma árvore** – use ``[PATCH net]``para correções
11*c991b7efSDaniel Pereira  ou ``[PATCH net-next]`` para novas funcionalidades.
12*c991b7efSDaniel Pereira- **Tag Fixes** – para correções, a tag ``Fixes:`` é obrigatória,
13*c991b7efSDaniel Pereira  independentemente da árvore de destino.
14*c991b7efSDaniel Pereira- **Tamanho da série** – não envie séries grandes (> 15 patches);divida-as em
15*c991b7efSDaniel Pereira  partes menores.
16*c991b7efSDaniel Pereira- **Intervalo de envio** – não reenvie seus patches dentro de um período de 24
17*c991b7efSDaniel Pereira  horas.
18*c991b7efSDaniel Pereira- **Reverse xmas tree** – organize as declarações de variáveis locais da mais
19*c991b7efSDaniel Pereira  longa para a mais curta.
20*c991b7efSDaniel Pereira
21*c991b7efSDaniel Pereiranetdev
22*c991b7efSDaniel Pereira------
23*c991b7efSDaniel PereiraA **netdev** é a lista de discussão para todos os assuntos do Linux relacionados
24*c991b7efSDaniel Pereiraa rede. Isso inclui qualquer item encontrado em ``net/`` (ex: código principal
25*c991b7efSDaniel Pereiracomo IPv6) e  em ``drivers/net`` (ex: drivers específicos de hardware) na árvore
26*c991b7efSDaniel Pereirade diretórios do Linux.
27*c991b7efSDaniel Pereira
28*c991b7efSDaniel PereiraNote que alguns subsistemas (ex: drivers de rede sem fio/wireless), que possuem
29*c991b7efSDaniel Pereiraum  alto volume de tráfego, possuem suas próprias listas de discussão e árvores
30*c991b7efSDaniel Pereiraespecíficas.
31*c991b7efSDaniel Pereira
32*c991b7efSDaniel PereiraComo muitas outras listas de discussão do Linux, a lista netdev é hospedada no
33*c991b7efSDaniel Pereira`kernel.org <https://www.kernel.org/>`_, com arquivos disponíveis em
34*c991b7efSDaniel Pereirahttps://lore.kernel.org/netdev/.
35*c991b7efSDaniel Pereira
36*c991b7efSDaniel PereiraÀ exceção dos subsistemas mencionados anteriormente, todo o desenvolvimento de
37*c991b7efSDaniel Pereirarede  do Linux (ex: RFCs, revisões, comentários, etc.) ocorre na **netdev**.
38*c991b7efSDaniel Pereira
39*c991b7efSDaniel PereiraCiclo de Desenvolvimento
40*c991b7efSDaniel Pereira------------------------
41*c991b7efSDaniel Pereira
42*c991b7efSDaniel PereiraAqui está um pouco de informação contextual sobre a cadência de desenvolvimento
43*c991b7efSDaniel Pereirado Linux. Cada nova versão (release) inicia-se com uma "janela de mesclagem"
44*c991b7efSDaniel Pereira(*merge window*) de duas semanas, onde os mantenedores principais enviam suas
45*c991b7efSDaniel Pereiranovas implementações para o Linus para incorporação na árvore principal
46*c991b7efSDaniel Pereira(*mainline tree*).
47*c991b7efSDaniel Pereira
48*c991b7efSDaniel PereiraApós as duas semanas, a janela de mesclagem é fechada e a versão é
49*c991b7efSDaniel Pereiranomeada/etiquetada  como ``-rc1``. Nenhuma funcionalidade nova é incorporada à
50*c991b7efSDaniel Pereiraárvore principal após  isso -- espera-se apenas correções (*fixes*) para o
51*c991b7efSDaniel Pereiraconteúdo da rc1.
52*c991b7efSDaniel Pereira
53*c991b7efSDaniel PereiraApós cerca de uma semana coletando correções para a rc1, a rc2 é lançada. Isso
54*c991b7efSDaniel Pereirase  repete semanalmente até a rc7 (tipicamente; às vezes rc6 se o ritmo estiver
55*c991b7efSDaniel Pereiracalmo, ou rc8 se houver muita instabilidade); uma semana após a última vX.Y-rcN
56*c991b7efSDaniel Pereiraser  concluída, a versão oficial vX.Y é lançada.
57*c991b7efSDaniel Pereira
58*c991b7efSDaniel PereiraPara descobrir em que ponto do ciclo estamos agora - carregue a página da
59*c991b7efSDaniel Pereiramainline (Linus) aqui:
60*c991b7efSDaniel Pereira
61*c991b7efSDaniel Pereira  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
62*c991b7efSDaniel Pereira
63*c991b7efSDaniel Pereirae observe o topo da seção de "tags". Se for rc1, estamos no início do ciclo
64*c991b7efSDaniel Pereirade desenvolvimento. Se a rc7 foi marcada há uma semana, então um lançamento
65*c991b7efSDaniel Pereiraé provavelmente iminente. Se a tag mais recente for uma tag de lançamento
66*c991b7efSDaniel Pereirafinal (sem o sufixo ``-rcN``) - muito provavelmente estamos em uma janela de
67*c991b7efSDaniel Pereiramesclagem (*merge window*) e o ``net-next`` está fechado.
68*c991b7efSDaniel Pereira
69*c991b7efSDaniel PereiraÁrvores git e fluxo de patches
70*c991b7efSDaniel Pereira------------------------------
71*c991b7efSDaniel Pereira
72*c991b7efSDaniel PereiraExistem duas árvores de rede (repositórios git) em jogo. Ambas são coordenadas
73*c991b7efSDaniel Pereirapor David Miller, o mantenedor principal de rede. Há a árvore ``net``e a árvore
74*c991b7efSDaniel Pereira``net-next``. Como você provavelmente pode adivinhar pelos nomes, a árvore
75*c991b7efSDaniel Pereira``net`` é para correções de código existente já na árvore mainline de Linus, e a
76*c991b7efSDaniel Pereira``net-next`` é para onde o novo código vai para o lançamento futuro.
77*c991b7efSDaniel PereiraVocê pode encontrar as árvores aqui:
78*c991b7efSDaniel Pereira
79*c991b7efSDaniel Pereira- https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
80*c991b7efSDaniel Pereira- https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
81*c991b7efSDaniel Pereira
82*c991b7efSDaniel PereiraRelacionando isso ao desenvolvimento do kernel: no início da janela de mesclagem
83*c991b7efSDaniel Pereira(*merge window*) de 2 semanas, a árvore ``net-next`` será fechada, sem novas
84*c991b7efSDaniel Pereiramudanças ou funcionalidades. O conteúdo novo acumulado nas últimas 10 semanas
85*c991b7efSDaniel Pereiraserá passado para a mainline/Linus via um *pull request* para a vX.Y ao mesmo
86*c991b7efSDaniel Pereiratempo, a árvore ``net`` começará a acumular correções para este conteúdo enviado
87*c991b7efSDaniel Pereirarelacionado à vX.Y.
88*c991b7efSDaniel Pereira
89*c991b7efSDaniel PereiraUm anúncio indicando quando a ``net-next`` foi fechada é geralmente enviado para
90*c991b7efSDaniel Pereiraa netdev, mas sabendo o que foi dito acima, você pode prever isso com
91*c991b7efSDaniel Pereiraantecedência.
92*c991b7efSDaniel Pereira
93*c991b7efSDaniel Pereira.. warning::
94*c991b7efSDaniel Pereira
95*c991b7efSDaniel Pereira  Não envie novo conteúdo para a ``net-next`` para a netdev durante o período
96*c991b7efSDaniel Pereira  em que a árvore ``net-next`` estiver fechada.
97*c991b7efSDaniel Pereira
98*c991b7efSDaniel PereiraPatches RFC enviados apenas para revisão são obviamente bem-vindos a qualquer
99*c991b7efSDaniel Pereiramomento (use ``--subject-prefix='RFC net-next'`` com ``git format-patch``).
100*c991b7efSDaniel Pereira
101*c991b7efSDaniel PereiraPouco depois das duas semanas terem passado (e a vX.Y-rc1 ser lançada), a árvore
102*c991b7efSDaniel Pereirapara a ``net-next`` reabre para coletar conteúdo para o próximo lançamento
103*c991b7efSDaniel Pereira(vX.Y+1).
104*c991b7efSDaniel Pereira
105*c991b7efSDaniel PereiraSe você não estiver inscrito na netdev e/ou simplesmente não tiver certeza se a
106*c991b7efSDaniel Pereira``net-next`` já reabriu, basta verificar o link do repositório git da
107*c991b7efSDaniel Pereira``net-next`` acima para quaisquer novos *commits* relacionados à rede. Você
108*c991b7efSDaniel Pereiratambém pode verificar o seguinte site para o status atual:
109*c991b7efSDaniel Pereira
110*c991b7efSDaniel Pereira  https://netdev.bots.linux.dev/net-next.html
111*c991b7efSDaniel Pereira
112*c991b7efSDaniel PereiraA árvore ``net`` continua a coletar correções para o conteúdo da vX.Y e é
113*c991b7efSDaniel Pereiraenviada de volta para Linus em intervalos regulares (~semanais). Isso significa
114*c991b7efSDaniel Pereiraque o foco da ``net`` é a estabilização e correções de bugs.
115*c991b7efSDaniel Pereira
116*c991b7efSDaniel PereiraFinalmente, a vX.Y é lançada e todo o ciclo recomeça.
117*c991b7efSDaniel Pereira
118*c991b7efSDaniel PereiraRevisão de patches da netdev
119*c991b7efSDaniel Pereira----------------------------
120*c991b7efSDaniel Pereira
121*c991b7efSDaniel PereiraStatus do patch
122*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~
123*c991b7efSDaniel Pereira
124*c991b7efSDaniel PereiraO status de um patch pode ser verificado olhando a fila principal do patchwork
125*c991b7efSDaniel Pereirapara a netdev:
126*c991b7efSDaniel Pereira
127*c991b7efSDaniel Pereira  https://patchwork.kernel.org/project/netdevbpf/list/
128*c991b7efSDaniel Pereira
129*c991b7efSDaniel PereiraO campo "State" informará exatamente onde as coisas estão com o seu patch:
130*c991b7efSDaniel Pereira
131*c991b7efSDaniel Pereira=================  ============================================================
132*c991b7efSDaniel PereiraEstado do patch    Descrição
133*c991b7efSDaniel Pereira=================  ============================================================
134*c991b7efSDaniel PereiraNew, Under review  revisão pendente, o patch está na fila do mantenedor
135*c991b7efSDaniel Pereira                   para revisão; os dois estados são usados alternadamente
136*c991b7efSDaniel Pereira                   (dependendo do co-mantenedor exato que estiver lidando
137*c991b7efSDaniel Pereira                   com o patchwork no momento)
138*c991b7efSDaniel PereiraAccepted           o patch foi aplicado à árvore de rede apropriada,
139*c991b7efSDaniel Pereira                   isso é geralmente definido de forma automática pelo pw-bot
140*c991b7efSDaniel PereiraNeeds ACK          aguardando um "ack" de um especialista da área
141*c991b7efSDaniel Pereira                   ou testes
142*c991b7efSDaniel PereiraChanges requested  o patch não passou na revisão, espera-se uma nova
143*c991b7efSDaniel Pereira                   revisão com mudanças apropriadas no código e na mensagem
144*c991b7efSDaniel Pereira                   de commit
145*c991b7efSDaniel PereiraRejected           o patch foi rejeitado e não se espera uma nova
146*c991b7efSDaniel Pereira                   revisão
147*c991b7efSDaniel PereiraNot applicable     espera-se que o patch seja aplicado fora do
148*c991b7efSDaniel Pereira                   subsistema de rede
149*c991b7efSDaniel PereiraAwaiting upstream  o patch deve ser revisado e tratado pelo sub-mantenedor
150*c991b7efSDaniel Pereira                   apropriado, que o enviará para as árvores de rede;
151*c991b7efSDaniel Pereira                   patches definidos como ``Awaiting upstream`` no patchwork
152*c991b7efSDaniel Pereira                   da netdev geralmente permanecerão neste estado,
153*c991b7efSDaniel Pereira                   independentemente de o sub-mantenedor ter solicitado
154*c991b7efSDaniel Pereira                   mudanças, aceito ou rejeitado o patch
155*c991b7efSDaniel PereiraDeferred           o patch precisa ser reenviado mais tarde, geralmente
156*c991b7efSDaniel Pereira                   devido a alguma dependência ou porque foi enviado para
157*c991b7efSDaniel Pereira                   uma árvore fechada
158*c991b7efSDaniel PereiraSuperseded         uma nova versão do patch foi enviada, geralmente
159*c991b7efSDaniel Pereira                   definido pelo pw-bot
160*c991b7efSDaniel PereiraRFC                não deve ser aplicado, geralmente não está na
161*c991b7efSDaniel Pereira                   fila de revisão do mantenedor; o pw-bot pode definir
162*c991b7efSDaniel Pereira                   patches para este estado automaticamente com base nas
163*c991b7efSDaniel Pereira                   tags do assunto
164*c991b7efSDaniel Pereira=================  ============================================================
165*c991b7efSDaniel Pereira
166*c991b7efSDaniel PereiraOs patches são indexados pelo cabeçalho ``Message-ID`` dos e-mails que os
167*c991b7efSDaniel Pereiratransportaram; portanto, se você tiver problemas para encontrar seu patch,
168*c991b7efSDaniel Pereiraanexe o valor do ``Message-ID`` à URL acima.
169*c991b7efSDaniel Pereira
170*c991b7efSDaniel PereiraAtualizando o status do patch
171*c991b7efSDaniel Pereira-----------------------------
172*c991b7efSDaniel Pereira
173*c991b7efSDaniel PereiraColaboradores e revisores não têm permissões para atualizar o estado do patch
174*c991b7efSDaniel Pereiradiretamente no patchwork. O Patchwork não expõe muitas informações sobre o
175*c991b7efSDaniel Pereirahistórico do estado dos patches; portanto, ter várias pessoas atualizando o
176*c991b7efSDaniel Pereiraestado leva a confusões.
177*c991b7efSDaniel Pereira
178*c991b7efSDaniel PereiraEm vez de delegar permissões do patchwork, a netdev usa um robô de e-mail
179*c991b7efSDaniel Pereirasimples (bot) que procura por comandos/linhas especiais dentro dos e-mails
180*c991b7efSDaniel Pereiraenviados para a lista de discussão. Por exemplo, para marcar uma série como
181*c991b7efSDaniel PereiraMudanças Solicitadas (*Changes Requested*), é necessário enviar a seguinte
182*c991b7efSDaniel Pereiralinha em qualquer lugar na thread do e-mail::
183*c991b7efSDaniel Pereira
184*c991b7efSDaniel Pereira  pw-bot: changes-requested
185*c991b7efSDaniel Pereira
186*c991b7efSDaniel PereiraComo resultado, o bot definirá toda a série como Mudanças Solicitadas. Isso
187*c991b7efSDaniel Pereirapode ser útil quando o autor descobre um bug em sua própria série e deseja
188*c991b7efSDaniel Pereiraevitar que ela seja aplicada.
189*c991b7efSDaniel Pereira
190*c991b7efSDaniel PereiraO uso do bot é totalmente opcional; em caso de dúvida, ignore completamente a
191*c991b7efSDaniel Pereiraexistência dele. Os mantenedores classificarão e atualizarão o estado dos
192*c991b7efSDaniel Pereirapatches por conta própria. Nenhum e-mail deve ser enviado à lista com o
193*c991b7efSDaniel Pereirapropósito principal de se comunicar com o bot; os comandos do bot devem ser
194*c991b7efSDaniel Pereiravistos como metadados.
195*c991b7efSDaniel Pereira
196*c991b7efSDaniel PereiraO uso do bot é restrito aos autores dos patches (o cabeçalho ``From:`` no envio
197*c991b7efSDaniel Pereirado patch e no comando deve coincidir!), mantenedores do código modificado de
198*c991b7efSDaniel Pereiraacordo com o arquivo MAINTAINERS (novamente, o ``From:`` deve coincidir
199*c991b7efSDaniel Pereiracom a entrada no MAINTAINERS) e alguns revisores seniores.
200*c991b7efSDaniel Pereira
201*c991b7efSDaniel PereiraO bot registra sua atividade aqui:
202*c991b7efSDaniel Pereira
203*c991b7efSDaniel Pereira  https://netdev.bots.linux.dev/pw-bot.html
204*c991b7efSDaniel Pereira
205*c991b7efSDaniel PereiraPrazos de revisão
206*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~
207*c991b7efSDaniel Pereira
208*c991b7efSDaniel PereiraDe modo geral, os patches são triados rapidamente (em menos de 48h). Mas
209*c991b7efSDaniel Pereiraseja paciente; se o seu patch estiver ativo no patchwork (ou seja, listado
210*c991b7efSDaniel Pereirana lista de patches do projeto), as chances de ele ter sido esquecido são
211*c991b7efSDaniel Pereirapróximas de zero.
212*c991b7efSDaniel Pereira
213*c991b7efSDaniel PereiraO alto volume de desenvolvimento na netdev faz com que os revisores encerrem
214*c991b7efSDaniel Pereiradiscussões de forma relativamente rápida. É muito improvável que novos
215*c991b7efSDaniel Pereiracomentários e respostas cheguem após uma semana de silêncio. Se um
216*c991b7efSDaniel Pereirapatch não estiver mais ativo no patchwork e a thread ficar inativa por mais de
217*c991b7efSDaniel Pereirauma semana - esclareça os próximos passos e/ou envie a próxima versão.
218*c991b7efSDaniel Pereira
219*c991b7efSDaniel PereiraEspecificamente para envios de RFC, se ninguém responder em uma semana  ou os
220*c991b7efSDaniel Pereirarevisores perderam o envio ou não têm opiniões fortes a respeito. Se o código
221*c991b7efSDaniel Pereiraestiver pronto, reenvie como um PATCH.
222*c991b7efSDaniel Pereira
223*c991b7efSDaniel PereiraE-mails dizendo apenas "ping" ou "bump" são considerados rudes. Se você não
224*c991b7efSDaniel Pereiraconseguir identificar o status do patch pelo patchwork ou onde a discussão
225*c991b7efSDaniel Pereiraparou - descreva sua melhor suposição e pergunte se ela está correta. Por
226*c991b7efSDaniel Pereiraexemplo::
227*c991b7efSDaniel Pereira
228*c991b7efSDaniel Pereira  Não entendo quais são os próximos passos. A Pessoa X parece estar  descontente
229*c991b7efSDaniel Pereira  com A; devo fazer B e enviar novamente os patches?
230*c991b7efSDaniel Pereira
231*c991b7efSDaniel Pereira.. _Solicitações de mudanças:
232*c991b7efSDaniel Pereira
233*c991b7efSDaniel PereiraMudanças solicitadas
234*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~
235*c991b7efSDaniel Pereira
236*c991b7efSDaniel PereiraPatches marcados como ``Changes Requested`` precisam ser revisados. A nova
237*c991b7efSDaniel Pereiraversão deve vir com um registro de alterações (changelog),
238*c991b7efSDaniel Pereirapreferencialmente incluindo links para as postagens anteriores, por exemplo::
239*c991b7efSDaniel Pereira
240*c991b7efSDaniel Pereira  [PATCH net-next v3] net: faz as vacas dizerem "muuu"
241*c991b7efSDaniel Pereira
242*c991b7efSDaniel Pereira  Mesmo os usuários que não bebem leite apreciam ouvir as vacas dizendo
243*c991b7efSDaniel Pereira  "muuu".
244*c991b7efSDaniel Pereira
245*c991b7efSDaniel Pereira  A quantidade de mugidos dependerá da taxa de pacotes, portanto, deve
246*c991b7efSDaniel Pereira  corresponder muito bem ao ciclo diurno.
247*c991b7efSDaniel Pereira
248*c991b7efSDaniel Pereira  Signed-off-by: Joe Defarmer <joe@barn.org>
249*c991b7efSDaniel Pereira  ---
250*c991b7efSDaniel Pereira  v3:
251*c991b7efSDaniel Pereira    - adicionada uma nota sobre a flutuação do mugido conforme a hora
252*c991b7efSDaniel Pereira      do dia na
253*c991b7efSDaniel Pereira      mensagem de commit
254*c991b7efSDaniel Pereira  v2: https://lore.kernel.org/netdev/123themessageid@barn.org/
255*c991b7efSDaniel Pereira    - corrigido argumento ausente na kernel doc para netif_is_bovine()
256*c991b7efSDaniel Pereira    - corrigido vazamento de memória (memory leak) em
257*c991b7efSDaniel Pereira    netdev_register_cow()
258*c991b7efSDaniel Pereira  v1: https://lore.kernel.org/netdev/456getstheclicks@barn.org/
259*c991b7efSDaniel Pereira
260*c991b7efSDaniel PereiraA mensagem de commit deve ser revisada para responder a quaisquer perguntas que
261*c991b7efSDaniel Pereiraos revisores tenham feito em discussões anteriores. Ocasionalmente, a
262*c991b7efSDaniel Pereiraatualização da mensagem de commit será a única mudança na nova versão.
263*c991b7efSDaniel Pereira
264*c991b7efSDaniel PereiraReenvios parciais
265*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~
266*c991b7efSDaniel Pereira
267*c991b7efSDaniel PereiraPor favor, sempre reenvie a série completa de patches e certifique-se de
268*c991b7efSDaniel Pereiranumerar seus patches de forma que fique claro que este é o conjunto mais
269*c991b7efSDaniel Pereirarecente e completo de patches que pode ser aplicado. Não tente reenviar apenas
270*c991b7efSDaniel Pereiraos patches que foram alterados.
271*c991b7efSDaniel Pereira
272*c991b7efSDaniel PereiraLidando com patches aplicados incorretamente
273*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
274*c991b7efSDaniel Pereira
275*c991b7efSDaniel PereiraOcasionalmente, uma série de patches é aplicada antes de receber feedback
276*c991b7efSDaniel Pereiracrítico, ou a versão errada de uma série é aplicada.
277*c991b7efSDaniel Pereira
278*c991b7efSDaniel PereiraNão é possível fazer o patch desaparecer uma vez que ele foi enviado (pushed);
279*c991b7efSDaniel Pereirao histórico de commits nas árvores netdev é imutável. Por favor, envie versões
280*c991b7efSDaniel Pereiraincrementais sobre o que foi mesclado para corrigir os patches da maneira que
281*c991b7efSDaniel Pereiraeles ficariam se a sua série de patches mais recente fosse mesclada.
282*c991b7efSDaniel Pereira
283*c991b7efSDaniel PereiraEm casos onde uma reversão completa (revert) é necessária, a reversão deve ser
284*c991b7efSDaniel Pereiraenviada como um patch para a lista com uma mensagem de commit explicando os
285*c991b7efSDaniel Pereiraproblemas técnicos com o commit revertido. Reversões devem ser usadas como
286*c991b7efSDaniel Pereiraúltimo recurso, quando a mudança original está completamente errada; correções
287*c991b7efSDaniel Pereiraincrementais são preferidas.
288*c991b7efSDaniel Pereira
289*c991b7efSDaniel PereiraÁrvore estável
290*c991b7efSDaniel Pereira~~~~~~~~~~~~~~
291*c991b7efSDaniel Pereira
292*c991b7efSDaniel PereiraEmbora antigamente as submissões para a netdev não devessem carregar tags
293*c991b7efSDaniel Pereiraexplícitas ``CC: stable@vger.kernel.org``, esse não é mais o caso hoje em dia.
294*c991b7efSDaniel PereiraPor favor, siga as regras padrão de estabilidade em
295*c991b7efSDaniel Pereira``Documentation/process/stable-kernel-rules.rst``, e certifique-se de incluir as
296*c991b7efSDaniel Pereiratags Fixes apropriadas!
297*c991b7efSDaniel Pereira
298*c991b7efSDaniel PereiraCorreções de segurança
299*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~
300*c991b7efSDaniel Pereira
301*c991b7efSDaniel PereiraNão envie e-mails diretamente para os mantenedores da netdev se você acha que
302*c991b7efSDaniel Pereiradescobriu um bug que possa ter possíveis implicações de segurança. O atual
303*c991b7efSDaniel Pereiramantenedor da netdev tem solicitado consistentemente que as pessoas usem as
304*c991b7efSDaniel Pereiralistas de discussão e não entrem em contato diretamente. Se você não estiver
305*c991b7efSDaniel Pereirade acordo com isso, considere enviar um e-mail para security@kernel.org ou
306*c991b7efSDaniel Pereiraler sobre http://oss-security.openwall.org/wiki/mailing-lists/distros como
307*c991b7efSDaniel Pereirapossíveis mecanismos alternativos.
308*c991b7efSDaniel Pereira
309*c991b7efSDaniel PereiraEnvio conjunto de mudanças em componentes de espaço do usuário
310*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
311*c991b7efSDaniel Pereira
312*c991b7efSDaniel PereiraO código de espaço do usuário (*user space*) que exercita funcionalidades do
313*c991b7efSDaniel Pereirakernel deve ser enviado juntamente com os patches do kernel. Isso dá aos
314*c991b7efSDaniel Pereirarevisores a chance de ver como qualquer nova interface é usada e quão
315*c991b7efSDaniel Pereirabem ela funciona.
316*c991b7efSDaniel Pereira
317*c991b7efSDaniel PereiraQuando as ferramentas de espaço do usuário residem no próprio repositório do
318*c991b7efSDaniel Pereirakernel, todas as alterações devem geralmente vir em uma única série. Se a série
319*c991b7efSDaniel Pereirase tornar muito grande ou se o projeto de espaço do usuário não for revisado na
320*c991b7efSDaniel Pereiranetdev, inclua um link para um repositório público onde os patches de espaço do
321*c991b7efSDaniel Pereirausuário possam ser vistos.
322*c991b7efSDaniel Pereira
323*c991b7efSDaniel PereiraNo caso de ferramentas de espaço do usuário residirem em um repositório
324*c991b7efSDaniel Pereiraseparado, mas serem revisadas na netdev (por exemplo, patches para ferramentas
325*c991b7efSDaniel Pereira``iproute2``), os patches do kernel e do espaço do usuário devem formar séries
326*c991b7efSDaniel Pereira(threads) separadas quando postados na lista de discussão, por exemplo::
327*c991b7efSDaniel Pereira
328*c991b7efSDaniel Pereira  [PATCH net-next 0/3] net: carta de apresentação de alguma funcionalidade
329*c991b7efSDaniel Pereira   └─ [PATCH net-next 1/3] net: preparação para alguma funcionalidade
330*c991b7efSDaniel Pereira   └─ [PATCH net-next 2/3] net: implementação de alguma funcionalidade
331*c991b7efSDaniel Pereira   └─ [PATCH net-next 3/3] selftest: net: alguma funcionalidade
332*c991b7efSDaniel Pereira
333*c991b7efSDaniel Pereira  [PATCH iproute2-next] ip: adiciona suporte para alguma funcionalidade
334*c991b7efSDaniel Pereira
335*c991b7efSDaniel PereiraA postagem em uma única thread é desencorajada porque confunde o patchwork
336*c991b7efSDaniel Pereira(a partir da versão 2.2.2 do patchwork).
337*c991b7efSDaniel Pereira
338*c991b7efSDaniel PereiraEnvio conjunto de selftests
339*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~~~~
340*c991b7efSDaniel Pereira
341*c991b7efSDaniel PereiraOs selftests devem fazer parte da mesma série que as mudanças de código.
342*c991b7efSDaniel PereiraEspecificamente para correções, tanto a mudança de código quanto o teste
343*c991b7efSDaniel Pereirarelacionado devem ir para a mesma árvore (os testes podem não ter uma tag
344*c991b7efSDaniel PereiraFixes, o que é esperado). Misturar mudanças de código e mudanças de teste em
345*c991b7efSDaniel Pereiraum único commit é desencorajado.
346*c991b7efSDaniel Pereira
347*c991b7efSDaniel PereiraPreparando as mudanças
348*c991b7efSDaniel Pereira----------------------
349*c991b7efSDaniel Pereira
350*c991b7efSDaniel PereiraAtenção aos detalhes é importante. Releia seu próprio trabalho como se você
351*c991b7efSDaniel Pereirafosse o revisor. Você pode começar usando o ``checkpatch.pl``, talvez até com
352*c991b7efSDaniel Pereiraa flag ``--strict``. Mas não seja robótico e irracional ao fazer isso. Se sua
353*c991b7efSDaniel Pereiramudança for uma correção de bug, certifique-se de que seu log de commit indique
354*c991b7efSDaniel Pereirao sintoma visível para o usuário final, a razão subjacente de por que isso
355*c991b7efSDaniel Pereiraacontece e, se necessário, explique por que a correção proposta é a melhor
356*c991b7efSDaniel Pereiramaneira de resolver as coisas. Não corrompa espaços em branco e, como é comum,
357*c991b7efSDaniel Pereiranão use recuos incorretos em argumentos de função que abrangem várias linhas.
358*c991b7efSDaniel PereiraSe for o seu primeiro patch, envie-o para si mesmo por e-mail para que você
359*c991b7efSDaniel Pereirapossa testar a aplicação em uma árvore sem patches para confirmar que a
360*c991b7efSDaniel Pereirainfraestrutura não o danificou.
361*c991b7efSDaniel Pereira
362*c991b7efSDaniel PereiraFinalmente, volte e leia ``Documentation/process/submitting-patches.rst``
363*c991b7efSDaniel Pereirapara ter certeza de que não está repetindo algum erro comum documentado lá.
364*c991b7efSDaniel Pereira
365*c991b7efSDaniel PereiraIndicando a árvore de destino
366*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
367*c991b7efSDaniel Pereira
368*c991b7efSDaniel PereiraPara ajudar os mantenedores e os bots de CI, você deve marcar explicitamente
369*c991b7efSDaniel Pereiraqual árvore seu patch tem como alvo. Supondo que você use git, utilize a flag
370*c991b7efSDaniel Pereirade prefixo::
371*c991b7efSDaniel Pereira
372*c991b7efSDaniel Pereira  git format-patch --subject-prefix='PATCH net-next' inicio..fim
373*c991b7efSDaniel Pereira
374*c991b7efSDaniel PereiraUse ``net`` em vez de ``net-next`` (sempre em letras minúsculas) no comando
375*c991b7efSDaniel Pereiraacima para conteúdos de correção de bugs da árvore ``net``.
376*c991b7efSDaniel Pereira
377*c991b7efSDaniel PereiraDividindo o trabalho em patches
378*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
379*c991b7efSDaniel Pereira
380*c991b7efSDaniel PereiraColoque-se no lugar do revisor. Cada patch é lido separadamente e, portanto,
381*c991b7efSDaniel Pereiradeve constituir um passo compreensível em direção ao seu objetivo declarado.
382*c991b7efSDaniel Pereira
383*c991b7efSDaniel PereiraEvite enviar séries com mais de 15 patches. Séries maiores levam mais tempo
384*c991b7efSDaniel Pereirapara serem revisadas, pois os revisores adiarão a análise até encontrarem um
385*c991b7efSDaniel Pereiragrande bloco de tempo disponível. Uma série pequena pode ser revisada em pouco
386*c991b7efSDaniel Pereiratempo, então os mantenedores simplesmente a revisam de imediato. Como resultado,
387*c991b7efSDaniel Pereirauma sequência de séries menores é mesclada mais rapidamente e com melhor
388*c991b7efSDaniel Pereiracobertura de revisão. Reenviar séries grandes também aumenta o tráfego na lista
389*c991b7efSDaniel Pereirade discussão.
390*c991b7efSDaniel Pereira
391*c991b7efSDaniel PereiraLimitar patches pendentes na lista de discussão
392*c991b7efSDaniel Pereira-----------------------------------------------
393*c991b7efSDaniel Pereira
394*c991b7efSDaniel PereiraEvite ter mais de 15 patches, em todas as séries, pendentes de revisão na lista
395*c991b7efSDaniel Pereirade discussão para uma única árvore. Em outras palavras, um máximo de 15 patches
396*c991b7efSDaniel Pereirasob revisão na ``net`` e um máximo de 15 patches sob revisão na ``net-next``.
397*c991b7efSDaniel Pereira
398*c991b7efSDaniel PereiraEste limite tem o objetivo de focar o esforço do desenvolvedor nos testes dos
399*c991b7efSDaniel Pereirapatches antes da revisão upstream, auxiliando a qualidade das submissões
400*c991b7efSDaniel Pereiraupstream e aliviando a carga sobre os revisores.
401*c991b7efSDaniel Pereira
402*c991b7efSDaniel PereiraOrdenação de variáveis locais ("árvore invertida", "RCS")
403*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
404*c991b7efSDaniel Pereira
405*c991b7efSDaniel PereiraA netdev tem uma convenção para ordenar variáveis locais em funções. Ordene as
406*c991b7efSDaniel Pereiralinhas de declaração de variáveis da mais longa para a mais curta, por exemplo::
407*c991b7efSDaniel Pereira
408*c991b7efSDaniel Pereira  struct scatterlist *sg;
409*c991b7efSDaniel Pereira  struct sk_buff *skb;
410*c991b7efSDaniel Pereira  int err, i;
411*c991b7efSDaniel Pereira
412*c991b7efSDaniel PereiraSe houver dependências entre as variáveis que impeçam a ordenação, mova a
413*c991b7efSDaniel Pereirainicialização para fora da linha de declaração.
414*c991b7efSDaniel Pereira
415*c991b7efSDaniel PereiraPrecedência de formatação
416*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~
417*c991b7efSDaniel Pereira
418*c991b7efSDaniel PereiraAo trabalhar em código existente que utiliza formatação não padrão, faça com
419*c991b7efSDaniel Pereiraque seu código siga as diretrizes mais recentes, para que, eventualmente,
420*c991b7efSDaniel Pereiratodo o código no domínio da netdev esteja no formato preferido.
421*c991b7efSDaniel Pereira
422*c991b7efSDaniel PereiraUso de construções gerenciadas por dispositivo e cleanup.h
423*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
424*c991b7efSDaniel Pereira
425*c991b7efSDaniel PereiraHistoricamente, a netdev permanece cética em relação às promessas de todas as
426*c991b7efSDaniel PereiraAPIs de "auto-limpeza" (auto-cleanup), incluindo até mesmo os auxiliares
427*c991b7efSDaniel Pereira``devm_``. Eles não são o estilo preferido de implementação, apenas um estilo
428*c991b7efSDaniel Pereiraaceitável.
429*c991b7efSDaniel Pereira
430*c991b7efSDaniel PereiraO uso de ``guard()`` é desencorajado em qualquer função com mais de 20 linhas;
431*c991b7efSDaniel Pereira``scoped_guard()`` é considerado mais legível. O uso de lock/unlock normal
432*c991b7efSDaniel Pereiraainda é (levemente) preferido.
433*c991b7efSDaniel Pereira
434*c991b7efSDaniel PereiraConstruções de limpeza de baixo nível (como ``__free()``) podem ser usadas ao
435*c991b7efSDaniel Pereiraconstruir APIs e auxiliares, especialmente iteradores com escopo. No entanto, o
436*c991b7efSDaniel Pereirauso direto de ``__free()`` dentro do núcleo de rede (networking core) e drivers
437*c991b7efSDaniel Pereiraé desencorajado. Orientações semelhantes se aplicam à declaração de variáveis
438*c991b7efSDaniel Pereirano meio da função.
439*c991b7efSDaniel Pereira
440*c991b7efSDaniel PereiraPatches de limpeza (Clean-up patches)
441*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
442*c991b7efSDaniel Pereira
443*c991b7efSDaniel PereiraA netdev desencoraja patches que realizam limpezas simples que não estejam no
444*c991b7efSDaniel Pereiracontexto de outro trabalho. Por exemplo:
445*c991b7efSDaniel Pereira
446*c991b7efSDaniel Pereira* Tratar avisos do ``checkpatch.pl`` e outros avisos triviais de estilo de
447*c991b7efSDaniel Pereira  codificação
448*c991b7efSDaniel Pereira* Tratar problemas de Ordenação de variáveis locais
449*c991b7efSDaniel Pereira* Conversões para APIs gerenciadas por dispositivo (auxiliares ``devm_``)
450*c991b7efSDaniel Pereira
451*c991b7efSDaniel PereiraIsso ocorre porque se considera que a agitação (*churn*) que tais mudanças
452*c991b7efSDaniel Pereiraproduzem tem um custo maior do que o valor de tais limpezas.
453*c991b7efSDaniel Pereira
454*c991b7efSDaniel PereiraPor outro lado, correções de ortografia e gramática não são desencorajadas.
455*c991b7efSDaniel Pereira
456*c991b7efSDaniel PereiraReenviando após a revisão
457*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~
458*c991b7efSDaniel Pereira
459*c991b7efSDaniel PereiraAguarde pelo menos 24 horas entre as postagens. Isso garantirá que revisores de
460*c991b7efSDaniel Pereiratodas as localizações geográficas tenham a chance de se manifestar. Não espere
461*c991b7efSDaniel Pereiramuito tempo (semanas) entre as postagens, pois isso tornará mais difícil para
462*c991b7efSDaniel Pereiraos revisores lembrarem de todo o contexto.
463*c991b7efSDaniel Pereira
464*c991b7efSDaniel PereiraCertifique-se de tratar todo o feedback em sua nova postagem. Não envie uma
465*c991b7efSDaniel Pereiranova versão do código se a discussão sobre a versão anterior ainda estiver em
466*c991b7efSDaniel Pereiraandamento, a menos que seja instruído diretamente por um revisor.
467*c991b7efSDaniel Pereira
468*c991b7efSDaniel PereiraA nova versão dos patches deve ser postada como uma thread separada, não como
469*c991b7efSDaniel Pereirauma resposta à postagem anterior. O registro de alterações (changelog) deve
470*c991b7efSDaniel Pereiraincluir um link para a postagem anterior (veja :ref:`Solicitações
471*c991b7efSDaniel Pereirade mudanças`).
472*c991b7efSDaniel Pereira
473*c991b7efSDaniel PereiraTestes
474*c991b7efSDaniel Pereira------
475*c991b7efSDaniel Pereira
476*c991b7efSDaniel PereiraNível de teste esperado
477*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~
478*c991b7efSDaniel Pereira
479*c991b7efSDaniel PereiraNo mínimo, suas alterações devem passar por uma compilação ``allyesconfig`` e
480*c991b7efSDaniel Pereirauma ``allmodconfig`` com ``W=1`` definido, sem novos avisos ou falhas.
481*c991b7efSDaniel Pereira
482*c991b7efSDaniel PereiraO ideal é que você tenha feito testes em tempo de execução específicos para sua
483*c991b7efSDaniel Pereiraalteração, e que a série de patches contenha um conjunto de selftests do kernel
484*c991b7efSDaniel Pereirapara ``tools/testing/selftests/net`` ou usando o framework KUnit.
485*c991b7efSDaniel Pereira
486*c991b7efSDaniel PereiraEspera-se que você teste suas alterações no topo da árvore de rede relevante
487*c991b7efSDaniel Pereira(``net`` ou ``net-next``) e não, por exemplo, em uma árvore estável ou na
488*c991b7efSDaniel Pereira``linux-next``.
489*c991b7efSDaniel Pereira
490*c991b7efSDaniel PereiraVerificações do patchwork
491*c991b7efSDaniel Pereira~~~~~~~~~~~~~~~~~~~~~~~~~
492*c991b7efSDaniel Pereira
493*c991b7efSDaniel PereiraAs verificações (*checks*) no patchwork são, em sua maioria, wrappers simples
494*c991b7efSDaniel Pereiraem torno de scripts existentes do kernel; as fontes estão disponíveis em:
495*c991b7efSDaniel Pereira
496*c991b7efSDaniel Pereirahttps://github.com/linux-netdev/nipa/tree/master/tests
497*c991b7efSDaniel Pereira
498*c991b7efSDaniel Pereira**Não** envie seus patches apenas para executá-los nas verificações. Você deve
499*c991b7efSDaniel Pereiragarantir que seus patches estejam prontos, testando-os localmente antes de
500*c991b7efSDaniel Pereirapostar na lista de discussão. A instância do bot de build do patchwork fica
501*c991b7efSDaniel Pereirasobrecarregada com muita facilidade e a netdev@vger realmente não precisa de
502*c991b7efSDaniel Pereiramais tráfego se pudermos evitar.
503*c991b7efSDaniel Pereira
504*c991b7efSDaniel Pereiranetdevsim
505*c991b7efSDaniel Pereira~~~~~~~~~
506*c991b7efSDaniel Pereira
507*c991b7efSDaniel PereiraO ``netdevsim`` é um driver de teste que pode ser usado para exercitar APIs de
508*c991b7efSDaniel Pereiraconfiguração de driver sem a necessidade de hardware compatível. Mock-ups e
509*c991b7efSDaniel Pereiratestes baseados no ``netdevsim`` são fortemente encorajados ao adicionar novas
510*c991b7efSDaniel PereiraAPIs, mas o ``netdevsim`` em si **não** é considerado um caso de uso/usuário.
511*c991b7efSDaniel PereiraVocê também deve implementar as novas APIs em um driver real.
512*c991b7efSDaniel Pereira
513*c991b7efSDaniel PereiraNão damos garantias de que o ``netdevsim`` mudará no futuro de uma forma que
514*c991b7efSDaniel Pereiraquebraria o que normalmente seria considerado uAPI.  O ``netdevsim`` é reservado
515*c991b7efSDaniel Pereiraapenas para uso por testes upstream, portanto, quaisquer novos recursos do
516*c991b7efSDaniel Pereira``netdevsim`` devem ser acompanhados de selftests em ``tools/testing/selftests/``.
517*c991b7efSDaniel Pereira
518*c991b7efSDaniel PereiraStatus de suporte para drivers
519*c991b7efSDaniel Pereira------------------------------
520*c991b7efSDaniel Pereira
521*c991b7efSDaniel Pereira.. note:
522*c991b7efSDaniel Pereira
523*c991b7efSDaniel PereiraOs requisitos a seguir aplicam-se apenas a drivers de NIC Ethernet.
524*c991b7efSDaniel Pereira
525*c991b7efSDaniel PereiraA netdev define requisitos adicionais para drivers que desejam adquirir o status
526*c991b7efSDaniel Pereira``Supported`` (Suportado) no arquivo MAINTAINERS. Drivers ``Supported`` devem
527*c991b7efSDaniel Pereiraexecutar todos os testes de driver upstream e relatar os resultados duas vezes
528*c991b7efSDaniel Pereirapor dia. Drivers que não cumprirem este requisito devem usar o status
529*c991b7efSDaniel Pereira``Maintained`` (Mantido). Atualmente, não há diferença na forma como os drivers
530*c991b7efSDaniel Pereira``Supported`` e ``Maintained`` são tratados no upstream.
531*c991b7efSDaniel Pereira
532*c991b7efSDaniel PereiraAs regras exatas que um driver deve seguir para adquirir o status ``Supported``:
533*c991b7efSDaniel Pereira
534*c991b7efSDaniel Pereira1. Deve executar todos os testes sob os alvos ``drivers/net`` e
535*c991b7efSDaniel Pereira   ``drivers/net/hw`` dos selftests do Linux. A execução e o relato
536*c991b7efSDaniel Pereira   de testes privados / internos também são bem-vindos, mas os testes
537*c991b7efSDaniel Pereira   upstream são obrigatórios.
538*c991b7efSDaniel Pereira
539*c991b7efSDaniel Pereira2. A frequência mínima de execução é uma vez a cada 12 horas. Deve
540*c991b7efSDaniel Pereira   testar o branch designado a partir do feed de branches selecionado.
541*c991b7efSDaniel Pereira   Observe que os branches são construídos automaticamente e estão
542*c991b7efSDaniel Pereira   expostos à postagem intencional de patches maliciosos; portanto,
543*c991b7efSDaniel Pereira   os sistemas de teste devem ser isolados.
544*c991b7efSDaniel Pereira
545*c991b7efSDaniel Pereira3. Drivers que suportam múltiplas gerações de dispositivos devem
546*c991b7efSDaniel Pereira   testar pelo menos um dispositivo de cada geração. Um manifesto do
547*c991b7efSDaniel Pereira   ambiente de teste (*testbed manifest* - formato exato a definir)
548*c991b7efSDaniel Pereira   deve descrever os modelos de dispositivos testados.
549*c991b7efSDaniel Pereira
550*c991b7efSDaniel Pereira4. Os testes devem ser executados de forma confiável; se múltiplos
551*c991b7efSDaniel Pereira   branches forem ignorados ou se os testes falharem devido a problemas
552*c991b7efSDaniel Pereira   no ambiente de execução, o status ``Supported`` será retirado.
553*c991b7efSDaniel Pereira
554*c991b7efSDaniel Pereira5. Falhas nos testes devido a bugs no driver ou no próprio teste,
555*c991b7efSDaniel Pereira   ou falta de suporte para a funcionalidade que o teste visa, *não*
556*c991b7efSDaniel Pereira   são motivo para a perda do status ``Supported``.
557*c991b7efSDaniel Pereira
558*c991b7efSDaniel PereiraO CI da netdev manterá uma página oficial de dispositivos suportados, listando
559*c991b7efSDaniel Pereiraseus resultados de testes recentes.
560*c991b7efSDaniel Pereira
561*c991b7efSDaniel PereiraO mantenedor do driver pode providenciar para que outra pessoa execute o teste;
562*c991b7efSDaniel Pereiranão há exigência de que a pessoa listada como mantenedora (ou seu empregador)
563*c991b7efSDaniel Pereiraseja responsável pela execução dos testes. Colaborações entre
564*c991b7efSDaniel Pereirafornecedores, hospedagem de CI no GitHub (GH CI), outros repositórios sob o
565*c991b7efSDaniel Pereiralinux-netdev, etc., são muito bem-vindas.
566*c991b7efSDaniel Pereira
567*c991b7efSDaniel PereiraVeja https://github.com/linux-netdev/nipa/wiki para mais informações sobre o CI
568*c991b7efSDaniel Pereirada netdev. Sinta-se à vontade para entrar em contato com os mantenedores ou com
569*c991b7efSDaniel Pereiraa lista para quaisquer dúvidas.
570*c991b7efSDaniel Pereira
571*c991b7efSDaniel PereiraOrientações para revisores
572*c991b7efSDaniel Pereira--------------------------
573*c991b7efSDaniel Pereira
574*c991b7efSDaniel PereiraRevisar patches de outras pessoas na lista é altamente incentivado,
575*c991b7efSDaniel Pereiraindependentemente do nível de experiência. Para orientações gerais e dicas
576*c991b7efSDaniel Pereiraúteis, consulte `revisão de tópicos avançados de desenvolvimento`.
577*c991b7efSDaniel Pereira
578*c991b7efSDaniel PereiraÉ seguro assumir que os mantenedores da netdev conhecem a comunidade e o nível
579*c991b7efSDaniel Pereirade experiência dos revisores. Os revisores não devem se preocupar com o fato de
580*c991b7efSDaniel Pereiraseus comentários impedirem ou desviarem o fluxo de patches. Revisores menos
581*c991b7efSDaniel Pereiraexperientes são fortemente incentivados a fazer uma revisão mais aprofundada das
582*c991b7efSDaniel Pereirasubmissões e não focar exclusivamente em questões triviais ou subjetivas, como
583*c991b7efSDaniel Pereiraformatação de código, tags, etc.
584*c991b7efSDaniel Pereira
585*c991b7efSDaniel PereiraDepoimentos / feedback
586*c991b7efSDaniel Pereira----------------------
587*c991b7efSDaniel Pereira
588*c991b7efSDaniel PereiraAlgumas empresas utilizam o feedback de colegas em revisões de desempenho de
589*c991b7efSDaniel Pereirafuncionários. Sinta-se à vontade para solicitar feedback dos mantenedores da
590*c991b7efSDaniel Pereiranetdev, especialmente se você dedica uma quantidade significativa de tempo
591*c991b7efSDaniel Pereirarevisando código e se esforça além do esperado para melhorar a infraestrutura
592*c991b7efSDaniel Pereiracompartilhada.
593*c991b7efSDaniel Pereira
594*c991b7efSDaniel PereiraO feedback deve ser solicitado por você, o colaborador, e será sempre
595*c991b7efSDaniel Pereiracompartilhado com você (mesmo que você solicite que ele seja enviado ao seu
596*c991b7efSDaniel Pereiragerente).