O que é lido
Que títulos passam a versões, quais a grupos, e o que acontece ao resto.
O analisador lê um registo de alterações como uma corrida plana de títulos e decide o que cada um é. Nada é configurado: a entrada é a forma do próprio ficheiro.
Um título de versão
Um título é uma versão quando — reduzida qualquer ligação ao texto que mostra — o que resta é um número de versão, opcionalmente seguido de uma data entre parênteses.
## [1.4.0](https://github.com/acme/app/compare/v1.3.0...v1.4.0) (2026-02-01)
### [1.4.1](https://github.com/acme/app/compare/v1.4.0...v1.4.1) (2026-02-03)
## 1.4.0 (2026-02-01)
## v2.0.0
Os quatro são lidos. Os dois primeiros são o que o release-please escreve — uma
versão menor em ## e uma correção em ### — e os dois últimos um ficheiro
mantido à mão. O nível não faz parte do teste, e é isso que deixa passar ambas as
formas.
O nível é lido do corpo em vez de assumido, pela mesma razão: o release-please
escreve uma correção em ### e os seus grupos também em ###, pelo que «o título
menos profundo desta versão» é a única regra que lê ambos.
Um título de grupo
Todo o título abaixo do nível da versão é um grupo, e o seu nome é o do próprio ficheiro — literal, não traduzido, sem taxonomia fixa por trás.
### Features
### Bug Fixes
O release-please escreve esses dois, o changesets escreve o seu próprio conjunto, o Keep a Changelog outro, e cada um escreve-os no idioma em que o projeto é mantido. Uma camada que os mapeasse sobre uma lista fixa falharia em silêncio no primeiro título que não conhecesse — os filtros da vista geral são portanto construídos a partir do que saiu do ficheiro, e um registo escrito em alemão filtra em alemão sem nada configurado.
O emblema ao lado de um grupo conta os seus itens de lista de primeiro nível. Um título dentro de um bloco de código é texto e não um título, e uma cerca só fecha com as da sua espécie.
O título e o preâmbulo
O primeiro # do ficheiro, se nenhuma versão veio antes, é o título próprio do
ficheiro e é descartado — a página tira o seu título de title, mantê-lo seria
portanto um segundo <h1>.
Só esse, e só antes da primeira versão. Descartar todos os # lê-se
corretamente no ficheiro que o release-please escreve, onde há exatamente um, e é
perda silenciosa de conteúdo num registo mantido à mão que põe as suas versões no
nível de topo.
O que mais estiver antes da primeira versão fica, como introdução própria da vista geral.
Um título que quase é uma versão
A tolerância acima tem um gume silencioso: um título que o teste de versão não corresponde é prosa, portanto as suas linhas dobram-se na versão acima e a versão que devia ser nunca chega a ser uma página. Nada no site renderizado o diria.
Por isso a compilação di-lo. Um título que abre com um número com pontos mas não é
lido — ## 1.4 (Feb 2024), ou a forma Keep a Changelog ## [1.2.3] - 2024-01-01 —
é reportado no relatório de compilação, nomeando a linha e a forma que funciona.
É um aviso e não uma falha, pela razão pela qual todo o achado de conteúdo o é: o site renderiza, e um registo de alterações que esta camada não escreveu não é da compilação rejeitá-lo. Ver O que a compilação verifica.
O URL em que uma versão é servida
O número de versão, com um v à frente quando começa por um dígito.
/releases/v1.4.0
O v não é decoração. O Content lê um nome de ficheiro feito só de dígitos e pontos
como uma versão e para de o refinar, o que deixaria o prefixo de ordem no endereço:
/releases/01.0.2.0. Com o v o prefixo é retirado como em todo o lado, e o
segmento corresponde à tag com que a versão foi cortada.