meinardmueller/synctoolbox

Installation issues due to restrictive package versions

Closed this issue · 3 comments

installation on google colab requires a certain amounts of uninstalls to meet the requirements by the synctoolbox dependencies:

ERROR: jupyter-console 5.2.0 has requirement prompt-toolkit<2.0.0,>=1.0.0, but you'll have prompt-toolkit 3.0.19 which is incompatible.
ERROR: google-colab 1.0.0 has requirement ipython~=5.5.0, but you'll have ipython 7.25.0 which is incompatible.
ERROR: libfmp 1.1.2 has requirement ipython==7.8.*, but you'll have ipython 7.25.0 which is incompatible.
ERROR: libfmp 1.1.2 has requirement matplotlib==3.1.*, but you'll have matplotlib 3.2.2 which is incompatible.
ERROR: libfmp 1.1.2 has requirement numpy==1.17.*, but you'll have numpy 1.19.5 which is incompatible.
ERROR: libfmp 1.1.2 has requirement pandas==1.0.*, but you'll have pandas 1.1.5 which is incompatible.
ERROR: libfmp 1.1.2 has requirement scipy==1.3.*, but you'll have scipy 1.4.1 which is incompatible.

this is mainly caused by the frozen requirements of libfmp. To address this, a new release of libfmp on pypi should be issued (see meinardmueller/libfmp#4) and synctoolbox should dependent only on that version (v1.1.3?)

Hi faroit,

thanks for raising this issue! We will update the Sync Toolbox to depend on the updated libfmp once that pypi package has been created. Regarding the problems faced by lutzhamel, I think this was rather caused by a missing libsndfile installation, see #3

Also, to me, it looks like dependency ranges are based on guesses, assuming that only the next major point release could potentially break the software.

setup.py states:

    install_requires=['ipython >= 7.8.0, < 8.0.0',
                      'librosa >= 0.8.0, < 1.0.0',
                      'matplotlib >= 3.1.0, < 4.0.0',
                      'music21 >= 5.7.0, < 6.0.0',
                      'numba >= 0.51.0, < 1.0.0',
                      'numpy >= 1.17.0, < 2.0.0',
                      'pandas >= 1.0.0, < 2.0.0',
                      'pretty_midi >= 0.2.0, < 1.0.0',
                      'pysoundfile >= 0.9.0, < 1.0.0',
                      'scipy >= 1.3.0, < 2.0.0',
                      'libfmp >= 1.1.0, < 2.0.0'],

potential problems with these dependencies include:

  • using ranges without knowing for sure if the maximum supported version still works with this software can lead to potential issues in the future.
  • using numeric versions with pip such as <1.0.0 still allows beta versions such as 1.0.0a0which might potentially break the software

I would suggest to relax the upper range of the dependencies and update the package dependencies as needed and instead rely on unit testing and continuous integration (for example adding https://dependabot.com)

openjournals/joss-reviews#3434

I've updated the minimum required libfmp version. Now, no more conflicts are arising during installation of this package.

Regarding the upper version limits: This choice was inspired by semantic versioning, where we expect that only major updates will introduce breaking changes. We are aware that this assumption is violated very often but felt that this was a good compromise.

Thanks for your suggestion to use dependabot etc. We can discuss this in issue #5