Description
Summary
ATM on neurodebian 16.04 (as reported by heudiconv user):
root@220692f29c37:/# nipypecli
Traceback (most recent call last):
File "/usr/bin/nipypecli", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2927, in <module>
@_call_aside
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2913, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 637, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 650, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 829, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'prov==1.5.0' distribution was not found and is required by nipype
and it is because of very strict prov requirement within nipype/info.py . Unfortunately "git log" exploration of changes done for that in 3500213 (to go from 1.4.0 to 1.5.0) and in 9915615 (to restrict to be 1.5.0) gave no information why 1.4.x isn't good enough, and why 1.5.1 would be bad.
What about
- using
nipype/info.py
for specifying min compat version - restricting (if really needed) to a specific version in requirements.txt (for specific deployments)
which is I think a common approach AFAIK. Also would be nice to have either commit messages or some comments above those version specifications to say why that version and not any earlier.
FWIW -- in debian/control I do build-depend on python-prov but without versioned restriction. Tests seems to pass - does it mean that 1.4.0 is good enough or just that the code depending on prov isn't tested?