ADR-0016 · Versão única para todo o monorepo
Status: aceito (23/10/2026) — entregue na versão 2.2.0.
Contexto
Seção intitulada “Contexto”Cada package.json tinha uma versão própria, e quase nenhuma mudava: o web
estava em 0.0.0, a API em 0.0.1, vários pacotes em 0.0.0, enquanto o
CHANGELOG.md registrava 2.0.1 e o package.json da raiz, 1.1.0. Não dava
para dizer qual versão estava em produção nem a qual entrada do changelog ela
correspondia. Os pacotes do workspace não são publicados no npm; só existem
dentro deste repositório.
Decisão
Seção intitulada “Decisão”- Uma versão para tudo (lockstep): raiz,
apps/*,packages/*econfig/*usam o mesmo número, que é a versão da plataforma. - SemVer a partir da mensagem de commit: major para
!/BREAKING CHANGE, minor parafeat/chore, patch parafix,docs,refactor,style. scripts/sync-versions.mjspropaga a versão da raiz para todos os workspaces;pnpm release:bump-versionincrementa, sincroniza, faz o commitchore(release): X.Y.Ze cria a tagvX.Y.Z.pnpm versions:checkfalha se algum workspace divergir — pensado para o CI.- Cada versão tem uma página no Changelog da documentação, com
o ganho de cada mudança, além da entrada no
CHANGELOG.md.
Alternativas consideradas
Seção intitulada “Alternativas consideradas”- Versões independentes com Changesets. Faz sentido para pacotes
publicados no npm; aqui só adicionaria cerimônia, porque os pacotes são
consumidos sempre na versão do próprio repositório (
workspace:*).
Consequências
Seção intitulada “Consequências”- ➕ A versão em produção identifica exatamente o código de todos os apps.
- ➕ Uma entrada de changelog por release, sem combinar versões de pacotes.
- ➖ Pacotes que não mudaram também sobem de versão; para o uso interno, isso não tem custo.

Desenvolvido e documentado porNós Tecnologia · Desenvolvimento Criativo

