-
-
Notifications
You must be signed in to change notification settings - Fork 72
closes #515 #516
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
base: main
Are you sure you want to change the base?
closes #515 #516
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Atualmente, o arquivo de dependências está utilizando versões relativas para as bibliotecas como em holidays>=0.58
e em ruff>=0.5.0,<0.7.0
. Esse formato pode causar inconsistências ao instalar as dependências usando o pip, já que o pip não sabe exatamente qual versão de cada biblioteca instalar, o que pode levar a versões incompatíveis. Que é o que está acontecendo, instalando seguindo esse requirements a lib holidays é instalada na versão 0.69 e isso quebra um teste.
O projeto usa o poetry para gerenciar as dependências e garantir a consistência das versões. As versões exatas das dependências são definidas no arquivo poetry.lock, e o poetry usa essas versões ao instalar as dependências. No entanto, as dependências no requirements-dev.txt não estão refletindo essas versões específicas. Se você observar no lock do poetry a lib holidays está na versão 0.58.
Solução que eu proponho:
O poetry oferece suporte para exportar as dependências para um arquivo requirements.txt com versões exatas, mas essa funcionalidade foi removida da versão 2.0 do poetry e agora é disponibilizada por meio de um plugin oficial: o poetry-plugin-export. Com esse plugin, você pode gerar um requirements.txt com as versões exatas que o poetry.lock define, garantindo que o ambiente seja instalado com as versões corretas das bibliotecas.
Nos projetos em que trabalho eu uso o uv e o tipo de arquivo de requirements que ele consegue gerar é mais ou menos assim por exemplo:
# This file was autogenerated by uv via the following command:
# uv pip compile pyproject.toml -o requirements-dev.txt
coverage==7.7.1
# via brutils (pyproject.toml)
docopt==0.6.2
# via num2words
holidays==0.58
# via brutils (pyproject.toml)
num2words==0.5.13
# via brutils (pyproject.toml)
python-dateutil==2.9.0.post0
# via holidays
six==1.17.0
# via python-dateutil
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
É claro que também é possível setar as versões das dependências na mão, como são poucas não é algo que vá dar muito trabalho.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bom dia, que teste quebrou? Esse formato permite a atualização das dependências, assim recebendo patches de segurança, mas se for o caso, alteramos isso. 😀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ao rodar make test
o seguinte teste está quebrando:
======================================================================
FAIL: test_data_passada_futura (test_date_utils.TestIsHoliday.test_data_passada_futura)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/media/devid/storage/dev/brutils-python/tests/test_date_utils.py", line 63, in test_data_passada_futura
self.assertTrue(is_holiday(datetime(2150, 12, 25))) # Ano futuro
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: False is not true
----------------------------------------------------------------------
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bom dia, esse teste não está passando, porque há um limite máximo para datas posteriores, por exemplo, ao atualizar o ano para 2100, no máximo, o teste passa. E foram identificados Dependabot na versão atual, justificando a atualização.
Poderia abrir uma issue para isso?
Até.
Descrição
Adiciona as dependências do projeto ao arquivo requiments-dev.txt com base no arquivo
pyproject.toml, facilitando a instalação usado um venv.
Mudanças Propostas
Atualização do arquivo requiments-dev.txt, acrescentando as dependências que faltavam.
Checklist de Revisão
Issue Relacionada
Closes #515
Closes #490