Guia do Desenvolvedor Python#

Este guia é um recurso abrangente para contribuir para o Python – para colaboradores novos e experientes. É mantido pela mesma comunidade que mantém o Python. Agradecemos suas contribuições ao Python!

Referência rápida#

Aqui estão as etapas básicas necessárias para configurar e contribuir com um patch. Isso serve como uma lista de verificação, uma vez que você conheça o básico. Para obter instruções completas, consulte o guia de configuração.

  1. Instale e configure Git e outras dependências (consulte a página Configuração do Git para obter informações detalhadas).

  2. Faça um fork do repositório CPython para sua conta GitHub e obtenha o código-fonte usando:

    git clone https://github.com/<your_username>/cpython
    cd cpython
    
  3. Compile Python. No UNIX e macOS use:

    ./configure --with-pydebug && make -j
    

    e no Windows use:

    PCbuild\build.bat -e -d
    

    Veja também instruções mais detalhadas, como instalar e compilar dependências, e as páginas específicas da plataforma para UNIX, macOS e Windows.

  4. Execute os testes:

    ./python -m test -j3
    

    Na maioria dos sistemas macOS, substitua ./python por ./python.exe. No Windows, use python.bat.

  5. Crie um novo branch para onde irá o seu trabalho para o problema, por exemplo:

    git checkout -b fix-issue-12345 main
    

    Se um relatório de problema ainda não existir, crie-o. Problemas triviais (por exemplo, correções de erros de digitação) não exigem que um relatório de problema seja criado.

  6. Depois de corrigir o problema, execute os testes, execute make patchcheck e, se tudo estiver ok, faça o commit.

  7. Faça o push do branch em seu fork no GitHub e crie uma pull request. Inclua o número do relatório de problema usando gh-NNNN na descrição do pull request. Por exemplo:

    gh-12345: Fix some bug in spam module
    
  8. Adicione uma entrada News no diretório Misc/NEWS.d como arquivo individual. A entrada de notícias pode ser criada usando blurb-it ou a ferramenta blurb e seu comando blurb add. Por favor, leia mais sobre blurb em documentação.

Nota

Os contribuidores iniciantes precisarão assinar o Contrato de Licenciamento do Colaborador (CLA) conforme descrito na seção Licenciamento deste guia.

Contribuindo#

Incentivamos todos a contribuir com o Python e é por isso que criamos este guia do desenvolvedor. Se você ainda tiver dúvidas após revisar o material deste guia, o grupo Core Python Mentorship está disponível para ajudar a guiar novos contribuidores durante o processo.

Vários indivíduos da comunidade Python contribuíram para uma série de excelentes guias em Open Source Guides.

Os desenvolvedores core e colaboradores acharão úteis os seguintes guias:

Guia para contribuir com o Python:

Recomendamos que os documentos deste guia sejam lidos conforme necessário. Você pode parar onde se sentir confortável e começar a contribuir imediatamente sem ler e entender esses documentos de uma só vez. Se você optar por pular a documentação, esteja ciente de que ela foi escrita assumindo que a documentação anterior foi lida, portanto, você pode achar necessário retroceder para preencher os conceitos e a terminologia ausentes.

Propondo mudanças no próprio Python#

Melhorar o código, a documentação e os testes do Python são tarefas contínuas que nunca serão “concluídas”, pois o Python opera como parte de um sistema de tecnologia em constante evolução. Uma tarefa contínua ainda mais desafiadora do que essas atividades de manutenção necessárias é encontrar maneiras de tornar o Python, na forma de biblioteca padrão e definição de linguagem, uma ferramenta ainda melhor no kit de ferramentas de um desenvolvedor.

Embora esses tipos de mudança sejam muito mais raros do que os descritos acima, eles acontecem e esse processo também é descrito como parte deste guia:

Outras implementações de interpretador#

Este guia é especificamente para contribuir com o interpretador de referência do Python, também conhecido como CPython (enquanto a maior parte da biblioteca padrão é escrita em Python, o núcleo do interpretador é escrito em C e se integra mais facilmente com os ecossistemas C e C++).

Existem outras implementações do Python, cada uma com um foco diferente. Como o CPython, eles sempre têm mais coisas que gostariam de fazer do que desenvolvedores para trabalhar nelas. Alguns exemplos importantes que podem ser interessantes são:

  • PyPy: Um interpretador Python focado em operação de alta velocidade (compilado por JIT) nas principais plataformas

  • Jython: Um interpretador Python focado em boa integração com o ambiente Java Virtual Machine (JVM)

  • IronPython: Um interpretador Python focado em boa integração com o Common Language Runtime (CLR) fornecido por .NET e Mono

  • Stackless: um interpretador Python focado em fornecer microthreads leves, permanecendo amplamente compatível com módulos de extensão específicos do CPython

  • MicroPython: Um minúsculo interpretador Python com um pequeno subconjunto da biblioteca padrão Python que é otimizado para rodar em microcontroladores e em ambientes restritos.

  • CircuitPython: Um fork do MicroPython projetado para simplificar a experimentação e o aprendizado da codificação em placas microcontroladoras de baixo custo.

Principais recursos#

Recursos adicionais#

Código de conduta#

Observe que todas as interações na infraestrutura suportada pela Python Software Foundation estão cobertas pelo Código de Conduta da PSF, que inclui toda a infraestrutura usada no desenvolvimento do próprio Python (por exemplo, listas de discussão, rastreadores de problemas, GitHub, etc.). Em geral, isso significa que todos devem ser abertos, atenciosos e respeitosos com os outros, independentemente de sua posição dentro do projeto.

Status dos branches do Python#

Movido para Status das versões do Python

Índice completo#