Lançamento do 1.0.0¶
O 1.0.0 é o momento em que esta biblioteca promete a sua API pública. Até lá valem as regras do 0.x: uma mudança incompatível é um MINOR, uma funcionalidade ou correção é um PATCH. A partir do 1.0.0 vale o semver completo. Duas coisas precisam ser verdade nesse momento e são fáceis de errar à mão: o backlog está concluído e a documentação descreve o código que de fato é publicado.
O caminho¶
- Abra a issue Cut 1.0.0 a partir do modelo de issue. Ela nasce
state:blocked, bloqueada por todas as outras issues abertas. - Conclua o backlog. Uma issue que não entrará no 1.0.0 recebe o rótulo
post-1.0, aplicado pelo mantenedor (crie-o uma vez comgh label create post-1.0), de modo que fique adiada no registro em vez de descartada. - Percorra o checklist da issue: auditoria da documentação, exemplos executáveis, a tabela de
versões suportadas 1.x em
SECURITY.md, e então o ensaio e a publicação. - Depois do lançamento, passe a política de versão documentada para o semver completo.
O portão de release¶
O workflow de release executa bin/check_release_gate.py antes de publicar. Ele só se aplica
quando o MAJOR pedido é pelo menos 1 e a última versão final publicada (sem pré-releases nem releases retiradas) é 0.x. Nesse caso lista as
issues abertas e falha enquanto alguma não tiver o rótulo post-1.0, nomeando cada uma.
- Pull requests não contam, nem a própria issue Cut 1.0.0.
- As issues são lidas pela API REST do GitHub com o token do workflow, somente leitura.
- Se a API não puder ser lida, o portão falha fechado: bloqueia o release em vez de adivinhar.
- Qualquer outro incremento, como 0.4.0 para 0.5.0 ou 1.0.0 para 1.0.1, não é afetado.
- Uma primeira publicação conta como vinda de 0.0.0, então um projeto cujo primeiro release é o 1.0.0 também passa pelo portão.
Para passar, conclua cada issue listada ou rotule-a post-1.0 e execute o workflow de novo.