We welcome contributions from the community and appreciate your help in making ValidBR better.
- Code of Conduct
- How to Contribute
- Development Setup
- Code Style
- Testing
- Pull Request Process
- Reporting Bugs
- Feature Requests
- Questions & Support
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Be respectful and inclusive - We welcome contributors from all backgrounds
- Be collaborative - Work together to improve the project
- Be constructive - Provide helpful feedback and suggestions
- Be patient - Remember that we're all volunteers with limited time
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at julio@grupojpc.com.br.
There are many ways to contribute to ValidBR:
- Report bugs using our Bug Report Template
- Include steps to reproduce, expected behavior, and actual behavior
- Provide environment details (OS, language version, etc.)
- Suggest new features using our Feature Request Template
- Explain the use case and benefits
- Consider if the feature fits ValidBR's scope
- Fix bugs or implement features
- Improve documentation
- Add tests
- Optimize performance
- Improve README files
- Add code examples
- Update API documentation
- Translate documentation
- Add test cases
- Improve test coverage
- Report test failures
- Node.js (v14 or higher)
- Python (3.7 or higher)
- PHP (7.4 or higher)
- Docker (optional, for running all tests)
-
Fork the repository
# Clone your fork git clone https://github.com/YOUR_USERNAME/validbr.git cd validbr
-
Set up development environment
# Install dependencies for all languages cd nodejs && npm install cd ../python && pip install -e . cd ../php && composer install
-
Run tests
# Run all tests with Docker (recommended) cd docker docker-compose up --build # Or run tests individually cd nodejs && npm test cd ../python && python -m pytest cd ../php && composer test
cd nodejs
npm install
npm run build
npm testcd python
pip install -e .
python -m pytestcd php
composer install
composer testWe follow language-specific coding standards to maintain code quality and consistency.
- Use ESLint and Prettier for code formatting
- Follow TypeScript best practices
- Use JSDoc for documentation
- Run before submitting:
npm run lint && npm run lint:fix
- Use Black for code formatting
- Follow PEP 8 style guidelines
- Use Flake8 for linting
- Use type hints where appropriate
- Run before submitting:
black . && flake8 .
- Use PHP_CodeSniffer for code formatting
- Follow PSR-12 coding standards
- Use PHPStan for static analysis
- Use PHPDoc for documentation
- Run before submitting:
composer cs-check && composer phpstan
- Write clear, readable code
- Add comments for complex logic
- Use meaningful variable and function names
- Keep functions small and focused
- Add tests for new functionality
# Run all tests
docker-compose up --build
# Run specific language tests
docker-compose run nodejs npm test
docker-compose run python python -m pytest
docker-compose run php composer test# Node.js
npm run test:coverage
# Python
python -m pytest --cov=validbr
# PHP
composer test:coverage- Test all new functionality
- Include edge cases
- Test error conditions
- Maintain high test coverage
- Use descriptive test names
// Node.js example
describe('CPF Validation', () => {
it('should validate a valid CPF', () => {
expect(ValidBR.cpf.isValid('123.456.789-09')).toBe(true);
});
it('should reject an invalid CPF', () => {
expect(ValidBR.cpf.isValid('123.456.789-10')).toBe(false);
});
});-
Ensure your branch is up to date
git fetch origin git rebase origin/main
-
Run all tests
docker-compose up --build
-
Check code style
# Node.js npm run lint # Python black . && flake8 . # PHP composer cs-check
-
Update documentation if needed
- Use descriptive titles - "Add CPF validation" not "Fix bug"
- Provide clear descriptions - Explain what and why, not how
- Reference related issues - Use "Fixes #123" or "Closes #123"
- Include tests - All new code should have tests
- Update documentation - If adding new features
- Keep PRs small - Focus on one feature or fix per PR
We use a Pull Request Template to ensure all necessary information is included.
- Check existing issues - Your bug might already be reported
- Try the latest version - The bug might be fixed
- Reproduce the issue - Make sure it's reproducible
Use our Bug Report Template which includes:
- Clear description of the problem
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Environment details (OS, language version, etc.)
- Code examples if applicable
- Screenshots if relevant
**Bug Description**
CPF validation fails for valid CPF numbers starting with 000.
**Steps to Reproduce**
1. Install ValidBR: npm install validbr
2. Run: ValidBR.cpf.isValid('000.000.000-00')
3. Expected: true, Actual: false
**Environment**
- OS: macOS 12.0
- Node.js: 16.13.0
- ValidBR: 1.0.0
**Additional Information**
This affects all CPF numbers starting with 000.
- Check existing features - The feature might already exist
- Consider the scope - Does it fit ValidBR's purpose?
- Think about implementation - Is it feasible?
Use our Feature Request Template which includes:
- Clear description of the feature
- Use case and benefits
- Proposed implementation (if applicable)
- Alternatives considered
**Feature Description**
Add support for validating Brazilian driver's license numbers.
**Use Case**
Many Brazilian applications need to validate driver's license numbers for user registration and verification.
**Benefits**
- Complete Brazilian document validation coverage
- Useful for automotive and transportation applications
- Follows existing validation patterns
**Proposed Implementation**
- Add `ValidBR.license` module
- Support all Brazilian states
- Include mask application/removal
- Add tests and documentation
- GitHub Issues - For bugs and feature requests
- GitHub Discussions - For questions and general discussion
- Email - julio@grupojpc.com.br for private matters
- Discord - Join our community for real-time chat
- Check the documentation - Your question might be answered there
- Search existing issues - Similar questions might have been asked
- Try to solve it yourself - Learning is part of the process
- Be specific - Include code examples and error messages
- Provide context - Explain what you're trying to achieve
- Show effort - Demonstrate what you've already tried
- Be patient - We're all volunteers with limited time
We recognize all contributors in our Contributors page.
- Code - Bug fixes, features, improvements
- Documentation - README, guides, examples
- Testing - Test cases, bug reports
- Community - Support, feedback, promotion
Special recognition for significant contributions:
- Core Contributors - Regular contributors with major impact
- Documentation Heroes - Outstanding documentation contributions
- Bug Hunters - Excellent bug reports and fixes
- Community Champions - Outstanding community support
By contributing to ValidBR, you agree that your contributions will be licensed under the MIT License.
- Código de Conduta
- Como Contribuir
- Configuração de Desenvolvimento
- Estilo de Código
- Testes
- Processo de Pull Request
- Reportando Bugs
- Solicitações de Funcionalidades
- Perguntas e Suporte
Este projeto e todos os participantes são regidos pelo nosso Código de Conduta. Ao participar, você deve seguir este código.
- Seja respeitoso e inclusivo - Acolhemos contribuidores de todas as origens
- Seja colaborativo - Trabalhe junto para melhorar o projeto
- Seja construtivo - Forneça feedback e sugestões úteis
- Seja paciente - Lembre-se de que somos todos voluntários com tempo limitado
Casos de comportamento abusivo, assédio ou inaceitável podem ser reportados entrando em contato com a equipe do projeto em julio@grupojpc.com.br.
Existem muitas maneiras de contribuir para o ValidBR:
- Reporte bugs usando nosso Template de Bug Report
- Inclua passos para reproduzir, comportamento esperado e comportamento atual
- Forneça detalhes do ambiente (SO, versão da linguagem, etc.)
- Sugira novas funcionalidades usando nosso Template de Feature Request
- Explique o caso de uso e benefícios
- Considere se a funcionalidade se encaixa no escopo do ValidBR
- Corrija bugs ou implemente funcionalidades
- Melhore a documentação
- Adicione testes
- Otimize performance
- Melhore arquivos README
- Adicione exemplos de código
- Atualize documentação da API
- Traduza documentação
- Adicione casos de teste
- Melhore cobertura de testes
- Reporte falhas de teste
- Node.js (v14 ou superior)
- Python (3.7 ou superior)
- PHP (7.4 ou superior)
- Docker (opcional, para executar todos os testes)
-
Faça um fork do repositório
# Clone seu fork git clone https://github.com/julioamorimdev/validbr.git cd validbr
-
Configure o ambiente de desenvolvimento
# Instale dependências para todas as linguagens cd nodejs && npm install cd ../python && pip install -e . cd ../php && composer install
-
Execute os testes
# Execute todos os testes com Docker (recomendado) cd docker docker-compose up --build # Ou execute testes individualmente cd nodejs && npm test cd ../python && python -m pytest cd ../php && composer test
cd nodejs
npm install
npm run build
npm testcd python
pip install -e .
python -m pytestcd php
composer install
composer testSeguimos padrões de codificação específicos para cada linguagem para manter qualidade e consistência.
- Use ESLint e Prettier para formatação
- Siga as melhores práticas do TypeScript
- Use JSDoc para documentação
- Execute antes de enviar:
npm run lint && npm run lint:fix
- Use Black para formatação
- Siga as diretrizes de estilo PEP 8
- Use Flake8 para linting
- Use type hints quando apropriado
- Execute antes de enviar:
black . && flake8 .
- Use PHP_CodeSniffer para formatação
- Siga os padrões de codificação PSR-12
- Use PHPStan para análise estática
- Use PHPDoc para documentação
- Execute antes de enviar:
composer cs-check && composer phpstan
- Escreva código claro e legível
- Adicione comentários para lógica complexa
- Use nomes significativos para variáveis e funções
- Mantenha funções pequenas e focadas
- Adicione testes para nova funcionalidade
# Execute todos os testes
docker-compose up --build
# Execute testes de linguagem específica
docker-compose run nodejs npm test
docker-compose run python python -m pytest
docker-compose run php composer test# Node.js
npm run test:coverage
# Python
python -m pytest --cov=validbr
# PHP
composer test:coverage- Teste toda nova funcionalidade
- Inclua casos extremos
- Teste condições de erro
- Mantenha alta cobertura de testes
- Use nomes descritivos para testes
// Exemplo Node.js
describe('Validação de CPF', () => {
it('deve validar um CPF válido', () => {
expect(ValidBR.cpf.isValid('123.456.789-09')).toBe(true);
});
it('deve rejeitar um CPF inválido', () => {
expect(ValidBR.cpf.isValid('123.456.789-10')).toBe(false);
});
});-
Certifique-se de que sua branch está atualizada
git fetch origin git rebase origin/main
-
Execute todos os testes
docker-compose up --build
-
Verifique o estilo do código
# Node.js npm run lint # Python black . && flake8 . # PHP composer cs-check
-
Atualize a documentação se necessário
- Use títulos descritivos - "Adiciona validação de CPF" não "Corrige bug"
- Forneça descrições claras - Explique o quê e por quê, não como
- Referencie issues relacionadas - Use "Fixes #123" ou "Closes #123"
- Inclua testes - Todo novo código deve ter testes
- Atualize documentação - Se adicionando novas funcionalidades
- Mantenha PRs pequenos - Foque em uma funcionalidade ou correção por PR
Usamos um Template de Pull Request para garantir que todas as informações necessárias sejam incluídas.
- Verifique issues existentes - Seu bug pode já estar reportado
- Teste a versão mais recente - O bug pode estar corrigido
- Reproduza o problema - Certifique-se de que é reproduzível
Use nosso Template de Bug Report que inclui:
- Descrição clara do problema
- Passos para reproduzir o problema
- Comportamento esperado vs comportamento atual
- Detalhes do ambiente (SO, versão da linguagem, etc.)
- Exemplos de código se aplicável
- Screenshots se relevante
**Descrição do Bug**
Validação de CPF falha para números de CPF válidos começando com 000.
**Passos para Reproduzir**
1. Instale ValidBR: npm install validbr
2. Execute: ValidBR.cpf.isValid('000.000.000-00')
3. Esperado: true, Atual: false
**Ambiente**
- SO: macOS 12.0
- Node.js: 16.13.0
- ValidBR: 1.0.0
**Informações Adicionais**
Isso afeta todos os CPFs começando com 000.
- Verifique funcionalidades existentes - A funcionalidade pode já existir
- Considere o escopo - Ela se encaixa no propósito do ValidBR?
- Pense na implementação - É viável?
Use nosso Template de Feature Request que inclui:
- Descrição clara da funcionalidade
- Caso de uso e benefícios
- Implementação proposta (se aplicável)
- Alternativas consideradas
**Descrição da Funcionalidade**
Adicionar suporte para validar números de carteira de motorista brasileira.
**Caso de Uso**
Muitas aplicações brasileiras precisam validar números de carteira de motorista para registro e verificação de usuários.
**Benefícios**
- Cobertura completa de validação de documentos brasileiros
- Útil para aplicações automotivas e de transporte
- Segue padrões de validação existentes
**Implementação Proposta**
- Adicionar módulo `ValidBR.license`
- Suportar todos os estados brasileiros
- Incluir aplicação/remoção de máscaras
- Adicionar testes e documentação
- GitHub Issues - Para bugs e solicitações de funcionalidades
- GitHub Discussions - Para perguntas e discussão geral
- Email - julio@grupojpc.com.br para assuntos privados
- Discord - Entre em nossa comunidade para chat em tempo real
- Verifique a documentação - Sua pergunta pode estar respondida lá
- Pesquise issues existentes - Perguntas similares podem ter sido feitas
- Tente resolver sozinho - Aprender faz parte do processo
- Seja específico - Inclua exemplos de código e mensagens de erro
- Forneça contexto - Explique o que você está tentando alcançar
- Mostre esforço - Demonstre o que você já tentou
- Seja paciente - Somos todos voluntários com tempo limitado
Reconhecemos todos os contribuidores em nossa página de Contribuidores.
- Código - Correções de bugs, funcionalidades, melhorias
- Documentação - README, guias, exemplos
- Testes - Casos de teste, reportes de bugs
- Comunidade - Suporte, feedback, promoção
Reconhecimento especial para contribuições significativas:
- Contribuidores Principais - Contribuidores regulares com grande impacto
- Heróis da Documentação - Contribuições excepcionais de documentação
- Caçadores de Bugs - Excelentes reportes e correções de bugs
- Campeões da Comunidade - Suporte excepcional à comunidade
Ao contribuir para o ValidBR, você concorda que suas contribuições serão licenciadas sob a Licença MIT.