Skip to content

feat(ci): habilita publish do pns-core no npm#3

Merged
rlueder merged 1 commit into
mainfrom
feat/bump-core-100
May 13, 2026
Merged

feat(ci): habilita publish do pns-core no npm#3
rlueder merged 1 commit into
mainfrom
feat/bump-core-100

Conversation

@rlueder
Copy link
Copy Markdown
Member

@rlueder rlueder commented May 13, 2026

Resumo

Preenche o input packages do publish job no CI — estava vazio, por isso @precisa-saude/pns@1.0.0 nunca chegou ao npm registry (404 desde 2026-04-26).

Contexto

  • Tag git v1.0.0 existe (criada por semantic-release em 2026-04-26).
  • GitHub release v1.0.0 existe.
  • npm view @precisa-saude/pns retorna 404 — publish job nunca rodou porque a entrada packages: estava vazia em ci.yml.

Plano após merge

Como este commit é um feat: que toca .github/** (não packages/**), o guard require_package_changes: true no _release.yml vai pular o ciclo de release.

Para forçar um release que publique:

  1. Opção A — release direto via feat tocando packages/: commit subsequente em packages/pns-core (qualquer mudança real) com tipo feat: ou fix: → semantic-release publicará v1.0.1 ou v1.1.0.
  2. Opção B — recovery manual da tag existente: rodar gh workflow run publish-tag.yml -f tag=v1.0.0 para publicar 0.1.0 (versão que ficou na package.json no commit da tag). Mistura tag v1.0.0 com versão npm 0.1.0 — funcional mas não alinhado.

Recomendado opção A.

Test plan

  • CI verde no PR
  • Após merge, próximo release ciclado publica no npm
  • npm view @precisa-saude/pns retorna versão

Adiciona `packages/pns-core` ao input `packages` do publish job em
`.github/workflows/ci.yml`. O campo estava vazio, motivo pelo qual o
passo de publicação no npm nunca rodou após o release v1.0.0
(2026-04-26) — o registry continuou retornando 404 para
@precisa-saude/pns mesmo com a tag e o GitHub release criados.

Com o publish job ativo, o próximo release ciclado por semantic-release
publicará o pacote no npm com `--provenance`.
@rlueder rlueder merged commit 24866de into main May 13, 2026
10 checks passed
@rlueder rlueder deleted the feat/bump-core-100 branch May 13, 2026 12:26
@precisa-saude-release-bot
Copy link
Copy Markdown

🎉 This PR is included in version 1.1.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

rlueder added a commit that referenced this pull request May 13, 2026
…bump de versão (#6)

Sem configuração explícita, semantic-release roda só com plugins padrão
(commit-analyzer + npm + github) — calcula a próxima versão e cria a
tag, mas **não commita** o bump no package.json. O workflow
`_publish.yml` então faz checkout do commit de release, lê
`packages/pns-core/package.json` (ainda em `0.1.0`), consulta
`npm view @precisa-saude/pns@0.1.0` → já publicado → pula silenciosamente.
Resultado: todas as 3 release cycles do pns (PRs #3, #4, #5) terminaram
sem publicar versão nova no npm; o registry está travado em 0.1.0.

Solução: traz a configuração canônica de
[`tooling/.releaserc.cjs`](https://github.com/Precisa-Saude/tooling/blob/main/.releaserc.cjs)
e o helper `scripts/sync-versions.cjs`, que juntos garantem:

1. Análise de commits conforme Conventional Commits (mesmas regras dos
   outros repos do ecossistema).
2. `@semantic-release/changelog` mantém CHANGELOG.md.
3. `@semantic-release/npm` (npmPublish: false — a publicação fica com
   `_publish.yml`) bumpa só a raiz.
4. `@semantic-release/exec` roda `scripts/sync-versions.cjs` para
   propagar a versão pra todo `packages/*` não-privado.
5. `@semantic-release/git` commita `package.json`, `packages/*/package.json`
   e `CHANGELOG.md` de volta no `main` com mensagem
   `chore(release): X.Y.Z [skip ci]`.
6. `@semantic-release/github` cria o release no GitHub.

Após o merge deste PR, o próximo merge com `feat:`/`fix:` (ou esta
mesma fix por si só) dispara um ciclo completo: semantic-release calcula
a próxima versão a partir da tag `v1.0.0` existente, commita o bump no
`main`, e `_publish.yml` faz checkout desse commit e publica no npm.
rlueder added a commit that referenced this pull request May 13, 2026
O guard `require_package_changes: true` pulava o release sempre que um
PR mexia apenas em `.github/**` ou na config (era o caso de PR #6 e #7).
Como `@semantic-release/git` só commita o bump de versão de volta no
`main` quando o release roda, três PRs (#3, #4, #5) materializaram tags
git mas nunca chegaram a publicar no npm. Cada novo PR de config para
arrumar isso era também guarded out.

pns só tem um pacote publicável (`pns-core`); o overhead de release no-op
sobre mudanças de workflow é insignificante, e o custo de release pulado
silenciosamente é alto. Setando o input para `false` no call do
\`_release.yml\`. Outros repos com vários pacotes publicáveis podem
manter o guard ativo.
precisa-saude-release-bot Bot pushed a commit that referenced this pull request May 13, 2026
## [1.3.0](v1.2.0...v1.3.0) (2026-05-13)

### Features

* **ci:** sincroniza workflows com o template do tooling ([#7](#7)) ([c9b5b55](c9b5b55)), closes [#6](#6) [#30](https://github.com/Precisa-Saude/pns/issues/30) [#31](https://github.com/Precisa-Saude/pns/issues/31)

### Bug Fixes

* **ci:** adiciona .releaserc.cjs para que semantic-release commite o bump de versão ([#6](#6)) ([019e7ea](019e7ea)), closes [#3](#3) [#4](#4) [#5](#5)
* **ci:** desabilita o guard require_package_changes no release job ([#8](#8)) ([27e287a](27e287a)), closes [#6](#6) [#7](#7) [#3](#3) [#4](#4) [#5](#5)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant