telefonicasc / etl-framework

Framework de ETLs (librerias, documentación, best practices, etc.)
GNU Affero General Public License v3.0
2 stars 6 forks source link

Conflictos de dependencias cuando la ETL usa las mismas dependencias que la libreria pero en otro número #12

Open fgalan opened 2 years ago

fgalan commented 2 years ago

Cuando se hace el pip install de una ETL que use la libreria, si el requirements.txt de dicha ETL usa alguno de los paquetes de los que depende la libreria puede haber conflictos.

Pe. requirements usa requests==2.26.0 obtenemos este error:

The conflict is caused by:
    The user requested requests==2.26.0
    tc-etl-lib 0.1.0 depends on requests==2.21.0

Entiendo que el fix estará relacionado con esta parte del setup.py y que podría arreglarse haciendo el requirimiento más laxo (pe. "número de verseión mínimo" en vez de "número de versión exacto")

https://github.com/telefonicasc/etl-framework/blob/master/python-lib/tc_etl_lib/setup.py#L37-L41

Igual está explicando en la literatura como hacer esto de forma óptima

fgalan commented 1 year ago

Pesco de https://github.com/telefonicasc/etl-framework/pull/46#discussion_r1050750260 lo siguiente:

la literatura parece que concuerda: https://packaging.python.org/en/latest/discussions/install-requires-vs-requirements/

It is not considered best practice to use install_requires to pin dependencies to specific versions, or to specify sub-dependencies (i.e. dependencies of your dependencies). This is overly-restrictive, and prevents the user from gaining the benefit of dependency upgrades.