Releases
A mecânica (versão no Cargo.toml, tag, workflow, conferência dos arquivos) está em
Desenvolvimento; esta página é sobre fazer direito.
Publicando uma versão
- Notas para quem usa. Escreva
docs/releases/vX.Y.Z.md: o que muda para as pessoas que usam o papo, em pt-BR, com um bloco<details>em inglês, mais uma seção “Bom saber” com os limites que continuam valendo. Nunca uma lista de commits, nunca jargão interno. Diga o que foi verificado com sessões reais do Claude Code e o que não foi. Modelo: v0.1.0. - OK do mantenedor. Publicar precisa de “sim” (Trabalhando com o mantenedor).
- Versão no código e no site. Suba
versionnoCargo.toml(e oCargo.lock), a constanteVERSAOemsite/app.jse os links de download do README, do botão do hero e da aba de sistemas emsite/index.html: os nomes dos arquivos levam a versão (papo-vX.Y.Z-<alvo>). - Tag. Commit e push de
maincom oquality gateverde, depoisgit tag -a vX.Y.Z -m "..." && git push origin vX.Y.Z. O workflowreleaserecusa a tag sedocs/releases/vX.Y.Z.mdnão existir, ainda disser “rascunho” ou tiver campos por preencher; depois compila os 5 alvos e publica com os.sha256e as notas como corpo da release. O workflowdockerpublica a imagem multi-arquitetura emghcr.io/kelvin-jesus/papo. - Confira o que foi publicado. Baixe os arquivos da página de Releases, rode
sha256sum -cepapo --version; puxe a imagem (docker run --rm ghcr.io/kelvin-jesus/papo:X.Y.Z --version). Anote em Status.
Regras
- Tag publicada é final. Não apague nem mova tags. Se o release falhou num commit com tag, corrija e publique a próxima versão de correção.
- Teste o build antes da tag.
gh workflow run release.yml --ref maincompila tudo sem publicar. --locked. O CI usaCargo.lockcomo está; versão nova noCargo.tomlexigecargo buildlocal antes do commit para atualizar o lock.- Runners do CI são mais lentos. Um teste que depende de tempo e passa local pode falhar lá. Deixe-o determinístico (conte eventos em vez de correr contra o relógio) em vez de aumentar o timeout.
- Binários sem assinatura. Enquanto não houver assinatura, as notas dizem como liberar no macOS
(
xattr) e no Windows (SmartScreen).