Contribuir para o dumpkit
Antes de mais, obrigado por considerares contribuir para o dumpkit! 🎉
Filosofia
Antes de contribuir, compreende os princípios fundamentais do dumpkit:
- Zero dependências – Sem pacotes externos. Nunca.
- Zero configuração – Sem variáveis de ambiente, sem ficheiros de configuração. Funciona imediatamente.
- Simples por design – Preferir clareza sobre soluções complexas.
- Separação de preocupações – Gerar output de debug sem se preocupar para onde vai.
- Funcional sobre OOP – Funções puras, sem classes, sem efeitos secundários quando possível.
Se a tua contribuição se alinhar com estes princípios, estás no lugar certo.
Código de Conduta
Ao participar neste projeto, concordas em manter um ambiente respeitoso e construtivo para todos.
Como Posso Contribuir?
Reportar Bugs
Antes de criar um relatório de bug, verifica as issues existentes para evitar duplicados.
Um bom relatório de bug inclui:
- Versão do Node.js
- Sistema operativo
- Comportamento esperado vs real
- Exemplo mínimo de código para reproduzir
- Mensagens de erro relevantes
Sugerir Melhorias
Aceitamos sugestões! Inclui:
- Uma descrição clara da funcionalidade
- Exemplos de uso
- Porque é que isto se alinha com a filosofia do projeto
- Porque seria valioso para outros
Pull Requests
- Faz fork do repositório
- Cria uma branch de feature (
git checkout -b feature/nova-funcionalidade) - Faz commit das alterações (
git commit -m 'feat: adicionar nova funcionalidade') - Faz push para a branch (
git push origin feature/nova-funcionalidade) - Abre um Pull Request
Setup de Desenvolvimento
# Clonar o repositório
git clone https://github.com/justino-code/dumpkit.git
cd dumpkit
# Instalar dependências
yarn install
# Executar testes
yarn test
# Executar testes em modo watch
yarn test --watch
# Build do projeto
yarn build
# Executar documentação localmente
yarn docs:devEstrutura do Projeto
dumpkit/
├── src/ # Código fonte
│ ├── shared/ # Utilitários e tipos partilhados
│ ├── core/ # Lógica core de formatação
│ ├── dump/ # dump() e dd()
│ ├── trace/ # trace()
│ └── measure/ # measure()
├── tests/ # Ficheiros de teste
├── docs/ # Documentação (VitePress)
│ ├── pt/ # Português
│ └── en/ # Inglês
└── dist/ # Output do buildDiretrizes de Código
- TypeScript – Todo o código deve ser tipado
- Testes – Incluir testes para novas funcionalidades
- Sem dependências – Manter a biblioteca com zero dependências
- Sem classes – Preferir funções puras e tipos simples
- Sem variáveis de ambiente – Toda a configuração via parâmetros de função
- Documentação – Atualizar docs para qualquer alteração na API (PT e EN)
Testes
# Executar todos os testes
yarn test:run
# Executar com cobertura
yarn test:coverage
# Executar ficheiro específico
yarn test tests/core/inspect.test.tsDocumentação
A documentação usa VitePress com suporte i18n (Português e Inglês).
# Executar docs localmente
yarn docs:dev
# Build dos docs
yarn docs:buildAo adicionar ou alterar funcionalidades, atualiza a documentação em Português (docs/pt/) e Inglês (docs/en/).
Mensagens de Commit
Usa mensagens de commit claras e descritivas:
feat:– Nova funcionalidadefix:– Correção de bugdocs:– Alterações na documentaçãotest:– Atualizações de testeschore:– Tarefas de manutençãorefactor:– Refatoração de código
Exemplo: feat: adicionar suporte para inspeção de WeakMap
Licença
Ao contribuir, concordas que as tuas contribuições serão licenciadas sob a MIT License.