AUR-510 — Versão oficial com tag imutável e instalação demonstrada
Medido antes (por leitura)
- Tags existentes:
v1.0.xev1.1.0, do produto histórico; nenhuma release deste produto.CHANGELOG.mdnão tinha seção por versão; os exemplos (.github/workflows/examples/code-review.yml,docs/site/workflow.yml) são idênticos e referenciam@main;docs/getting-started.mdnão mostrava a referência. internal/changelogjá sabe sugerir versão e entrada (AUR-498/499) e o AUR-509 exige entrada emUnreleasede aceita a consolidação por versão.
Decisão
scripts/release.sh(bash + git;ghsó nopublicar):preparar(só leitura): SHA ancestral damain; versão e notas da primeira## X.Y.Zdepois de## UnreleasednoCHANGELOG.mddaquele SHA; notas com### Entregue,### Limites,### Migração do v1, até 120 linhas; versão maior que a maior tagvX.Y.Z(ou tag já no mesmo SHA: idempotente); exemplos idênticos e fixados em@vX.Y.Z, sem outra referência;docs/getting-started.mdmostrando@vX.Y.Z.publicar: repete opreparar, exige identidade git eghjá configurados (para com exit 79, nunca define nada), exige evidência do QA do consumidor (AUR-512) do mesmo SHA aprovada pelo verificador no container, cria a tag anotada e a release; nunca força push nem move tag; release existente não é sobrescrita.fixar-exemplos: troca a referência dos três arquivos para@vX.Y.Z.docs/releases.md(no nav do MkDocs) com o roteiro;docs/getting-started.mdmostra a referência que o roteiro troca.- Nenhuma tag, release ou publicação foi feita nesta entrega.
Fora dos paths do card
mkdocs.yml (nav de docs/releases.md, build --strict). Os exemplos não
foram trocados para uma versão: isso é da PR de release, quando a versão
existir (fixar-exemplos).
Como cada cenário é provado (tests/acceptance/AUR-510.sh, bash + git em repositórios descartáveis)
- AC-001: versão e notas derivadas; recusa de SHA fora da
main, versão regressiva (1.0.5comv1.1.0existente),--versaodiferente da seção, notas sem subseção; tag no mesmo SHA é idempotente. - AC-002:
publicarsem identidade para com exit 79 sem criar tag; o script não define identidade nem força push/tag; a evidência do consumidor é conferida antes de publicar. - AC-003: exemplo e download do site idênticos neste repositório; exemplos
divergentes ou presos em
@mainsão recusados. - AC-004: notas sem
### Entregueou### Migração do v1são recusadas;docs/releases.mddocumenta a migração. - MUT-001: tag
v2.0.0movida para outro SHA →ja existe; exemplo referenciando@v2.0.1→nao fixa @v2.0.0.
Limites
- O binário não carrega a versão (
-ldflags -X main.version): oDockerfileestá fora dos paths;aurumcode --versioncontinuadevna imagem. - "Imutável" depende de ativar Immutable releases no repositório; o script só garante que nunca move nem sobrescreve.
- Revisão estática do coordenador (2026-10-07): as referências dos exemplos
são comparadas como texto exato (sem regex com pontos), toda referência ao
AurumCode no arquivo precisa ser
@vX.Y.Z(uma linha com a nova e uma antiga reprova),## [Unreleased]e## Unreleasedvalem como no changelog obrigatório, e o QA do consumidor só libera opublicarcom todo cenário não manual medido e aprovado. Provas novas no AUR-510.sh (colchetes,pontos,duas-versoes) e no AUR-512 (zero medido reprova).