-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Concretizer is unable to automatically determine last package version to support python 2 #12431
Description
Many python packages (rightfully) dropped Python 2 support and started to require Python 3 in their latest versions, for example numpy, scipy, pandas, matplotlib etc. and there are plans to change the default Python version to 3 (#10319).
However, currently spack is unable to determine the last version to still support Python 2 during concretization and instead returns a concretization error. I think this is related to #11659.
Since we are currently in the process of transitioning from py2 to py3, we provide the same set of packages depending on different versions of Python. This issues requires us to manually specify versions of affected packages for both each major Python release.
Plus, we will need to keep up support for internally used legacy software still relying on Python 2 so just dropping Python 2 and be done with it is no option in the near future.
Steps to reproduce the issue
Choose one of the following commands:
$ spack spec 'py-numpy ^[email protected]'
$ spack spec 'py-scipy ^[email protected]'
$ spack spec 'py-matplotlib ^[email protected]'
$ spack spec 'py-pandas ^[email protected]'Error Message
Input spec
--------------------------------
py-scipy
^[email protected]
Concretized
--------------------------------
==> Error: An unsatisfiable version constraint has been detected for spec:
[email protected]%[email protected]+bz2+ctypes+dbm+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4~uuid+zlib arch=linux-archrolling-x86_64
while trying to concretize the partial spec:
[email protected]%[email protected] arch=linux-archrolling-x86_64
py-scipy requires python version 3.5:, but spec asked for 2.7.16@tgamblin I took from #11659 that you a working on a new concretizer, is there an ETA on when the new concretizer will be able to extract the required version information from the package definitions?