Contribuindo
Obrigado pelo seu interesse em contribuir para o Fracttal ETL Hub! Este documento explica como você pode ajudar o projeto.
🚀 Primeiros Passos
1. Configuração do Ambiente de Desenvolvimento
# Clone o repositório
git clone https://github.com/Fracttal-Tech-S-L/Hub.git
cd Hub
# Crie um ambiente virtual
python3 -m venv .venv
source .venv/bin/activate # No Windows: .venv\Scripts\activate
# Instale as dependências
pip install -e .[dev]
2. Executar Testes
# Executar todos os testes
make tests-all
# Executar um teste específico
make tests-method METHOD=test_connection
3. Verificação de Código
# Executar linting
make lint
# Verificar tipos
make type-check
📝 Tipos de Contribuições
🐛 Reportar Bugs
- Verifique se o bug não foi reportado anteriormente
- Crie uma issue com:
- Descrição clara do problema
- Passos para reproduzir
- Comportamento esperado vs real
- Informações do ambiente (versão Python, SO, etc.)
✨ Solicitar Funcionalidades
- Verifique se a funcionalidade já não existe
- Crie uma issue descrevendo:
- O problema que resolve
- Casos de uso específicos
- Design proposto (opcional)
🛠️ Contribuir com Código
Processo Geral
- Fork o repositório
- Crie uma branch para sua funcionalidade:
git checkout -b feature/nova-funcionalidade - Faça suas alterações seguindo os guias de estilo
- Escreva testes para seu código
- Execute todos os testes e verificações
- Commit suas alterações:
git commit -m "feat: descrição clara" - Push para seu fork:
git push origin feature/nova-funcionalidade - Crie um Pull Request
Diretrizes de Desenvolvimento
Estilo de Código
- Siga PEP 8 para Python
- Use type hints em todas as funções
- Documente com docstrings no formato Google
- Mantenha linhas menores que 88 caracteres
Commits
Usamos Conventional Commits:
feat: nova funcionalidade
fix: correção de bug
docs: alterações na documentação
style: alterações de formatação
refactor: refatoração de código
test: adicionar testes
chore: alterações de manutenção
Testes
- Escreva testes unitários para toda nova funcionalidade
- Mantenha cobertura de código > 80%
- Testes devem ser independentes e rápidos
🔧 Áreas de Contribuição
Conexões
Adicionar Nova Conexão
- Criar modelo Pydantic em
fracttal_etl/connections/httplib/schemas/connections.py - Implementar conexão no módulo correspondente
- Adicionar testes em
test/ - Atualizar documentação em
PROMPT_ETL.md
Exemplo: Nova Conexão
# Em connections.py
class NewConnectionParams(BaseHttpConnectionParams):
"""Parâmetros para nova conexão."""
api_key: str = Field(description="Chave API para autenticação")
endpoint: str = Field(description="Endpoint específico")
# No módulo de conexão
class NewConnection(ConnectionBase):
def __init__(self, params: NewConnectionParams):
self.params = params
def test_connection(self) -> bool:
# Implementação
pass
Transformações
Adicionar Novo Operador
- Implementar operador em
fracttal_etl/transform/ - Adicionar testes específicos
- Documentar em
PROMPT_ETL.md
Documentação
- Mantenha a documentação atualizada
- Adicione exemplos claros
- Use o gerador de docs para manter consistência
🔍 Code Review
Checklist para Reviews
- Código segue guias de estilo
- Testes passam e cobrem funcionalidade
- Documentação atualizada
- Não introduz regressões
- Performance adequada
- Segurança considerada
Aprovação
Pull requests requerem: - ✅ Pelo menos 1 aprovação - ✅ Testes passando - ✅ Sem conflitos de merge - ✅ Descrição clara das alterações
📚 Recursos
🙏 Reconhecimento
Obrigado a todos os contribuidores! Sua ajuda torna o Fracttal ETL Hub melhor para todos.
Para perguntas sobre contribuição, abra uma issue ou entre em contato com a equipe de desenvolvimento.