Skip to content

Contribuição

Este documento descreve como contribuir para o projeto API de Gerenciamento de Carros.

Primeiros Passos

Configuração do Ambiente de Desenvolvimento

Antes de começar a contribuir, configure seu ambiente de desenvolvimento:

  1. Fork o repositório para sua conta pessoal
  2. Clone o fork para sua máquina local:
    git clone https://github.com/seu-usuario/car_api.git
    cd car_api
    
  3. Adicione o repositório upstream:
    git remote add upstream https://github.com/autor-original/car_api.git
    
  4. Instale as dependências:
    poetry install
    
  5. Ative o ambiente virtual:
    poetry shell
    

Atualizando seu Fork

Mantenha seu fork sincronizado com o repositório original:

# Fetch das atualizações do upstream
git fetch upstream

# Merge das atualizações na branch principal
git checkout main
git merge upstream/main

Tipos de Contribuições

Aceitamos diversos tipos de contribuições:

  • Correções de bugs: Identificação e correção de problemas existentes
  • Novas funcionalidades: Implementação de recursos solicitados
  • Melhorias de código: Refatorações e otimizações
  • Documentação: Melhoria da documentação existente ou criação de nova
  • Testes: Adição ou melhoria de testes automatizados
  • Traduções: Tradução do código ou documentação
  • Relatórios de bugs: Identificação de problemas com detalhes claros
  • Sugestões de recursos: Propostas de novas funcionalidades

Processo de Contribuição

1. Encontre uma Issue

  • Verifique as issues existentes
  • Comente na issue que deseja trabalhar para evitar duplicação de esforços
  • Se não houver issue para o que deseja resolver, crie uma

2. Crie uma Branch

Crie uma branch para sua contribuição:

# Atualize sua branch principal
git checkout main
git pull origin main

# Crie uma nova branch com nome descritivo
git checkout -b feat/nova-funcionalidade
# ou
git checkout -b fix/nome-do-bug

3. Desenvolva sua Contribuição

  • Siga os padrões de codificação do projeto
  • Escreva testes para novas funcionalidades
  • Atualize a documentação conforme necessário
  • Certifique-se de que todos os testes continuam passando

4. Commit suas Mudanças

Siga as convenções de commit semântico:

# Adicione os arquivos modificados
git add .

# Faça o commit com mensagem clara e descritiva
git commit -m "feat(cars): adiciona filtro por preço nos endpoints de carros"

Tipos comuns de commits: - feat: Nova funcionalidade - fix: Correção de bug - docs: Alterações na documentação - style: Mudanças de estilo (formatação, ponto-e-vírgula faltando, etc.) - refactor: Refatoração de código - test: Adição ou modificação de testes - chore: Tarefas de manutenção

5. Envie sua Contribuição

# Envie sua branch para o GitHub
git push origin feat/nova-funcionalidade

# Crie um Pull Request no GitHub

Diretrizes de Código

Padrões de Codificação

  • Siga o guia de estilo do projeto
  • Use nomes de variáveis e funções descritivos
  • Mantenha funções pequenas e com propósito único
  • Comente código complexo ou não óbvio
  • Evite duplicação de código

Testes

  • Escreva testes para novas funcionalidades
  • Mantenha a cobertura de testes acima de 80%
  • Teste casos de sucesso e falha
  • Use fixtures para dados de teste consistentes

Documentação

  • Atualize a documentação para refletir mudanças
  • Adicione docstrings para funções públicas
  • Atualize exemplos e tutoriais conforme necessário

Processo de Revisão

Pull Request

Ao criar um Pull Request:

  1. Título descritivo: Use um título claro e conciso
  2. Descrição detalhada: Explique o que foi feito e por quê
  3. Referencie issues: Use palavras-chave como "Fixes #123" para fechar issues automaticamente
  4. Marque revisores: Se souber quem pode revisar, marque-os

Revisão de Código

  • Seja receptivo(a) a feedbacks
  • Faça perguntas se não entender uma sugestão
  • Revise seu próprio código antes de submeter
  • Responda a comentários de revisão de forma construtiva

Recursos para Contribuidores

Ambientes de Desenvolvimento

O projeto é compatível com diversos ambientes:

  • VS Code: Recomendado com extensões para Python
  • PyCharm: Excelente suporte para debugging e refatoração
  • Vim/Neovim: Com plugins adequados
  • Outros: Qualquer editor com suporte a Python

Ferramentas de Desenvolvimento

  • Poetry: Gerenciamento de dependências
  • Ruff: Linting e formatação de código
  • pytest: Execução de testes
  • Alembic: Migrações de banco de dados

Comunicação

Issues

  • Use issues para reportar bugs ou sugerir recursos
  • Forneça detalhes suficientes para reprodução de bugs
  • Seja claro(a) e objetivo(a) na comunicação

Discussões

  • Use discussões para conversas mais amplas sobre o projeto
  • Tire dúvidas sobre implementação
  • Proponha ideias para o futuro do projeto

Reconhecimento

Contribuidores serão reconhecidos de diversas formas:

  • Autores: Contribuições significativas aparecerão como co-autores
  • Changelog: Contribuições aparecerão nas notas de versão
  • Créditos: Nome aparecerá na seção de créditos do projeto

Código de Conduta

Ao contribuir para este projeto, você concorda em seguir nosso Código de Conduta (se existir). Esperamos que todos os participantes:

  • Sejam respeitosos e inclusivos
  • Comuniquem de forma clara e profissional
  • Foquem na qualidade técnica e no valor para os usuários
  • Aceitem feedback construtivo com mente aberta

Dúvidas?

Se tiver dúvidas sobre como contribuir:

  1. Leia a documentação do projeto
  2. Abra uma issue com sua dúvida
  3. Entre em contato com os mantenedores (se informações estiverem disponíveis)

Agradecimento

Agradecemos antecipadamente por considerar contribuir para este projeto. Sua ajuda é essencial para tornar este projeto melhor para todos os usuários.