Obrigado por considerar contribuir com sidrapy!
Por favor, não use o issue tracker solicitar suporte. O issue tracker é uma ferramenta para resolver bugs e solicitações de recursos no sidrapy. Use nosso grupo no Telegram para perguntas sobre o uso do sidrapy ou dificuldades com seu próprio código:
Inclua as seguintes informações em sua postagem:
- Descreva o que você esperava que acontecesse.
- Se possível, inclua um exemplo reprodutível mínimo para nos ajudar a identificar o problema. Isso também ajuda a verificar se o problema não está no seu próprio código.
- Descreva o que realmente aconteceu. Inclua o rastreamento completo, se houver uma exceção.
- Liste as versões do seu python e o sidrapy. Se possível, verifique se esse problema já foi corrigido nas versões mais recentes ou no código mais recente no repositório.
Se não houver uma Issue em aberto para o que você deseja enviar, prefira abrir uma para discussão antes de trabalhar em uma PR. Você pode trabalhar em qualquer Issue que não tenha uma PR aberto vinculado à ela ou a um mantenedor atribuído a ele. Eles aparecem na barra lateral. Não é necessário perguntar se você pode resolver um problema que lhe interessa.
Inclua o seguinte na sua correção:
- Use o Black para formatar seu código. Essa e outras ferramentas executarão automaticamente se instalar o pre-commit utilizando as instruções abaixo.
- Procure incluir testes, caso a sua correção adicionar ou alterar o código. Verifique se o teste falhou sem a sua correção.
- Atualize qualquer página ou string de documentação relevante.
-
Baixe e instale a ultima versão do git.
$ git config --global user.name 'your name'
$ git config --global user.email 'your email'
-
Tenha certeza que possui uma conta no GitHub.
-
Faça um fork do sidrapy para sua conta do Github clicando no botão Fork.
-
Clone o repositório principal localmente.
$ git clone https://github.com/AlanTaranti/sidrapy
$ cd sidrapy
- Adicione seu fork como repositório remoto para submeter seu trabalho também. Substitua
{usuario}
como o seu usuário. Esse comando define o seu repositório remoto como "fork", enquanto o repositório remoto padrão AlanTaranti é "origin".
$ git remote add fork https://github.com/{usuario}/sidrapy
- Crie um virtualenv.
$ python3 -m venv venv
$ . venv/bin/activate
No Windows, ativar o virtualenv é diferente.
> env\Scripts\activate
- Instale o sidrapy no modo editável com as dependências de desenvolvimento.
$ pip install -e . -r requirements/development.txt
- Opcional: Instale os hooks pre-commit.
$ pre-commit install
- Crie uma branch para identificar a Issue que gostaria de trabalhar. Se você está submetendo uma correção de bug ou documentação, ramifique da última versão ".x".
$ git fetch origin
$ git checkout -b your-branch-name origin/0.1.x
- Se você está submetendo uma adição ou troca recursos, ramifique da branch "develop".
$ git fetch origin
$ git checkout -b your-branch-name origin/develop
-
Usando seu editor favorito, faça suas alterações, committing no percurso.
-
Procure incluir testes que cubram todas as alterações de código que você fizer. Verifique se o teste falhou sem a sua correção. Execute os testes conforme descrito abaixo.
-
Submeta os commits do seu fork no GitHub e crie uma pull request. E conecte a Issue sendo tratada na pull request.
$ git push --set-upstream fork your-branch-name
Execute a suite básica de testes com o pytest.
$ pytest
Esse comando executa os testes no ambiente atual, que normalmente é suficiente. O CI executará a suite completa de testes quando submeter a pull request.
Você pode executar o conjunto completo de testes com o tox, caso não queira esperar o CI:
-
Instale o pyenv
-
Instale as versões do Python suportadas:
$ PY_VERSIONS=`pyenv install -l | awk '{$1=$1};1' | egrep -v '(-|r|^2|^3\.[0-6]\.)' | tac | sort -u -t'.' -k2,2`
$ echo $PY_VERSIONS | xargs -n1 pyenv install
- Execute o tox:
$ PY_VERSIONS=`pyenv versions | awk '{$1=$1};1' | egrep -v '(-|r|^2|^3\.[0-6]\.)'`
$ echo $PY_VERSIONS | xargs pyenv local
$ tox
A geração de um relatório de linhas que não possuem cobertura de teste pode indicar por onde começar a contribuir. Execute pytest usando o coverage e gere um relatório.
$ coverage run -m pytest
$ coverage html
Abra o arquivo htmlcov/index.html no seu navegador e explore o relatório. Saiba mais sobre o coverage.