Skip to content

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Joaolpridolficarvalho
Copy link

@Joaolpridolficarvalho Joaolpridolficarvalho commented Mar 25, 2025

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

  • [ x] Eu li o Contributing.md
  • Os testes foram adicionados ou atualizados para refletir as mudanças (se aplicável).
  • [ x] Foi adicionada uma entrada no changelog / Meu PR não necessita de uma nova entrada no changelog.
  • A documentação em português foi atualizada ou criada, se necessário.
  • Se feita a documentação, a atualização do arquivo em inglês.
  • Eu documentei as minhas mudanças no código, adicionando docstrings e comentários. Instruções
  • O código segue as diretrizes de estilo e padrões de codificação do projeto.
  • Todos os testes passam. Instruções
  • O Pull Request foi testado localmente. Instruções
  • [x ] Não há conflitos de mesclagem.

Issue Relacionada

Closes #515
Closes #490

@Joaolpridolficarvalho Joaolpridolficarvalho requested review from a team as code owners March 25, 2025 12:06
Copy link
Contributor

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

Copy link
Contributor

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.

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. 😀

Copy link
Contributor

@devid8642 devid8642 Apr 5, 2025

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

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

Copy link
Author

@Joaolpridolficarvalho Joaolpridolficarvalho Apr 12, 2025

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é.

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.

Atualizar o arquivo requeriments-dev.txt Erro no processo de setup da lib com o pip
2 participants