deezer / spleeter

Deezer source separation library including pretrained models.
https://research.deezer.com/projects/spleeter.html
MIT License
25.87k stars 2.84k forks source link

[Feature] Relax dependency pinning / comment on necessity. #365

Open JamesOwers opened 4 years ago

JamesOwers commented 4 years ago

Description

It's difficult for me to use your software within another project because you've pinned versions of packages (as opposed to specified a minimal requirement).

Resolution

Please may you either relax these specifications in requirements.txt and setup.py e.g. pandas==0.25.1 -> pandas>=0.25.1, or provide a pointer as to why these are required. If I know why they are required, this may really help me fork your project and make edits required to get your software working within mine!

Many thanks!

mmoussallam commented 4 years ago

Hi @JamesOwers

Thanks for the suggestion we'll look into it. We've pinned to specific versions we know for sure are compatible with our code and to avoid getting issues raised each time a dependency breaks something in its API. I guess you can always upgrade them and still use spleeter most of the time.

JamesOwers commented 4 years ago

Hello @mmoussallam - thanks for your quick response.

Yup, though my issue is that other packages are sometimes requiring a lower version, e.g. of panda, so I was wondering if there were specific features of the newer versions you were relying on.

However, understand this is a pain, and no doubt there is a way of me working round it myself. I'm relatively new to python packaging, so just struggling with adding your package to my install_requires.

mhsmith commented 4 years ago

Yes, libraries shouldn't usually require exact versions of dependencies, because if two libraries both do that, it'll probably be impossible to satisfy both of their requirements at the same time.