You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After running pipenv install --dev, Flask 0.10.1 should be installed because 0.10.1 is requested specifically by the main dependencies section, and while the pytest-flask dependency in the dev-packages section also depends on Flask, it does not require any specific version.
Actual
Flask 0.12.2 is installed instead (sometimes, see below)
More Funkyness:
Run pipenv install --dev
The version of Flask that will be installed should be 0.10.1
Re-run pipenv install --dev
The version of Flask that will be installed should still be 0.10.1
Re-run pipenv install --dev
The version of Flask that will be installed will now be 0.12.2
This is true even though the Pipfile specifically requests 0.10.1 in the default section
The Pipfile.lock will show Flask being pinned to 0.10.1 in the default section, but 0.12.2 in the develop section (since pytest-flask depends on no specific flask version and the newest flask release is 0.12.2)
Re-run pipenv install --dev
The version of Flask that will be installed should now be 0.10.1
Repeat steps 5-8 any number of times and the installed version of flask will keep toggling between the requested version (0.10.1) and the latest version (0.12.2)
The Pipfile.lock ends up looking like this after step 3 and remains unchanged through the rest of the steps:
Add Flask = "==0.10.1" to the dev-packages section as well.
To summarize, I'm seeing two problems here:
Pipenv seems to be non-deterministic when installing packages
Pipenv does not obey the requested package version when the same package is depended upon by a package in a different section ('develop'), even if the sub-dependency is not pinned to a specific or conflicting version (e.g. "*")
The text was updated successfully, but these errors were encountered:
Hey @joshfriend this is one we are definitely aware of (your solution is already suggested in #1182 and we have a primary issue tracking it in #1220 (in one of those places the same workaround is recommended). There is also a broader discussion about how to handle this being led in #1255 which you may want to participate in.
I am going to close this out for now, but if you would like to add your documentation to #1220 it might make it easier for whoever tackles this (me, maybe)
Thanks! I've chimed in on #1220 with some more info. I don't have anything to add to #1255 at this time, but I'm subscribing to it and all the related issues.
Setup
Pipfile:
Expected
After running
pipenv install --dev
, Flask 0.10.1 should be installed because 0.10.1 is requested specifically by the main dependencies section, and while thepytest-flask
dependency in thedev-packages
section also depends on Flask, it does not require any specific version.Actual
Flask 0.12.2 is installed instead (sometimes, see below)
More Funkyness:
pipenv install --dev
pipenv install --dev
pipenv install --dev
Pipfile
specifically requests 0.10.1 in the default sectionPipfile.lock
will show Flask being pinned to 0.10.1 in the default section, but 0.12.2 in the develop section (sincepytest-flask
depends on no specific flask version and the newest flask release is 0.12.2)pipenv install --dev
The
Pipfile.lock
ends up looking like this after step 3 and remains unchanged through the rest of the steps:Pipfile.lock
Workaround:
Add
Flask = "==0.10.1"
to thedev-packages
section as well.To summarize, I'm seeing two problems here:
"*"
)The text was updated successfully, but these errors were encountered: