-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Confusing default behaviour of pipenv install 'name' #4055
Comments
Can this be rechecked on |
Sorry, I re-read the issue report, and I have to explain that
This isn't true, what you are asking for is that the default behavior of install to be What you should be doing instead is actually picking proper specifiers for your project in the Thanks for pointing out that other comment in that thread that has so many likes -- to me it represents a complete misunderstanding of what the pip resolver is capable of and the kind of guarantees it provides when you use it properly. Either way |
Issue description
It goes as far as to say that good software doesn't like side effects, or violating the "principle of least surprise". Unfortunately, I have the impression that this is what
pipenv install
does. It updates packages and changes thelock
file where it shouldn't.Expected result
pipenv install package_name
should install the specified (or latest if unspecified) version of the package. E.g.pipenv install --dev yapf
should:yapf = "*"
to[dev-packages]
in PipfileBut it should never touch other packages in Pipfile.lock unless they are direct dependencies of the newly installed package.
Actual result
pipenv install --dev yapf
updates other packages (surprise !), it changes the lockfile where it shouldn't.pipenv update
should be used to update packages and change the lockfile.PS. See this great comment from @joaomcarlos #3150 (comment)
Also, there seems to be some inconsistency between the
--help
message and the actual behaviour of thepipenv install
command without arguments. It seems that nowinstall
(no args) is equivalent tosync
.The text was updated successfully, but these errors were encountered: