Today I learned the hard way about pip's
--upgrade default behavior.
I wanted to upgrade a package and ended upgrading all it's dependencies, thus breaking my web app and wasting time hunting down the cause of the problem.
As clearly stated in the docs, the default behavior is to do a recursive installation, meaning upgrading every dependency to its latest available version even if already satisfied.
So I guess the title isn't really fair since this was clearly a product of me not RTFMing. I hope this works both as a reminder and a warning to be more careful in the future.
On the bright side, I understood why it's better to use
--no-deps to not only
prevent this but to ensure the exact stated packages will be installed when
working with a requirements.txt file.