Skip to content

Desliga o latest=auto do metadata-action - #75

Merged
Hirley merged 1 commit into
mainfrom
claude-hirley/latest-flavor
Aug 29, 2026
Merged

Hirley merged 1 commit into
mainfrom
claude-hirley/latest-flavor

Conversation

@Hirley

@Hirley Hirley commented Aug 29, 2026

Copy link
Copy Markdown
Owner

O #73 consertou metade do problema, e eu declarei o assunto encerrado. O build da v2.0.1 mostrou que não estava.

O que o log da v2.0.1 mostra

tags: type=raw,value=latest,enable=false      ← a regra do #73, corretamente desligada
...
Processing tags input
type=raw,value=latest,enable=false,priority=200
...
Processing flavor input
latest=auto                                   ← a outra porta, que eu não tinha olhado

E o resultado publicado:

"tag-names":["2.0.1","2.0","sha-2a59355…","latest"]

Havia duas fontes de latest num build de tag:

  1. a condição {{is_default_branch}}, que também vale true em push de tag — fechada no Impede que build de tag reescreva o latest #73;
  2. o flavor, cujo default é latest=auto, que acrescenta a tag sozinho para toda tag semver, por fora das regras de tags:.

O #73 fechou a primeira. Como o sintoma era o mesmo, a correção pareceu completa até a próxima release provar o contrário.

A correção

flavor: latest=false

Com isso, a única coisa capaz de gerar latest passa a ser a regra explícita, que compara o ref com o default branch.

Impacto

Nenhum, nas duas releases já publicadas. A v2.0.0 e a v2.0.1 foram marcadas no topo da main, então o latest foi reescrito apontando para o mesmo commit que já apontava. O risco que isso fecha é o de marcar um commit antigo — um v1.4.1 de correção sobre a v1.4.0, por exemplo — o que faria o latest regredir para uma imagem velha, em silêncio.

O que este PR não consegue provar

Em pull_request o job do Docker valida o build sem publicar, e sem tag semver o latest=auto não teria efeito de qualquer forma. A prova só vem no próximo push de tag: a lista de tag-names deve conter x.y.z, x.y e sha-…, e não latest.

Depois do erro anterior, prefiro dizer isso explicitamente a afirmar que está resolvido.

Documentação

O comentário no ci.yml e a seção do README passaram a descrever as duas portas, e não só a primeira. A incompletude anterior é exatamente o que fez o conserto parecer pronto.

🤖 Generated with Claude Code

O #73 fechou só metade do problema. A regra type=raw do "latest" passou
a avaliar enable=false corretamente em push de tag — dá pra ver no log
do build da v2.0.1 — e mesmo assim o "latest" continuou sendo publicado.

A segunda fonte é o flavor, cujo default é "latest=auto": ele acrescenta
a tag sozinho para toda tag semver, por fora das regras de `tags:`. No
mesmo log, logo abaixo da regra desligada, aparece "Processing flavor
input / latest=auto".

Com flavor: latest=false, a única coisa capaz de gerar "latest" passa a
ser a regra explícita, que só vale no default branch.

Nem a v2.0.0 nem a v2.0.1 sofreram dano: as duas foram marcadas no topo
da main, então o "latest" foi reescrito apontando para o mesmo commit. O
risco é marcar um commit antigo, que faria o "latest" regredir em
silêncio.

Comentário e README corrigidos para descrever as duas portas, e não só a
primeira — a incompletude anterior é justamente o que fez o conserto
parecer pronto.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Hirley
Hirley merged commit 462e0a7 into main Aug 29, 2026
3 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in @Hirley's task_keeper_api Aug 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant