{"componentChunkName":"component---src-templates-docs-js","path":"/docs/how-to-contribute.html","result":{"data":{"markdownRemark":{"html":"<p>React é um dos primeiros projetos de código aberto do Facebook que está sendo desenvolvido muito ativamente, além de ser usado para entregar código para todos em <a href=\"https://www.facebook.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebook.com</a>. Nós ainda estamos trabalhando para tornar esse projeto mais transparente e fácil possível, mas ainda não estamos lá. Esperamos que essa documentação torne esse processo de contribuição mais clara e responda algumas perguntas que você possa ter.</p>\n<h3 id=\"code-of-conduct\"><a href=\"#code-of-conduct\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://github.com/facebook/react/blob/master/CODE_OF_CONDUCT.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Código de Conduta</a> </h3>\n<p>O Facebook adotou o <a href=\"https://www.contributor-covenant.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Convênio do Contribuinte</a> como seu Código de Conduta, e esperamos que os participantes do projeto o adotem. Por favor, <a href=\"https://github.com/facebook/react/blob/master/CODE_OF_CONDUCT.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">leia o texto completo</a> para que você possa entender quais ações serão ou não toleradas.</p>\n<h3 id=\"open-development\"><a href=\"#open-development\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Desenvolvimento Aberto </h3>\n<p>Todo trabalho no React acontece diretamente no <a href=\"https://github.com/facebook/react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GitHub</a>. Tanto membros do <strong><em>Core Team</em></strong> quanto contribuidores externos devem enviar <strong><em>pull requests</em></strong> que vão passar pelo mesmo processo de revisão.</p>\n<h3 id=\"semantic-versioning\"><a href=\"#semantic-versioning\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Versionamento Semântico </h3>\n<p>O React segue o <a href=\"http://semver.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">versionamento semântico</a>. Lançamos versões de <strong><em>patch</em></strong> para correções críticas, versões secundárias (minor version) para novos recursos e versões principais (major version) para qualquer alteração de quebra. Quando fazemos alterações significativas, também introduzimos alguns avisos de descontinuidade em uma versão secundária para que nossos usuários tenham conhecimento sobre as próximas alterações e migrem seu código com antecedência. Saiba mais sobre nosso compromisso com a estabilidade e a migração incremental em <a href=\"/docs/faq-versioning.html\">nossa política de versão</a>.</p>\n<p>Toda mudança significativa é documentada na <a href=\"https://github.com/facebook/react/blob/master/CHANGELOG.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><strong><em>changelog</em></strong></a>.</p>\n<h3 id=\"branch-organization\"><a href=\"#branch-organization\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Organização de Branches </h3>\n<p>Envie todas as alterações para a <a href=\"https://github.com/facebook/react/tree/master\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><code class=\"gatsby-code-text\">branch master</code></a>. Não usamos ramificações separadas para desenvolvimento ou para os próximos lançamentos. Fazemos o possível para manter a <code class=\"gatsby-code-text\">master</code> em boas condições, com testes passando todas as vezes.</p>\n<p>O código que chega na <code class=\"gatsby-code-text\">master</code> deve ser compatível com a versão estável mais recente. Pode conter recursos adicionais, mas nenhuma alteração de última hora. Deveríamos ser capazes de lançar uma nova versão secundária apartir da <code class=\"gatsby-code-text\">master</code> a qualquer momento.</p>\n<h3 id=\"feature-flags\"><a href=\"#feature-flags\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Feature Flags </h3>\n<p>Para manter o ramo da <code class=\"gatsby-code-text\">master</code> em um estado liberável, as alterações de interrupção e os recursos experimentais devem ser colocados atrás de uma feature flag.</p>\n<p>Feature flags são definidas em <a href=\"https://github.com/facebook/react/blob/master/packages/shared/ReactFeatureFlags.js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><code class=\"gatsby-code-text\">packages/shared/ReactFeatureFlags.js</code></a>. Algums builds do React podem ativar conjuntos diferentes de features flags; por exemplo, o React Native build pode ser configurado de maneira diferente que o React DOM. Essas flags são encontradas em <a href=\"https://github.com/facebook/react/tree/master/packages/shared/forks\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><code class=\"gatsby-code-text\">packages/shared/forks</code></a>. Feature flags são digitados estaticamente pelo Flow, para que você possa executar o <code class=\"gatsby-code-text\">yarn flow</code> para confirmar que atualizou todos os arquivos necessários.</p>\n<p>O sistema de build do React removerá as branches de recursos desativados antes da publicação. Um trabalho de integração contínua é executado em todas as confirmações para verificar alterações no tamanho do pacote. Você pode usar a alteração de tamanho como um sinal de que o recurso foi bloqueado corretamente.</p>\n<h3 id=\"bugs\"><a href=\"#bugs\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Bugs </h3>\n<h4 id=\"where-to-find-known-issues\"><a href=\"#where-to-find-known-issues\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Onde Encontrar Problemas Conhecidos </h4>\n<p>Nós estamos utilizando as <a href=\"https://github.com/facebook/react/issues\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GitHub Issues</a> para nossas páginas públicas. Nós vamos ficar de olho e tentar manter claro quando estamos trabalhando internamente na correção de algum bug. Antes de preencher uma nova tarefa, verifique se o problema já existe.</p>\n<h4 id=\"reporting-new-issues\"><a href=\"#reporting-new-issues\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Relatando novos problemas </h4>\n<p>A melhor maneira de corrigir o problema é fornecer um caso de teste reduzido. Este <a href=\"https://jsfiddle.net/Luktwrdm/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">template no JSFiddle</a> é um excelente ponto de partida.</p>\n<h4 id=\"security-bugs\"><a href=\"#security-bugs\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Bugs de Segurança </h4>\n<p>O Facebook tem um <a href=\"https://www.facebook.com/whitehat/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">programa de recompensas</a> para a divulgação segura de bugs de segurança. Com isso em mente, não reporte esses problemas de forma pública. Percorra o processo descrito nessa página.</p>\n<h3 id=\"how-to-get-in-touch\"><a href=\"#how-to-get-in-touch\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Como entrar em contato </h3>\n<ul>\n<li>IRC: <a href=\"https://webchat.freenode.net/?channels=reactjs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#reactjs on freenode</a></li>\n<li><a href=\"/community/support.html#popular-discussion-forums\">Fóruns de discussão</a></li>\n</ul>\n<p>Há também uma comunidade ativa de usuários do React na plataforma no <a href=\"http://www.reactiflux.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Discord</a> caso você precise de ajuda.</p>\n<h3 id=\"proposing-a-change\"><a href=\"#proposing-a-change\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Propondo uma alteração </h3>\n<p>Se você pretende alterar a API pública ou fazer alterações não triviais na implementação, recomendamos <a href=\"https://github.com/facebook/react/issues/new\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">abrir uma <strong><em>issue</em></strong></a>. Isso nos permite chegar a um acordo sobre sua proposta antes de colocar um esforço significativo nela.</p>\n<p>Se você está apenas corrigindo um bug, não tem problema em enviar uma <strong><em>pull request</em></strong> diretamente, mas ainda sim recomendamos abrir uma <strong><em>issue</em></strong> com detalhes sobre o que você está corrigindo. Isso é útil caso não aceitemos essa correção específica, mas queremos acompanhar o problema.</p>\n<h3 id=\"your-first-pull-request\"><a href=\"#your-first-pull-request\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Seu primeiro <strong><em>Pull Request</em></strong> </h3>\n<p>Trabalhando em seu primeiro <strong><em>Pull Request</em></strong>. Você pode aprender como desta série de vídeos gratuitos:</p>\n<p><strong><a href=\"https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Como contribuir para um projeto de código aberto no GitHub</a></strong></p>\n<p>Para ajudar você a se familiarizar com o nosso processo de contribuição, temos uma lista de <a href=\"https://github.com/facebook/react/issues?q=is:open+is:issue+label:%22good+first+issue%22\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">boas primeiras <strong><em>issues</em></strong></a> que contém erros que têm um escopo relativamente limitado. Este é um ótimo lugar para começar.</p>\n<p>Se você decidir corrigir um bug, por favor, verifique o tópico do comentário caso alguém já esteja trabalhando em uma correção. Se ninguém estiver trabalhando no momento, por favor deixe um comentário dizendo que você pretende trabalhar nele para que outras pessoas não dupliquem sem querer seu esforço.</p>\n<p>Se alguém assumir uma <strong><em>issue</em></strong>, mas não fizer o acompanhamento por mais de duas semanas, não há problema em você assumir, mas mesmo assim você ainda deve deixar um comentário.</p>\n<h3 id=\"sending-a-pull-request\"><a href=\"#sending-a-pull-request\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Enviando um <strong><em>Pull Request</em></strong> </h3>\n<p>O Core Team está monitorando os <strong><em>pull requests</em></strong>. Analisaremos seu envio e fazermos o <strong><em>merge</em></strong>, solicitaremos alterações ou podemos fechá-la com uma explicação plausível. Para alterações de API, podemos precisar corrigir nossos usos internos no Facebook.com, o que pode causar algum atraso. Faremos o nosso melhor para fornecer atualizações e feedback durante todo o processo.</p>\n<p><strong>Antes de enviar o seu pull request,</strong> certifique-se de ter feito os seguintes passos:</p>\n<ol>\n<li>Faça fork do <a href=\"https://github.com/facebook/react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">repositório oficial</a> and criou sua branch da <code class=\"gatsby-code-text\">master</code>.</li>\n<li>Execute <code class=\"gatsby-code-text\">yarn</code> no repositório raíz.</li>\n<li>Se você corrigiu um bug ou um código adicionado que deve ser testado, adicione testes!</li>\n<li>Certifique-se de que a suíte de teste passe (<code class=\"gatsby-code-text\">yarn test</code>). Dica: <code class=\"gatsby-code-text\">yarn test --watch TestName</code> é útil no desenvolvimento.</li>\n<li>Execute <code class=\"gatsby-code-text\">yarn test-prod</code> para testar no ambiente de produção. Suporta as mesmas opções que <code class=\"gatsby-code-text\">yarn test</code>.</li>\n<li>Se você precisar de um depurador, execute <code class=\"gatsby-code-text\">yarn debug-test --watch TestName</code>, abra <code class=\"gatsby-code-text\">chrome://inspect</code>e aperte em “Inspecionar”.</li>\n<li>Formate seu código com <a href=\"https://github.com/prettier/prettier\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">prettier</a> (<code class=\"gatsby-code-text\">yarn prettier</code>).</li>\n<li>Certifique-se de que seus códigos foram verificados com linters (<code class=\"gatsby-code-text\">yarn lint</code>). Dica: <code class=\"gatsby-code-text\">yarn linc</code> verifica somente os arquivos alterados.</li>\n<li>Rode o <a href=\"https://flowtype.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Flow</a> para typechecks (<code class=\"gatsby-code-text\">yarn flow</code>).</li>\n<li>Se ainda não fez, preencha o CLA.</li>\n</ol>\n<h3 id=\"contributor-license-agreement-cla\"><a href=\"#contributor-license-agreement-cla\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Licença de Acordo de Contribuidor (<strong><em>Contributor License Agreement</em></strong> - CLA) </h3>\n<p>Para aceitar seu <strong><em>pull request</em></strong>, precisamos que você envie um CLA. Você só precisa fazer isso uma vez, então se você fez isso para outro projeto de código aberto do Facebook, você está pronto para continuar. Se você estiver enviando um <strong><em>pull request</em></strong> pela primeira vez, nos informe que você concluiu o CLA e então podemos fazer uma verificação cruzada com seu GitHub</p>\n<p><strong><a href=\"https://code.facebook.com/cla\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Preencha sua CLA aqui.</a></strong></p>\n<h3 id=\"contribution-prerequisites\"><a href=\"#contribution-prerequisites\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Pré-requisitos de Contribuição </h3>\n<ul>\n<li>Possuir o <a href=\"https://nodejs.org\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Node</a> instalado na versão v8.0.0+ e <a href=\"https://yarnpkg.com/en/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Yarn</a> na versão v1.2.0+.</li>\n<li>Possuir o <a href=\"https://www.oracle.com/technetwork/java/javase/downloads/index.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">JDK</a> instalado.</li>\n<li>Você deve ter o <code class=\"gatsby-code-text\">gcc</code> instalado ou está confortável em instalar um compilador, se necessário. Algumas de nossas dependências podem exigir uma etapa de compilação. No OS X, as Ferramentas de Linha de Comando do Xcode cobrirão isso. No Ubuntu, <code class=\"gatsby-code-text\">apt-get install build-essential</code> instalará os pacotes requeridos. Comandos semelhantes devem funcionar em outras distribuições Linux. O Windows irá requerer alguns passos adicionais, veja as instruções de instalação do <a href=\"https://github.com/nodejs/node-gyp#installation\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">node-gyp</a> para detalhes.</li>\n<li>Você deve ser familiarizado com o Git.</li>\n</ul>\n<h3 id=\"development-workflow\"><a href=\"#development-workflow\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Fluxo de Trabalho de Desenvolvimento </h3>\n<p>Depois de clonar o React, execute <code class=\"gatsby-code-text\">yarn</code> para buscar suas dependências. Então, você pode executar vários comandos:</p>\n<ul>\n<li><code class=\"gatsby-code-text\">yarn lint</code> verifica o estilo de código.</li>\n<li><code class=\"gatsby-code-text\">yarn linc</code> funciona como o <code class=\"gatsby-code-text\">yarn lint</code>, mas é mais rápido porque verifica apenas os arquivos que diferem na sua <strong><em>branch</em></strong>.</li>\n<li><code class=\"gatsby-code-text\">yarn test</code> executa o conjunto de testes completo.</li>\n<li><code class=\"gatsby-code-text\">yarn test --watch</code> executa um observador de testes interativo.</li>\n<li><code class=\"gatsby-code-text\">yarn test &lt;pattern&gt;</code> executa testes com nomes de arquivos correspondentes.</li>\n<li><code class=\"gatsby-code-text\">yarn test-prod</code> executa testes no ambiente de produção. Suporta todas as mesmas opções que o <code class=\"gatsby-code-text\">yarn test</code>.</li>\n<li><code class=\"gatsby-code-text\">yarn debug-test</code> é como <code class=\"gatsby-code-text\">yarn test</code> mas com um depurador. Abra <code class=\"gatsby-code-text\">chrome://inspect</code> e clique em “Inspecionar”.</li>\n<li><code class=\"gatsby-code-text\">yarn flow</code> executa o typecheck do <a href=\"https://flowtype.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Flow</a> .</li>\n<li><code class=\"gatsby-code-text\">yarn build</code> cria uma pasta <code class=\"gatsby-code-text\">build</code> com todos os pacotes.</li>\n<li><code class=\"gatsby-code-text\">yarn build react/index,react-dom/index --type=UMD</code> cria compilações UMD somente com o React e ReactDOM.</li>\n</ul>\n<p>Recomendamos executar o <code class=\"gatsby-code-text\">yarn test</code> (ou suas variações acima) para garantir que você não introduza nenhuma regressão enquanto trabalha na sua mudança. No entanto, pode ser útil testar sua versão do React em um projeto real.</p>\n<p>Primeiro, execute <code class=\"gatsby-code-text\">yarn build</code>. Isto irá produzir pacotes pré-construídos na pasta <code class=\"gatsby-code-text\">build</code>, bem como irá preparar pacotes npm dentro da pasta <code class=\"gatsby-code-text\">build/packages</code>.</p>\n<p>A maneira mais fácil de testar suas alterações é rodar <code class=\"gatsby-code-text\">yarn build react/index,react-dom/index --type=UMD</code> e depois abrir <code class=\"gatsby-code-text\">fixtures/packaging/babel-standalone/dev.html</code>. Este arquivo já usa o <code class=\"gatsby-code-text\">react.development.js</code> a partir da pasta <code class=\"gatsby-code-text\">build</code> para que ele possa pegar suas alterações.</p>\n<p>Se você quiser experimentar as alterações no seu projeto React existente, poderá copiar <code class=\"gatsby-code-text\">build/dist/react.development.js</code>,<code class=\"gatsby-code-text\">build/dist/react-dom.development.js</code> ou qualquer outro build em seu aplicativo e usá-los em vez da versão estável.</p>\n<p>Se o seu projeto usa React from npm, você pode excluir <code class=\"gatsby-code-text\">react</code> e <code class=\"gatsby-code-text\">react-dom</code> em suas dependências e usar o <code class=\"gatsby-code-text\">yarn link</code> para apontá-los para a pasta local <code class=\"gatsby-code-text\">build</code>. Note que <strong>em vez de <code class=\"gatsby-code-text\">--type = UMD</code>, você desejará passar <code class=\"gatsby-code-text\">--type = NODE</code> ao criar</strong>. Você também precisará criar o pacote <code class=\"gatsby-code-text\">scheduler</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">cd ~/path_to_your_react_clone/\nyarn build react/index,react-dom/index,scheduler --type=NODE\n\ncd build/node_modules/react\nyarn link\ncd build/node_modules/react-dom\nyarn link\n\ncd ~/path/to/your/project\nyarn link react react-dom</code></pre></div>\n<p>Toda vez que você executar <code class=\"gatsby-code-text\">yarn build</code> na pasta React, as versões atualizadas aparecerão no <code class=\"gatsby-code-text\">node_modules</code> do seu projeto. Você pode então reconstruir seu projeto para testar suas alterações.</p>\n<p>Se algum pacote ainda estiver faltando (por exemplo, talvez você use <code class=\"gatsby-code-text\">react-dom/server</code> em seu projeto), você sempre poderá fazer uma compilação completa com <code class=\"gatsby-code-text\">yarn build</code>. Observe que executar o <code class=\"gatsby-code-text\">yarn build</code> sem opções leva muito tempo.</p>\n<p>Ainda exigimos que seu <strong><em>pull request</em></strong> contenha testes de unidade para qualquer nova funcionalidade. Dessa forma, podemos garantir que não quebremos seu código no futuro.</p>\n<h3 id=\"style-guide\"><a href=\"#style-guide\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Guia de Estilo </h3>\n<p>Usamos um formatador de código automático chamado <a href=\"https://prettier.io/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Prettier</a>. Execute o <code class=\"gatsby-code-text\">yarn prettier</code> depois de fazer qualquer alteração no seu código.</p>\n<p>Então, nosso linter irá capturar a maioria dos problemas que possam existir em seu código. Você pode verificar o status do seu estilo de código simplesmente executando <code class=\"gatsby-code-text\">yarn linc</code>.</p>\n<p>No entanto, ainda existem alguns estilos que o linter não consegue captar. Se você não tem certeza sobre alguma coisa, veja o <a href=\"https://github.com/airbnb/javascript\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Guia de Estilos do Airbnb</a> para te direcionar no caminho certo.</p>\n<h3 id=\"request-for-comments-rfc\"><a href=\"#request-for-comments-rfc\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Pedido de Comentários (Request for Comments - RFC) </h3>\n<p>Muitas alterações, incluindo correções de bugs e melhorias na documentação, podem ser implementadas e revisadas por meio do fluxo de trabalho normal de <strong><em>pull requests</em></strong> do GitHub.</p>\n<p>Algumas mudanças, entretanto, são “substanciais” e pedimos que estas sejam submetidas a um pequeno processo de design e produzam um consenso entre o Core Team do React.</p>\n<p>O processo “RFC” (pedido de comentários) destina-se a fornecer um caminho consistente e controlado para que novos recursos entrem no projeto. Você pode contribuir visitando o repositório <a href=\"https://github.com/reactjs/rfcs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">rfcs</a>.</p>\n<h3 id=\"license\"><a href=\"#license\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Licença </h3>\n<p>Ao contribuir com o React, você concorda que suas contribuições serão licenciadas sob sua licença do MIT.</p>\n<h3 id=\"what-next\"><a href=\"#what-next\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>O que vem a seguir? </h3>\n<p>Leia a <a href=\"/docs/codebase-overview.html\">próxima seção</a> para saber como a base de código é organizada.</p>","frontmatter":{"title":"Como Contribuir","next":"codebase-overview.html","prev":null},"fields":{"path":"content/docs/how-to-contribute.md","slug":"docs/how-to-contribute.html"}}},"pageContext":{"slug":"docs/how-to-contribute.html"}},"staticQueryHashes":[]}