-
-
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
Documentation: --ignore-pipfile
should be more clear; mention pipenv sync
#3150
Comments
Hi, could you please clarify pipenv install, pipenv install --deploy, pipenv install --ignore-pipfile, a combination of both, and pipenv sync? Seems like a lot of variations to me… |
Without forgetting that pipenv install --system seems to be appropriate for building docker images… |
The docs are totally unclear It seems like the default when doing Re-reading the docs it seems that
(whereas presumably But then what does The docs say:
It is not clear what this actually means in practice. I think it means that if you have installed/updated packages outside of pipenv, leaving your |
先這樣好了,至少更新 README `--ignore-pipfile` 看起來[有點神秘](pypa/pipenv#3150) ,感謝幫忙測試~
This is extremely confusing. What I think it should be (and already is ... for the most part):
|
Totally agree with @joaomcarlos , perhaps it deserves its own GH Issue? Also, it seems that the behaviour of
which is not true anymore because:
|
@joaomcarlos If I correctly read the docs, The other issues raised here are problematic tho and that would be great to see them addressed. |
What you are describing is
I disagree; the lock file should always be used to install dependencies, things like
Agreed. I think it was born from people want to be able to install from just a lock file in their CI and not provide the Pipfile, but I am not sure what it does in this case, it couldn't possibly relock right?
As you mentioned prior you should have your lock file checked in to source control, so it shouldn't be a surprise that installing or updating a requirement will result in a lock file change. I never really use
Again, I don't think we should warn about updating the lock file, it should be expected that anytime a package updates, that the whole lock file should be recalibated based on the pip resolver results, and the appropriate updates to the lock file should be made. Otherwise there is no updating a package without adjusting the lock file.
I argue this does make sense, install should not default to installing development depndencies you need locally but not in production. Plus now with named package categories it does make sense because you can have arbitrarily many package groups, and your intentions for them are generally to isolate things by platform, or environment and so it would never make sense to have
Overall though this is quite valuable and shows that we need to do a total overhaul of the documentation. |
@matteius Glad to see this issue summoned from the dead and into the light. I had totally forgotten I had made a comment to this issue, and largely my mind hasn't changed, but to clarify, the intention of what I said is not to describe what it DOES, but rather what the commands SHOULD do based on the combination of words in them. Example: Its not very useful to teach to a colleague something like, "oh, use sync instead" when you want to install because Hopefully the word install does not mean different things to different people, and to clarify: my understanding of "install" is when you got a set of well defined (locked) files (code or other deliverables) and you simply want to put them into the system so they are available. Which is roughly what happens when you "install" something on a computer using an installer.
Your example of Ultimately, the commands can be whatever anyone wants, Edit: judging from the amount of upvote emojis on my other comment, I am pretty sure I am not alone. This could also be because other package managers from other languages follow the naming convention I suggested for the commands and people are used to them? I don't know. |
@joaomcarlos What it does and what it should do are perhaps two different things, but believe I am not the original author of The install phase is lock + install, I don't think that is wrong and I am not going argue that install doesn't imply installation, it does, but why think that install does not imply re-locking based on your Pipfile specifiers? I also won't argue for or against any of the core command names, because I didn't come up with them, I just support what it is that they do and try to improve things in non breaking ways. For example, we worked to factor the I don't really have a lot more to say on this topic, other than I feel strongly there is more code cleanup and refactor to do before we can really consider what a command interface rewrite might be like. |
@matteius Totally understand your position. And i commend you for helping pipenv moving forward. We need pipenv to keep moving forward, and the fact that we are still using it speaks volumes! As you said, documentation could be a little bit more clear. I understand not wanting to break backwards compatibility (thanks btw, makes my life easier), however if things should be changed, then breaking backwards compatibility most sometimes be done in order to guarantee a healthy future. You aren't there yet ... totally understand! That bridge will be crossed when we get there. About "install" meaning "lock + install", well, if you have to explain that "install" is actually "install + lock" perhaps thats not the best name. Or maybe, that is just implicit WHEN a few factors happen, thats totally understandable, if pipfile has new packages for example it could make sense also install those if an optional parameter is added (this parameter could be instructed by a warning like "New packages found in pipfile, install them using --install-new" ... or something similar, its just an idea. Anyway, I do not aim to be a downer but rather perhaps try and contribute by pointing it out. Thank you for your work! |
Hi all so I’ve followed this discussion, and agree with the general sentiment: as a new user of
Am I missing something? |
@b-rodrigues Hi, what you would want is instead Cheers. |
Thanks for clarifying @joaomcarlos ! Yeah I definitely agree that I was not expecting In R there's the Perhaps |
Sorry, but there’s still something that confuses me. If I install packages by specifying their versions (as well as a python version,
In this case, wouldn’t |
We've talked about this in the comments for other issues, for many people (including me) the behaviour of |
@januszm I believe now that we are planning semver releases, the next major release we are hoping to switch the behavior of |
Laugh all you want, but I've really been doing my best to drive this project forward in my spare time. I have been using pipenv for about 2-years and 2-months and helping as one of 2 maintainers for just about 2 years. I'm not going to lie and say everything has been a perfect release with no regressions, but I hope that if you have been following along and look at the code base 2+ years ago to now you would actually see big improvements and actually be able to trace through the code and understand better what its doing. Were any of the original authors around to explain their rationale or help out with the changes? Not really. I'm not going to enumerate every accomplishment in this thread, but I think its totally reasonable that we have taken the position of not changing things like this until we have gained enough confidence and understanding to do so. It also makes sense why some things have broken in releases, but we have always done our best to patch them in some kind of timely fashion. I encourage everyone else to contribute more because I am not going to magically end up with more time to solve the world of pipenv overnight. |
I respect the time and effort you put into it, really. The smiley is related to "non-seasoned" thing, it's all good man! I'm glad there'll be a change in the next major release as me and my team are using pipenv all the time for all Python projects! |
@matteius I hear you, and I appreciate the time and effort you've put towards this and other OSS projects. I'm sorry that other people feel that they own your time. They don't. It's easier to complain than to act, and they're the ones complaining, while you're the one acting. Thank you. |
Thanks for understanding, its been a long few months to deliver a major project this week on my end. |
Hi @matteius , thanks for all your hard work on this! It’s truly appreciated. |
The
--ignore-pipfile
flag reads:That would suggest it always installs dependencies as per the
Pipfile.lock
file which doesn't exactly seem to be the case.pipenv sync
was added and only in the advanced documentation it mentions:That distinction seems to be key and shouldn't be hidden in the advanced section.
An intuitive command for installing dependencies is
pipenv install
which was used before. It would make sense that if the documentation forpipenv install
would itself point topipenv sync
as both are installing dependencies. And it's not obvious one should maybe look forpipenv sync
.The text was updated successfully, but these errors were encountered: