Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Atualização de dependências #23

Closed
wants to merge 1 commit into from

Conversation

renatonlima
Copy link
Member

Atualização de dependências:

cryptography==3.4.7
endesive==2.0.6
chardet==4.0.0
xmlsec==1.3.11

Copy link
Member

@rvalyi rvalyi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ver tb #22 que é necessario no Odoo v13 ou v14 para não conflitar

@marcos-mendez
Copy link

@renatonlima eu teste e a versão 1.3.11 não funcionou assim como a 1.3.8 a ultima estável no debian é a 1.2.0

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-install-n39yxflj/xmlsec/setup.py", line 440, in <module>
    package_data={'xmlsec': ['py.typed', '*.pyi']},
  File "/tmp/pip-build-env-vjcaqy5g/lib/python3.7/site-packages/setuptools/__init__.py", line 152, in setup
    _install_setup_requires(attrs)
  File "/tmp/pip-build-env-vjcaqy5g/lib/python3.7/site-packages/setuptools/__init__.py", line 147, in _install_setup_requires
    dist.fetch_build_eggs(dist.setup_requires)
  File "/tmp/pip-build-env-vjcaqy5g/lib/python3.7/site-packages/setuptools/dist.py", line 788, in fetch_build_eggs
    replace_conflicting=True,
  File "/tmp/pip-build-env-vjcaqy5g/lib/python3.7/site-packages/pkg_resources/__init__.py", line 780, in resolve
    new_requirements = dist.requires(req.extras)[::-1]
  File "/tmp/pip-build-env-vjcaqy5g/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2743, in requires
    ) from e
pkg_resources.UnknownExtra: setuptools-scm 6.2.0 has no such extra feature 'toml'

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-n39yxflj/xmlsec/

@renatonlima
Copy link
Member Author

@renatonlima eu teste e a versão 1.3.11 não funcionou assim como a 1.3.8 a ultima estável no debian é a 1.2.0

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-install-n39yxflj/xmlsec/setup.py", line 440, in <module>
    package_data={'xmlsec': ['py.typed', '*.pyi']},
  File "/tmp/pip-build-env-vjcaqy5g/lib/python3.7/site-packages/setuptools/__init__.py", line 152, in setup
    _install_setup_requires(attrs)
  File "/tmp/pip-build-env-vjcaqy5g/lib/python3.7/site-packages/setuptools/__init__.py", line 147, in _install_setup_requires
    dist.fetch_build_eggs(dist.setup_requires)
  File "/tmp/pip-build-env-vjcaqy5g/lib/python3.7/site-packages/setuptools/dist.py", line 788, in fetch_build_eggs
    replace_conflicting=True,
  File "/tmp/pip-build-env-vjcaqy5g/lib/python3.7/site-packages/pkg_resources/__init__.py", line 780, in resolve
    new_requirements = dist.requires(req.extras)[::-1]
  File "/tmp/pip-build-env-vjcaqy5g/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2743, in requires
    ) from e
pkg_resources.UnknownExtra: setuptools-scm 6.2.0 has no such extra feature 'toml'

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-n39yxflj/xmlsec/

@marcos-mendez,

O pacote xmlsec é um pacote do pip, https://pypi.org/project/xmlsec e a versão estável dele é a 1.3.11, agora esse pacote tem algumas dependências que você precisa ter no seu OS para que seja instalado, você pode olhar na página do pip, mas basicamente você tem que ter essas dependências:

apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl

@marcos-mendez
Copy link

@renatonlima eu tenho tudo isso instalado, porém ainda assim quando ele vai instalar o xmlsec ele retorna o erro que coloquei acima. Repare que é um erro que surge nos foruns também há poucos dias

https://github.com/pypa/setuptools_scm/issues

Aqui é possivel ver que não está tão estável assim não, o xmlsec depende deste cara setuptools_scm

@marcos-mendez
Copy link

Screenshot from 2021-08-30 12-44-58

@renatonlima
Copy link
Member Author

Acho que no seu ambiente esta faltando o toml, vc pode instalar pip install toml antes de instalar a lib erpbrasil.assinatura.

Também seria interessante dá uma olhada neste PR #21 para remover o xmlsec

@marcos-mendez
Copy link

@renatonlima eu instalei o toml via python packages e ainda assim ele continua dando o erro.

Eu entendo a questão da PR#21 o problema é: Não é o que está quebrando um monte de instalação.

Segundo problema é que eu não sei como rodar varias PR de uma vez só. Vou procurar um tutorial.

Mesmo assim, é bastante inconveniente, algo que estava funcionando perfeito parou de funcionar. o Ambiente é puro, o clone é limpo, os passos seguidos são os da comunidde. Ter que colocar PR pra rodar algo que estava estável é osso. Pra colocar funcionalidade a mais beleza total sentido, agora para arrumar o que estava funcionando eu acho mto chato.

@renatonlima
Copy link
Member Author

@marcos-mendez,

É importante você entender como funciona o sistema de pacotes do python, conflitos de pacotes é algo que sempre acontece e que esta tentando ser melhorado pela comunidade python. Dá uma olhada neste video sobre https://www.youtube.com/watch?v=_XszPRFHQQ4&t=2672 tem uma boa explicação sobre a arquitetura dos pacotes python e os problemas que existem.

Agora é muito importante você usar o virtualenv (para isolar seus ambientes e não ter conflitos de pacotes) ou usar um container docker como o docky https://github.com/akretion/docky-odoo-brasil, para vc testar o PR vc pode usar o tox que vai fazer alguns testes em um ambiente isolado. Mais tarde eu vou olhar melhor, porque eu vi que um dos builds do PR não rodou.

@marcos-mendez
Copy link

Então @renatonlima eu entendo tudo isso, mas pra mim não faz sentido nenhum usar virtualenv e adicionar mais uma camada na história sendo que eu estou usando container puros (LXC/LXD) unicos isolados e exclusivos para cada instância, não havendo compartilhamento de nenhuma maquina naquele ambiente. Pra mim não faz sentido, é como instalar virtualenv em um servidor dedicado somente a aquela aplicação, não é algo necessário.

Os LXC que são o que eu uso já são container sem a perfumaria do Docky, mais rápidos e mais performáticos pois rodam encima do kernel linux com o debian puro e mais nada, no meu caso estou usando LXC mas da pra usar LXD ou outros do tipo. https://linuxcontainers.org/lxd/getting-started-cli/

De qualquer maneira, qualquer pessoa que instalar uma VM do ZERO com DEBIAN SERVER do zero, der um clone no odoo na l10n-brazil instalar todos os pré-requisitos vai encontrar este erro que esta sendo relatado aqui. Não é possivel finalizar a instalação dos requirements.txt da l10n-brazil por conta desta falha do toml/xmlsec que é exigido pelo erpbrasil.assinatura.

@renatonlima
Copy link
Member Author

Então @renatonlima eu entendo tudo isso, mas pra mim não faz sentido nenhum usar virtualenv e adicionar mais uma camada na história sendo que eu estou usando container puros (LXC/LXD) unicos isolados e exclusivos para cada instância, não havendo compartilhamento de nenhuma maquina naquele ambiente. Pra mim não faz sentido, é como instalar virtualenv em um servidor dedicado somente a aquela aplicação, não é algo necessário.

Os LXC que são o que eu uso já são container sem a perfumaria do Docky, mais rápidos e mais performáticos pois rodam encima do kernel linux com o debian puro e mais nada, no meu caso estou usando LXC mas da pra usar LXD ou outros do tipo. https://linuxcontainers.org/lxd/getting-started-cli/

De qualquer maneira, qualquer pessoa que instalar uma VM do ZERO com DEBIAN SERVER do zero, der um clone no odoo na l10n-brazil instalar todos os pré-requisitos vai encontrar este erro que esta sendo relatado aqui. Não é possivel finalizar a instalação dos requirements.txt da l10n-brazil por conta desta falha do toml/xmlsec que é exigido pelo erpbrasil.assinatura.

Você usar o virtualenv não é adicionar uma outra camada no teu projeto, mas uma prática que é recomendada em qualquer instalação para você ter todas as dependências do seu projeto isolada e independente dos pacotes pythons do seu sistema operacional, se você acha que não precisa usar tudo bem, mas você vai ter que saber lidar com esses problemas ao longo do tempo porque uma simples atualização ou instalação de um pacote no seu OS/Imagem docker pode quebrar a sua instalação, já que você esta usando os mesmo pacotes python do OS.

O problema do erpbrasil.assinatura não é causado por uma mudança no requirement.txt do erpbrasil.assinatura, mas um conflitos de pacotes no seu ambiente. Porque se tivesse algum problema no erpbrasil.assinatura, não estaria rodando o travis e o runbot do projeto da OCA/10n-brazil sem nenhum erro ou conflito!

@marcos-mendez
Copy link

Pra quem só tem martelo todo parafuso é prego. Tá certo. Vou falar nada da parte técnica commit e nome quem tem são vocês eu só estou testando.

Como já expliquei o ambiente é um LXC que é um container, aliás o docker funciona dentro de uma LXC, colocar virtualenv dentro de docker é quenem usar 3 camisinhas não faz sentido nenhum, https://news.ycombinator.com/item?id=6860114

DIzer que as dependencias do sistema operacional são afetadas dentro do docker é não saber como funciona o docker que usar o sistema operacional do hospedeiro para a virtualização. Tipo isso são conceitos básico de arquitetura computacional virtualizada os quais não quero entrar no mérito.

Mas enfim finjo demencia, e testo de novo, instalei uma LXC do zero
Comecei um ambiente novo do zero, DEBIAN 10 Buster
Instalei tudo do zero pacotes, libs, dependencias, apt update && apt upgrade tudo certinho.

INSTALEI O VIRTUALENV!
INSTALEI TODOS OS PACOTES PYTHON

E TARAAAAAAN

Repare no (odoo) entre parentesis do meu virtualenv

`
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-install-n2_4k4mn/xmlsec/setup.py", line 466, in
package_data={'xmlsec': ['py.typed', '*.pyi']},
File "/tmp/pip-build-env-hl6im__v/lib/python3.7/site-packages/setuptools/init.py", line 152, in setup
_install_setup_requires(attrs)
File "/tmp/pip-build-env-hl6im__v/lib/python3.7/site-packages/setuptools/init.py", line 147, in _install_setup_requires
dist.fetch_build_eggs(dist.setup_requires)
File "/tmp/pip-build-env-hl6im__v/lib/python3.7/site-packages/setuptools/dist.py", line 788, in fetch_build_eggs
replace_conflicting=True,
File "/tmp/pip-build-env-hl6im__v/lib/python3.7/site-packages/pkg_resources/init.py", line 780, in resolve
new_requirements = dist.requires(req.extras)[::-1]
File "/tmp/pip-build-env-hl6im__v/lib/python3.7/site-packages/pkg_resources/init.py", line 2743, in requires
) from e
pkg_resources.UnknownExtra: setuptools-scm 6.2.0 has no such extra feature 'toml'

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-n2_4k4mn/xmlsec/
(odoo) root@pijamalandia .../custom-addons/l10n-brazil# `

A PR para arrumar o que esta numa branch main não é solução é gambiarra eu to tentando ver o que faço pra deixar isto funcionando em produção por enquanto um downgrade resolve para o xmlsec 1.2.0

Juro que estou tentando, mas falta um pouco de guia da comunidade neste sentido só estou querendo testar, instalar algo que já instalo todos os dias, funciono todos os dias, não sou retardado.

Por favor pessoal ouçam e leiam o que eu estou falando. Estou testando o que vocês fazem, no mesmo ambiente que sempre faço só não é o mesmo docker de vocês é uma LXC.

Outra coisa acabo de ver o travis e justamente ele falha no mesmo ponto que eu estou falhando nos requirements.txt https://ci.appveyor.com/project/mileo/erpbrasil-assinatura/builds/40508338/job/pdpnne52b5maodgp

Além disso o erro que eu tenho esta profundamente relacionado a isso https://www.gitmemory.com/issue/pypa/setuptools_scm/611/907277757

pypa/setuptools-scm#611
ISSO AQUI ENCIMA é muito importante quem resolveu resolveu com downgrading

marcos-mendez added a commit to marcos-mendez/l10n-brazil that referenced this pull request Aug 30, 2021
Estou propondo esta mudança até estabilizarem o que fizeram com o ERPBRASIL.ASSINATURA na versão 1.2.0 que não está funcionando e deixando a minha vida louca em produção. 
erpbrasil/erpbrasil.assinatura#23
erpbrasil/erpbrasil.assinatura#24
@rvalyi
Copy link
Member

rvalyi commented Aug 30, 2021

Ola @marcos-mendez se instalar no Debian bruto com certeza é melhor para facilitar apesar que como o Renato falou, são muitos projetos Python mais avançados ou modulos Odoo com dependencias um pouco mais exoticas que vc nao conseguiria instalar no Debian bruto sem ter um Virtualenv ou algo do tipo por cima. Fora essa consideração nao estudei muito o problema. Não sei se a soluçao seria de recomendar de puxar esse toml (ta meio esquezito botar isso no requirements.txt do Travis se nao precisa pro Travis), ou trabalhar em tirar o xmlsec da dependencia ou ainda explicar isso no Wiki do projeto. Realmente eu não sei, mas vamos guardar isso em mente com certeza.

@marcos-mendez
Copy link

marcos-mendez commented Aug 30, 2021 via email

@renatonlima
Copy link
Member Author

Pessoal, com o PR #26 não é necessário esse PR, então vou fecha-lo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants