O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Contribua com o código do TensorFlow

Esteja você adicionando uma função de perda, melhorando a cobertura de teste ou escrevendo um RFC para uma grande mudança de design, esta parte do guia do contribuidor o ajudará a começar. Obrigado pelo trabalho e interesse em melhorar o TensorFlow.

Antes de começar

Antes de contribuir com o código-fonte para um projeto do TensorFlow, analise o arquivo CONTRIBUTING.md no repositório GitHub do projeto. (Por exemplo, consulte o arquivo CONTRIBUTING.md para o repositório TensorFlow principal .) Todos os contribuidores de código devem assinar um Contrato de Licença de Contribuidor (CLA).

Para evitar a duplicação de trabalho, analise os RFCs atuais ou propostos e entre em contato com os desenvolvedores nos fóruns do TensorFlow ( developers@tensorflow.org ) antes de começar a trabalhar em um recurso não trivial. Somos um tanto seletivos ao decidir adicionar novas funcionalidades, e a melhor maneira de contribuir e ajudar o projeto é trabalhando em problemas conhecidos.

Problemas para novos contribuidores

Novos contribuidores devem procurar as seguintes tags ao procurar uma primeira contribuição para a base de código do TensorFlow. Recomendamos veementemente que os novos contribuidores abordem os projetos de “boa primeira edição” e de “contribuições bem-vindas”; isso ajuda o colaborador a se familiarizar com o fluxo de trabalho de contribuição e para que os desenvolvedores principais se familiarizem com o colaborador.

Se você estiver interessado em recrutar uma equipe para ajudar a resolver um problema em grande escala ou um novo recurso, envie um e-mail para o grupo developers @ e analise nossa lista atual de RFCs.

Revisão de código

Novos recursos, correções de bugs e quaisquer outras alterações na base do código estão sujeitos à revisão do código.

A revisão do código contribuído para o projeto como solicitações pull é um componente crucial do desenvolvimento do TensorFlow. Encorajamos qualquer pessoa a começar a revisar o código enviado por outros desenvolvedores, especialmente se o recurso for algo que você provavelmente usará.

Aqui estão algumas perguntas para se ter em mente durante o processo de revisão do código:

  • Queremos isso no TensorFlow? É provável que seja usado? Você, como usuário do TensorFlow, gosta da mudança e pretende usá-la? Essa mudança está no escopo do TensorFlow? O custo de manutenção de um novo recurso compensará seus benefícios?
  • O código é consistente com a API TensorFlow? As funções, classes e parâmetros públicos são bem nomeados e projetados intuitivamente?
  • Inclui documentação? Todas as funções públicas, classes, parâmetros, tipos de retorno e atributos armazenados são nomeados de acordo com as convenções do TensorFlow e claramente documentados? A nova funcionalidade é descrita na documentação do TensorFlow e ilustrada com exemplos, sempre que possível? A documentação é processada corretamente?

  • O código é legível por humanos? Está com pouca redundância? Os nomes das variáveis ​​devem ser melhorados para maior clareza ou consistência? Comentários devem ser adicionados? Algum comentário deve ser removido como inútil ou estranho?

  • O código é eficiente? Poderia ser reescrito facilmente para funcionar com mais eficiência?

  • O código é compatível com versões anteriores do TensorFlow?

  • O novo código adicionará novas dependências em outras bibliotecas?

Teste e melhore a cobertura de teste

O teste de unidade de alta qualidade é a pedra angular do processo de desenvolvimento do TensorFlow. Para isso, usamos imagens Docker. As funções de teste são nomeadas apropriadamente e são responsáveis ​​por verificar a validade dos algoritmos, bem como as diferentes opções do código.

Todos os novos recursos e correções de bugs devem incluir cobertura de teste adequada. Também aceitamos contribuições de novos casos de teste ou melhorias nos testes existentes. Se você descobrir que nossos testes existentes não foram concluídos - mesmo que isso não esteja causando um bug no momento - registre um problema e, se possível, uma solicitação de pull.

Para obter os detalhes específicos dos procedimentos de teste em cada projeto do TensorFlow, consulte os arquivos README.md e CONTRIBUTING.md no repositório do projeto no GitHub.

De particular preocupação em testes adequados :

  • Todas as funções e classes públicas são testadas?
  • Um conjunto razoável de parâmetros , seus valores, tipos de valor e combinações foram testados?
  • Os testes validam se o código está correto e se ele está fazendo o que a documentação diz que o código se destina a fazer?
  • Se a mudança for uma correção de bug, um teste de não regressão foi incluído?
  • Os testes passam na construção de integração contínua ?
  • Os testes cobrem todas as linhas de código? Se não, as exceções são razoáveis ​​e explícitas?

Se você encontrar algum problema, considere ajudar o colaborador a entender esses problemas e resolvê-los.

Melhorar mensagens de erro ou logs

Agradecemos as contribuições que melhoram as mensagens de erro e o registro.

Fluxo de trabalho de contribuição

Contribuições de código - correção de bugs, novo desenvolvimento, melhoria de teste - todas seguem um fluxo de trabalho centrado no GitHub. Para participar do desenvolvimento do TensorFlow, configure uma conta do GitHub. Então:

  1. Bifurque o repo no qual você planeja trabalhar. Vá para a página de repositório do projeto e use o botão Fork . Isso criará uma cópia do repo, com seu nome de usuário. (Para obter mais detalhes sobre como bifurcar um repositório, consulte este guia .)

  2. Clone o repositório para seu sistema local.

    $ git clone git@github.com:your-user-name/project-name.git

  3. Crie uma nova filial para armazenar seu trabalho.

    $ git checkout -b new-branch-name

  4. Trabalhe em seu novo código. Escreva e execute testes.

  5. Comprometa suas mudanças.

    $ git add -A

    $ git commit -m "commit message here"

  6. Envie suas alterações para seu repositório GitHub.

    $ git push origin branch-name

  7. Abra uma solicitação pull (PR). Acesse o repositório do projeto original no GitHub. Haverá uma mensagem sobre seu branch recentemente enviado, perguntando se você gostaria de abrir uma solicitação pull. Siga as instruções, compare os repositórios e envie o PR. Isso enviará um e-mail para os committers. Você pode querer considerar o envio de um e-mail para a lista de mala direta para obter mais visibilidade. (Para obter mais detalhes, consulte o guia do GitHub sobre PRs .

  8. Os mantenedores e outros colaboradores revisarão seu PR . Participe da conversa e tente fazer as alterações solicitadas . Assim que o PR for aprovado, o código será mesclado.

Antes de trabalhar em sua próxima contribuição , certifique-se de que seu repositório local esteja atualizado.

  1. Configure o controle remoto upstream. (Você só precisa fazer isso uma vez por projeto, não todas as vezes).

    $ git remote add upstream git@github.com:tensorflow/project-repo-name

  2. Mude para o branch master local.

    $ git checkout master

  3. Retire as alterações do upstream.

    $ git pull upstream master

  4. Envie as alterações para sua conta GitHub. (Opcional, mas uma boa prática.)

    $ git push origin master

  5. Crie uma nova ramificação se estiver iniciando um novo trabalho.

    $ git checkout -b branch-name

Recursos adicionais do git e do GitHub:

Lista de verificação de contribuidor