Pular para o conteúdo principal

Atualização da Biblioteca BrERP Web Service Connector - Python

O brerpwsc-python

Com o intuito de facilitar as requisições aos Web Services SOAP do BrERP, uma série de bibliotecas foram criadas, dentre elas, o brerpwsc-python. Este conector é um projeto open source, e como tal, tem seu código publicado sobre a licença GPL-3 no GitHub da devCoffee. Além disso, visando facilitar ainda mais sua utilização, o brerpwsc-php foi publicado no Pypi, um gerenciador de pacotes Python. Desta forma, ele pode ser instalado em seu ambiente de desenvolvimento python com um simples comando:

pip intall brerpwsc

Atualizando o projeto no GitHub

O brerpwsc-python está publicado no GitHub sobre o seguinte link:

https://github.com/devcoffee/brerpwsc-python

brerpwsc-php-github-repository

Clonando o Repositório e Consolidando Alterações

Para clonar o repositório, basta executar o comando dentro de seu workspace:

git clone https://github.com/devcoffee/brerpwsc-python

Feito isso, utilize um editor de código de sua escolha para fazer as alterações necessárias, e por fim, consolide suas alterações no repositório através dos comandos:

git add .
git commit -m "Sua mensagem de commit intuitiva e objetiva aqui"
git push -u origin master

Publicando uma Nova Release no GitHub

Após consolidar suas mudanças, libere uma nova release no GitHub, ao clicar na aba releases e após em draft new release.

release1.0-draft

Na tela de publicação descreva as modificações e informações intuitivas e objetivas sobre a nova release, como correções de bugs e novas features, e incremente o contador de versão

PublishingNewReleaseGitHub

Atualizando o pacote no Pypi

Pypi é um repositório de bibliotecas Python, e todos os pacotes lá publicados, ficam disponíveis para serem instalados diretamente, via pip, ou pipenv. O projeto brerpwsc-python está publicado no Pypi sobre o seguinte link:

https://pypi.org/project/brerpwsc/

O processo de atualização no Pypi é um pouco verboso, uma vez que o projeto deve ser preparado localmente, e publicado por um utilitário chamado twine.

Ajustes no Setup

O primeiro passo para se atualizar o pacote, é atualizar a versão incremental no arquivo setup.py, encontrado na raíz do projeto.

PublishingNewReleaseGitHub

É extremamente importante incrementar de forma coerente o contador de versões, uma vez que o Pypi tem uma gerencia muito forte de versões, e não aceitará uploads de versões iguais de um pacote.

Compilando o pacote

O próximo passo, é compilar o pacote em um arquivo .tar.gz. Para isso, execute o arquivo setup.py com o parâmetro sdist

pythonSetupDist.png

python setup.py sdist

Após executado o comando, note que uma nova pasta, contendo o projeto compilado em um arquivo .tar.gz foi criada.

pythonDistContent.png

O arquivo MANIFEST

Existe um arquivo nomeado como MANIFEST na raiz do projeto. Este arquivo descreve quais arquivos devem ser compilados para a distribuição.

MANIFEST

Portanto, sempre que uma nova classe de interesse for adicionada ao projeto, ela deve ser adicionada ao arquivo MANIFEST, caso contrário, não será inclusa no pacote distribuído.

Criando o arquivo .pypirc

Os parâmetros para o upload do pacote devem ser definidos em um arquivo chamado .pypirc no diretório home do usuário. Esse arquivo possui parâmetros de login e de url de repositórios alternativos, como o pypi-test, um servidor teste de distribuição de arquivos. Dito isso, crie um arquivo .pypirc em sua home com o seguinte layout:

[distutils]
index-servers=
pypi
pypitest

[pypi]
username = usuário
password = senha

[pypitest]
repository = https://test.pypi.org/legacy/
username = usuário
password = senha

pypirc.png

Publicando o arquivo via twine

Com o arquivo pypirc configurado, e o projeto pronto para a distribuição, resta apenas publica-lo. Para isso, execute o seguinte comando no terminal:

twine upload dist/* -r pypi

O argumento pypi referencia o parâmetro de mesmo nome, configurado no arquivo .pypirc. Desta forma, caso fosse desejado enviar o arquivo para um ambiente de teste, e geralmente é muito desejável, bastaria trocar o argumento para pypytest

twine upload dist/* -r pypitest

Realizado este procedimento sem erros, o pacote já estará disponível em sua nova versão para ser instalado via pip ou pipenv em seu ambiente de desenvolvimento python