Pular para o conteúdo principal

Contribuindo

O repositório é Hoyasumii/signoz, gerenciado com pnpm (Node.js 20 ou mais recente).

pnpm install # dependências, mais os git hooks (husky)
pnpm build # tsc → dist/ (CommonJS + .d.ts)
pnpm test:unit # jest, com um SigNoz falso em node:http (sem rede)
pnpm test:live # contra uma instância real (.env.test, a partir de env.example)
pnpm check:types # tsc --noEmit sobre src, tests e scripts
pnpm check:lint # oxlint (`pnpm fix:lint` corrige o que der)
pnpm check:format # oxfmt, 120 colunas (`pnpm fix:format` reescreve)
pnpm check:knip # arquivos, exports e dependências não usados

Todo script é multiplataforma: nada de rm, $VAR ou VAR=1 cmd. O .gitattributes mantém LF, com .cmd/.vbs em CRLF.

As verificações rodam localmente por git hooks. pre-commit roda check:lint e check:format, commit-msg roda o commitlint com a config convencional (feat: …, fix(mcp): …), e pre-push roda check:types, check:knip e test:unit.

Todo push na main roda o workflow de Continuous Delivery (.github/workflows/cd.yml). Ele roda as mesmas verificações e o build, e depois:

  • publica a versão do package.json no npm quando ela ainda não está no registro (por Trusted Publishing, com provenance), cria a tag v<versão> e abre uma release no GitHub;
  • constrói o site e faz o deploy na branch gh-pages quando o push mexe em website/ ou src/ (uma execução manual do workflow sempre faz o deploy).

Para lançar uma versão, suba o version do package.json e faça o merge na main.

Código gerado​

pnpm codegen # spec/openapi.v<versão>.yml → src/generated/ (nunca edite à mão)
pnpm codegen:mcp # spec → src/mcp/generated/catalog.json (um teste unitário falha quando está desatualizado)

Para acompanhar uma nova versão do SigNoz:

  1. Baixe o docs/api/openapi.yml da tag para spec/.
  2. Mude signozVersion no package.json, suba a version e acrescente uma linha na tabela de compatibilidade.
  3. Rode pnpm codegen && pnpm codegen:mcp.

Este site​

O site é um pacote de workspace Docusaurus em website/, em inglês e português (Brasil).

pnpm docs:dev # pré-visualização (acrescente `--locale pt-BR` para a tradução)
pnpm docs:build # constrói todos os idiomas em website/build/
pnpm docs:serve # serve o build (a busca só funciona num build)
GIT_USER=<usuário> pnpm docs:deploy # constrói e envia para a branch gh-pages
  • Os guias são Markdown puro em website/docs/, espelhados página a página em website/i18n/pt-BR/docusaurus-plugin-content-docs/current/: mude os dois juntos.
  • A referência da API é gerada de src/index.ts e src/mcp/index.ts pelo TypeDoc a cada build em inglês.
  • llms.txt e llms-full.txt são gerados na raiz do site a partir dos guias em inglês a cada build.