Ir para o conteúdo

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

  1. Verifique se o bug não foi reportado anteriormente
  2. Crie uma issue com:
  3. Descrição clara do problema
  4. Passos para reproduzir
  5. Comportamento esperado vs real
  6. Informações do ambiente (versão Python, SO, etc.)

✨ Solicitar Funcionalidades

  1. Verifique se a funcionalidade já não existe
  2. Crie uma issue descrevendo:
  3. O problema que resolve
  4. Casos de uso específicos
  5. Design proposto (opcional)

🛠️ Contribuir com Código

Processo Geral

  1. Fork o repositório
  2. Crie uma branch para sua funcionalidade: git checkout -b feature/nova-funcionalidade
  3. Faça suas alterações seguindo os guias de estilo
  4. Escreva testes para seu código
  5. Execute todos os testes e verificações
  6. Commit suas alterações: git commit -m "feat: descrição clara"
  7. Push para seu fork: git push origin feature/nova-funcionalidade
  8. 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

  1. Criar modelo Pydantic em fracttal_etl/connections/httplib/schemas/connections.py
  2. Implementar conexão no módulo correspondente
  3. Adicionar testes em test/
  4. 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

  1. Implementar operador em fracttal_etl/transform/
  2. Adicionar testes específicos
  3. 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.