-
Notifications
You must be signed in to change notification settings - Fork 247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recursive dependency upgrades should be subject to global version constraints #378
Comments
I'm not sure I'm reading this right. You have forced
|
Thanks for your response, I don't think the problem is that PIP is ignoring the scipy request, I think the problem is that passing the --upgrade flag to pip when it tries to install Theano is causing pip to try to upgrade scipy. The pip documentation indicates that the --upgrade flag is "recursive regardless of whether a dependency is already satisfied". I've attached two sets of logs for you to have a look at. Our full list of dependencies is:
Our build is a bit more complex than what I originally explained. We cannot simply 'pip install scipy' (We are building on Windows and there are no Windows .whl packages in Pypi. 'pip install scipy' downloads the scipy source package which requires Visual Studio and a bunch of other dependencies). So to avoid having to install Visual Studio, our build script pre-installs a local .whl copy of Scipy before we try to run Pybuilder install-dependencies. I've attached logs from two Pybuilder runs:
So maybe the fact that scipy is already installed is causing pybuilder to not pass it through to pip? install_batch_with_scipy_pre_installed.txt |
Ah, sorry about that. Yep, this needs fixing as this is not the intended behavior. |
Dev notes:
The answer for this is to ensure that no matter what you install, the dependency constraints are always observed.
|
Constraints work
|
…straints fixes pybuilder#378, connected to pybuilder#378
…straints fixes pybuilder#378, connected to pybuilder#378
…straints fixes pybuilder#378, connected to pybuilder#378
…straints fixes pybuilder#378, connected to pybuilder#378
…straints fixes pybuilder#378, connected to pybuilder#378
…straints fixes pybuilder#378, connected to pybuilder#378
…straints fixes pybuilder#378, connected to pybuilder#378
…straints fixes pybuilder#378, connected to pybuilder#378
@BackroomGibbon please upgrade to latest |
@arcivanov I've just tested it and confirmed it works. Thanks for your help! |
Hi,
The changes to the installation of dependencies in the latest version of pybuilder (0.11.8) seem to be causing problems for a couple of our builds.
Our project has a dependency on a specific version of scipy (0.17.0), we are not ready to upgrade to the latest version of scipy (0.18.0).
We also have a dependency on Theano (any version), which itself also depends on scipy, however it's dependency on scipy is only >= 0.11.1.
Our pybuild script dependencies looks like:
`
`
Up until now this has worked for us because we've set the 'install_dependencies_upgrade' flag to False, so that when Theano is installed, it doesn't try to upgrade scipy.
Having looked through the code for 0.11.8 pybuilder, it looks like that flag is no longer being used, with the upgrade flag being passed through as True by default. This causes pip to try to upgrade scipy to 0.18.0 and leads to build failures due to our code not supporting the latest version of scipy.
It looks like this issue has arisen out of the fix for #340. Is there another way to prevent pip upgrading dependencies?
The text was updated successfully, but these errors were encountered: