Ir para o conteúdo

Contribuindo

O SysIdentPy é um projeto comunitário, portanto todas as contribuições são bem-vindas! Existem muitos casos de uso possíveis na área de Identificação de Sistemas e não podemos testar todos os cenários sem a sua ajuda! Se você encontrar algum bug ou tiver sugestões, por favor reporte-os no issue tracker no GitHub.

Recebemos novos contribuidores de todos os níveis de experiência. Os objetivos da comunidade SysIdentPy são ser prestativa, acolhedora e eficaz.

Ajude outros com issues no GitHub

Você pode ver as issues existentes e tentar ajudar outros, na maioria das vezes são perguntas para as quais você já pode saber a resposta.

Acompanhe o repositório do GitHub

Você pode acompanhar o SysIdentPy no GitHub (clicando no botão "watch" no canto superior direito):

Se você selecionar "Watching" em vez de "Releases only", receberá notificações quando alguém criar uma nova issue.

Assim você pode tentar ajudá-los a resolver essas issues.

Documentação

A documentação é tão importante quanto a própria biblioteca. O inglês não é a língua principal dos autores, então se você encontrar algum erro de digitação ou algo errado, não hesite em nos avisar.

Criar um Pull Request

Você pode contribuir com o código-fonte através de Pull Requests, por exemplo:

  • Para corrigir um erro de digitação que você encontrou na documentação.
  • Para compartilhar um artigo, vídeo ou podcast que você criou ou encontrou sobre o SysIdentPy.
  • Para propor novas seções de documentação.
  • Para corrigir uma issue/bug existente.
  • Para adicionar um novo recurso.

Ambiente de desenvolvimento

Estes são alguns passos básicos para nos ajudar com o código:

  • Instalar e configurar o Git no seu computador.
  • Fork o SysIdentPy.
  • Clone o fork na sua máquina local.
  • Criar uma nova branch.
  • Fazer alterações seguindo o estilo de codificação do projeto (ou sugerindo melhorias).
  • Executar os testes.
  • Escrever e/ou adaptar testes existentes se necessário.
  • Adicionar documentação se necessário.
  • Commit.
  • Push para o seu fork.
  • Abrir um pull_request.

Ambiente

Clone o repositório usando

git clone https://github.com/wilsonrljr/sysidentpy.git

Se você já clonou o repositório e sabe que precisa mergulhar fundo no código, aqui estão algumas diretrizes para configurar seu ambiente.

Ambiente virtual com venv

Você pode criar um ambiente virtual em um diretório usando o módulo venv do Python ou Conda:

$ python -m venv env
conda create -n env

Isso criará um diretório ./env/ com os binários do Python e então você poderá instalar pacotes para esse ambiente isolado.

Ativar o ambiente

Se você criou o ambiente usando o módulo venv do Python, ative-o com:

source ./env/bin/activate
.\env\Scripts\Activate.ps1

Ou se você usa Bash no Windows (ex: Git Bash):

source ./env/Scripts/activate

Se você criou o ambiente usando Conda, ative-o com:

conda activate env

Para verificar se funcionou, use:

$ which pip

some/directory/sysidentpy/env/Scripts/pip
$ Get-Command pip

some/directory/sysidentpy/env/Scripts/pip

Se mostrar o binário pip em env/bin/pip, então funcionou.

Tip

Toda vez que você instalar um novo pacote com pip nesse ambiente, ative o ambiente novamente.

Note

Usamos o pacote pytest para testes. As funções de teste estão localizadas em subdiretórios de testes em cada pasta dentro do SysIdentPy, que verificam a validade dos algoritmos.

Dependências

Instale o SysIdentPy com as opções dev e docs para obter todas as dependências necessárias para executar os testes

pip install "sysidentpy[dev, docs]"

Documentação

Primeiro, certifique-se de configurar seu ambiente conforme descrito acima, isso instalará todos os requisitos.

A documentação usa MkDocs e Material for MKDocs.

Toda a documentação está em formato Markdown no diretório ./docs/.

Verificar as alterações

Durante o desenvolvimento local, você pode servir o site localmente e verificar quaisquer alterações. Isso ajuda a garantir que:

  • Todas as suas modificações foram aplicadas.
  • Os arquivos não modificados estão sendo exibidos conforme esperado.
$ mkdocs serve

INFO     -  [13:25:00] Browser connected: http://127.0.0.1:8000

Isso servirá a documentação em http://127.0.0.1:8008.

Dessa forma, você pode continuar editando os arquivos fonte e ver as alterações ao vivo.

Warning

Se alguma modificação quebrar o build, você terá que servir o site novamente. Sempre verifique seu console para garantir que está servindo o site.

Executar testes localmente

É sempre bom verificar se suas implementações/modificações não quebram nenhuma outra parte do pacote. Você pode executar os testes do SysIdentPy localmente usando pytest na respectiva pasta para realizar todos os testes dos sub-pacotes correspondentes.

Exemplo de como executar os testes:

Abra um emulador de terminal de sua escolha e vá para o diretório principal, ex:

\sysidentpy\

Basta digitar pytest no emulador de terminal

pytest

e você obtém um resultado como:

========== test session starts ==========

platform linux -- Python 3.7.6, pytest-5.4.2, py-1.8.1, pluggy-0.13.1

rootdir: ~/sysidentpy

plugins: cov-2.8.1

collected 12 items

tests/test_regression.py ............ [100%]

========== 12 passed in 2.45s ==================