Programação na Prática01/09/2026Redação de Tecnologia e Desenvolvimento7 min de leituraAtualizado em 16/09/2026

Python 3.15 RC2: como testar seu pacote agora e validar wheels antes do lançamento final

Um checklist prático para testar CI, dependências, extensões nativas, wheels e deprecações no Python 3.15 RC2 antes da versão final.

Notebook com ambiente de desenvolvimento abstrato ao lado de um pacote em cubo, engrenagem, checklist e escudo conectados por um pipeline luminoso azul e dourado.

O Python 3.15.0rc2 foi lançado em 1º de setembro de 2026 como o último release candidate planejado da série. Segundo o Python.org, ele reúne cerca de 144 correções de bugs, melhorias de build e mudanças de documentação feitas por 76 contribuidores desde o RC1. O 3.15.0 final está programado para 1º de outubro. Mais importante para quem mantém bibliotecas: a equipe informa que não haverá novas mudanças de ABI a partir deste ponto e que wheels binárias construídas contra os release candidates do Python 3.15 funcionarão com versões futuras do 3.15.

Isso cria uma janela útil para validar compatibilidade antes do lançamento final. O RC2 continua sendo uma prévia e não é recomendado para produção; o objetivo agora é testar o seu pacote, suas dependências e os artefatos que você pretende distribuir, não migrar usuários finais antecipadamente.

Por que o RC2 já é um teste relevante do Python 3.15 final

Na fase de release candidate, o projeto Python restringe mudanças a correções claras e revisadas. A promessa de estabilidade da ABI reduz um risco específico: uma wheel binária produzida para um RC do 3.15 não deve se tornar inválida apenas porque o 3.15.0 final foi publicado. Para extensões compiladas, isso torna o RC2 especialmente valioso como alvo de build e instalação.

Essa garantia não significa que todos os problemas possíveis desapareceram. Ainda pode haver correções de código antes do final, e seu pacote pode depender de bibliotecas que ainda não estejam prontas. Por isso, o melhor uso do RC2 é montar uma validação reproduzível e repetir a matriz no 3.15.0 final quando ele sair.

1. Adicione o Python 3.15 à matriz de CI sem remover as versões já suportadas

Inclua um job com Python 3.15 RC2 ao lado das versões que o projeto já suporta. A comparação é importante: ela mostra rapidamente se uma falha aparece apenas no 3.15 ou se já existia em outras versões.

  • Rode a suíte normal de testes unitários e de integração.
  • Teste nos sistemas operacionais que fazem parte do suporte real do pacote, sobretudo se você publica wheels binárias.
  • Use primeiro os mesmos limites de dependências do release atual; em um job separado, vale testar também as versões mais recentes das dependências.
  • Confirme no log do job que o interpretador executado é o 3.15 RC esperado, em vez de presumir que a configuração do provedor de CI já aponta para ele.

Critério de triagem: uma falha exclusiva do 3.15 deve ser classificada antes de ser ignorada: defeito no seu pacote, dependência ainda incompatível ou possível regressão do próprio Python.

2. Separe incompatibilidade do seu pacote de indisponibilidade das dependências

Um teste pode falhar antes mesmo de carregar seu código. Em versões novas do Python, uma dependência com extensão nativa pode ainda não oferecer wheel para a nova tag e o instalador pode tentar compilar a partir do código-fonte. Se essa compilação falhar, o bloqueio está no caminho de instalação, mas não necessariamente na lógica do seu pacote.

Sinal observado Pista de diagnóstico Ação prática
Testes falham só no 3.15 após instalação normal Mudança de comportamento, API removida ou hipótese incorreta no seu código Reproduzir localmente e reduzir para um caso mínimo
Uma dependência obrigatória não instala Wheel do 3.15 pode ainda não existir ou o build de fonte pode ter quebrado Registrar a versão, verificar o projeto upstream e decidir se o suporte 3.15 fica bloqueado
Uma extensão nativa compila, mas não importa Problema de ABI, símbolo, tag ou carregamento dinâmico Testar a wheel instalada em ambiente limpo e revisar as mudanças de C API
Falha aparece apenas em um extra opcional Compatibilidade pode estar limitada àquele conjunto de dependências Testar extras separadamente e documentar o escopo do suporte

3. Se houver código nativo, trate o build como parte da compatibilidade

Pacotes com extensões em C, C++, Rust, Cython ou outras camadas compiladas precisam de mais do que uma suíte verde no checkout. O documento oficial de novidades do Python 3.15 lista mudanças e remoções na C API e também introduz uma ABI estável específica para builds free-threaded, chamada abi3t. Esse caminho exige adaptações e não é obrigatório para toda extensão.

  • Construa a extensão com o Python 3.15 RC2 em cada plataforma que você pretende suportar.
  • Teste o import do módulo compilado a partir da wheel instalada, não apenas a partir da árvore de fontes.
  • Se o projeto declara suporte a Python free-threaded, mantenha um job específico para esse modo; se não declara, não transforme uma falha nesse modo em bloqueio do suporte convencional.
  • Revise as seções de APIs removidas, APIs C alteradas e orientações de portabilidade no documento “What’s New in Python 3.15”.

4. Construa a wheel do RC e instale o artefato em um ambiente vazio

O guia oficial de packaging recomenda o pacote build para gerar source distributions e wheels, e considera obsoletas as chamadas diretas a setup.py para essa finalidade. O teste decisivo não é apenas “meus testes passam no repositório”, mas “o artefato que vou distribuir instala e funciona”.

  1. Crie um ambiente limpo com Python 3.15 RC2.
  2. Instale as ferramentas de build declaradas pelo projeto.
  3. Gere os artefatos com python -m build.
  4. Crie um segundo ambiente limpo e instale a wheel gerada em dist/.
  5. Execute ao menos um smoke test de importação e a parte essencial da suíte sem depender do diretório do repositório.

Esse passo encontra problemas que um install editável pode esconder, como arquivos de pacote ausentes, metadados incompletos, dados não incluídos e extensões compiladas que só falham quando carregadas da wheel.

O Python.org incentiva mantenedores a publicar wheels para Python 3.15 já durante a fase de RC, justamente para permitir que outros projetos testem suas próprias cadeias de dependências. Se a política de release do seu projeto permitir, o RC2 já é um alvo tecnicamente válido para preparar essas wheels.

5. Transforme warnings e deprecações em itens de migração

Uma suíte que passa com dezenas de avisos novos ainda pode estar carregando dívida para a próxima versão. Rode pelo menos uma execução com warnings visíveis e separe o que nasce no seu código do que vem de dependências.

  • Warnings originados no seu pacote: trate como tarefa de compatibilidade e corrija antes de anunciar suporte quando indicarem uso de API em retirada.
  • Warnings de dependências obrigatórias: acompanhe a correção upstream e avalie se a versão disponível impede seu suporte ao 3.15.
  • Warnings de dependências opcionais: registre-os separadamente para não mascarar a compatibilidade do núcleo.
  • Execução estrita: se sua suíte comportar isso, um job com python -W error::DeprecationWarning -m pytest pode transformar deprecações em falhas; faça triagem para não bloquear o projeto por avisos que pertencem apenas a terceiros.

6. Defina o critério de bloqueio antes de publicar suporte

Situação Bloqueia declarar suporte ao 3.15? Leitura recomendada
Teste determinístico do seu pacote falha apenas no 3.15 Sim Corrigir ou documentar uma limitação intencional antes do release
A wheel não constrói ou não instala em uma plataforma que você promete suportar Sim O artefato de distribuição ainda não está pronto
Dependência obrigatória não funciona no 3.15 Sim, para o cenário afetado O usuário não consegue instalar ou executar a pilha suportada
Falha apenas em extra opcional Depende do escopo anunciado Separe suporte do núcleo e do extra
Falha em build free-threaded que o projeto não declara suportar Não, em geral Não confunda um modo não suportado com o interpretador convencional
Warning de terceiro sem impacto funcional imediato Não automaticamente Rastreie e reavalie; não o esconda

Checklist final para chegar ao 1º de outubro com menos surpresa

  • Python 3.15 RC2 presente na matriz de CI.
  • Testes de núcleo e integrações obrigatórias passando.
  • Dependências obrigatórias instalando de forma reproduzível.
  • Wheel construída e instalada em ambiente limpo.
  • Extensões nativas testadas nas plataformas suportadas.
  • Warnings e deprecações novos triados por origem.
  • Critérios de bloqueio registrados antes de anunciar suporte.

Se esses itens estiverem verdes, o RC2 oferece uma base forte para dizer que seu pacote está preparado para Python 3.15. A estabilidade da ABI torna as wheels do RC reaproveitáveis na série 3.15, mas ainda é prudente repetir a CI assim que o 3.15.0 final for publicado: a garantia de ABI não elimina correções finais de código nem mudanças no ecossistema de dependências.

Fontes oficiais

Tópicos deste artigoCIcompatibilidadepackagingPython 3.15testeswheelsPython 3.15 RC2compatibilidade Python 3.15wheels Python 3.15CI Python 3.15extensões C Pythondeprecações Python