npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@govbr-ds/release-config

v5.0.2

Published

Configuração compartilhada do semantic-release para projetos do GovBR-DS

Readme

GovBR-DS - Release Config

Objetivo

Compartilhar a política de versionamento, changelog e publicação entre os projetos do GovBR-DS.

O pacote fornece a configuração comum do Semantic Release. Ele não executa comandos específicos de Nx, não escolhe o registry do consumidor e não publica mensagens em serviços externos por conta própria.

Como instalar

Configurações para o Semantic Release.

  1. Instale os seguintes pacotes:

    npm install -D @govbr-ds/release-config

Como configurar

  1. Crie um arquivo release.config.js na raiz do seu projeto e importe a configuração base:

    import releaseConfig from '@govbr-ds/release-config'
    
    export default releaseConfig

    Para adicionar ou sobrescrever alguma configuração, crie uma cópia da configuração base:

    import releaseConfig from '@govbr-ds/release-config'
    
    export default {
      ...releaseConfig,
      plugins: [...releaseConfig.plugins, '@semantic-release/npm'],
    }

    Para configurações específicas de monorepos Nx, componha os plugins base com o fluxo Nx no projeto consumidor. A configuração publicada não executa comandos Nx por conta própria.

    A ordem dos plugins define a ordem de execução dentro de cada etapa do Semantic Release.

Política de versionamento

O Semantic Release calcula a próxima versão a partir dos commits desde a última tag:

| Tipo | Uso | Versão padrão | | ---------- | -------------------------------------------------- | ------------- | | feat | Nova capacidade compatível com a API existente | minor | | fix | Correção de comportamento | patch | | docs | Atualização de documentação ou exemplos | patch | | perf | Melhoria de desempenho sem quebra de API | patch | | refactor | Reorganização interna sem mudança de comportamento | patch | | removed | Remoção de API ou recurso público | major | | revert | Reversão de uma mudança publicada | minor |

Os tipos build, chore, ci, lint, ops, test, wip e site são aceitos para manter o histórico consistente, mas não geram release automaticamente. deprecated aparece no changelog, porém também não gera versão por si só.

Uma mudança incompatível deve ser marcada como breaking change. Ela gera major independentemente do tipo:

feat(api)!: alterar contrato de autenticação

BREAKING CHANGE: o campo token agora é obrigatório e precisa ser enviado no cabeçalho Authorization.

O escopo identifica a área alterada, não o impacto da versão:

fix(button): corrigir foco após o clique
feat(tokens): adicionar cor semântica de informação

Não use minor ou patch como escopo para forçar uma versão. O impacto deve ser expresso pelo tipo ou por uma breaking change.

Estrutura para monorepos Nx

O pacote exporta basePlugins para que o projeto consumidor acrescente seu próprio fluxo de preparação e publicação:

import { basePlugins, branches } from '@govbr-ds/release-config'

export default {
  branches,
  plugins: [
    ...basePlugins,
    // Plugins específicos do monorepo entram aqui.
  ],
}

Isso mantém a configuração publicada independente de Nx e evita que um projeto simples instale ou execute ferramentas que não utiliza.

Validação local

Antes de publicar uma release, valide a configuração sem executar prepare, publish ou notificações:

pnpm exec semantic-release --dry-run

No CI, use o lockfile congelado e a versão instalada no projeto:

pnpm install --frozen-lockfile
pnpm exec semantic-release

Method Date.prototype.toString called on incompatible receiver

A versão 14 do @semantic-release/release-notes-generator introduziu um bug com o conventional-changelog-conventionalcommits:

TypeError: Method Date.prototype.toString called on incompatible receiver [object Date]
    at Proxy.toString (<anonymous>)
    at [Symbol.toPrimitive] (<anonymous>)
    at new Date (<anonymous>)
    at Object.formatDate (file:///home/runner/work/clean-self-hosted-runner/clean-self-hosted-runner/node_modules/conventional-changelog-writer/dist/utils.js:8:12)
    at defaultCommitTransform (file:///home/runner/work/clean-self-hosted-runner/clean-self-hosted-runner/node_modules/conventional-changelog-writer/dist/options.js:23:23)
    at transformCommit (file:///home/runner/work/clean-self-hosted-runner/clean-self-hosted-runner/node_modules/conventional-changelog-writer/dist/commit.js:29:23)
    at write (file:///home/runner/work/clean-self-hosted-runner/clean-self-hosted-runner/node_modules/conventional-changelog-writer/dist/writers.js:39:28)
    at async nextAsync (node:internal/streams/from:182:33) {
  pluginName: '@semantic-release/release-notes-generator'

Os detalhes da causa não são importantes agora, mas caso esteja com o problema tente atualizar suas dependências para uma nova versão que pode já ter corrigido o bug.

Outras alternativas para corrigir o bug são:

  1. Incluir a dependência "conventional-changelog-conventionalcommits": "^9.1.0" no seu package.json.
  2. Fazer o downgrade das suas dependências do semantic-release

Como contribuir?

Antes de abrir um Merge Request tenha em mente algumas informações:

  • Esse é um projeto opensource e contribuições são bem-vindas.
  • Para facilitar a aprovação da sua contribuição, escolha um título curto, simples e explicativo para o MR, e siga os padrões da nossa wiki.
  • Quer contribuir com o projeto? Confira o nosso guia como contribuir.

Reportar bugs/necessidades

Você pode usar as issues para nos informar os problemas que tem enfrentado ao usar nossa biblioteca ou mesmo o que gostaria que fizesse parte do projeto. Por favor use o modelo que mais se encaixa na sua necessidade e preencha com o máximo de detalhes possível.

Nos comprometemos a responder a todas as issues

Precisa de ajuda?

Por favor não crie issues para fazer perguntas...

Use nossos canais abaixo para obter tirar suas dúvidas:

Padrão de commits

Para mais informações sobre o padrão de commits consulte a nossa Wiki.

Licença

Nesse projeto usamos a licença MIT.