-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
First install of a large package takes HOURS. #95
Comments
Please don't do that. This is neither helpful nor respectful. I know there isn't a code of conduct here but I ask you to be considerate for the time and effort I put into this project. Dependency resolution is hard and even more so in Python where the packaging is a mess. If you are not happy with the time it takes, you can always consider help the project by contributing. It would be greatly appreciated. Now, regarding the issue you are describing, poetry uses a dependency resolver with a backtracking algorithm. When there is a conflict, it needs to go back and flatten the dependency graph to be sure to not go back to a state that will cause a conflict. In you case there is a lot of conflict due to pinned dependencies. That's why it takes so much time. I don't have a solution for now, unfortunately, but if you feel like tackling this issue I'd gladly review a PR. |
Surely I can write code to fix that. I thought you'd never ask :)
Could you maybe give me some hints on how to approach this in the code? |
@buriy Just so you know it is not currently possible to install
|
Also, I am currently rewriting the resolver from scratch using a new algorithm to hopefully improve things. |
@sdispater I believe this SolverProblemError is misleading again. |
@sdispater also see #96 for a detailed explanation of what's wrong with SolverProblemError. |
@buriy So, like I said I am working on a new resolver and I am happy to tell you that the successful resolution of |
A new prerelease (0.10.0a0) has been published. It contains the new dependency resolver which should speed up things like I said above. So you can give it a try if you want :-) |
@sdispater I'll definitely try, thanks a lot! |
@sdispater 0.10.0a0 version resolution now works very well for this and another project. Now the project works great (when it does), but has a lot of different small quirks:
|
@buriy Would you consider the issue “First install of a large package takes HOURS” as resolved? |
Hi @batisteo, |
Release |
Related to #5896. |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
So it's not usable for typical real projects.
Please speed it up.
Try yourself for "poetry new test; cd test; poetry add -vvv news-please".
Also, it feels like sometimes it does N^2 repetitions of the same kind of calculations (with each pair of colorama and awscli versions, for example ).
: 0: Creating possibility state for awscli (>= 1.11.117.0) (33 remaining)
: 65: Attempting to activate [awscli-1.11.149]
: 65: Activated awscli at [awscli-1.11.149]
: 0: Getting dependencies for awscli-1.11.149
: 65: Requiring nested dependencies (botocore (== 1.7.7.0), colorama (<= 0.3.7.0, >= 0.2.5.0), docutils (>= 0.10.0.0), rsa (<= 3.5.0.0, >= 3.1.2.0), s3transfer (< 0.2.0.0, >= 0.1.9.0), PyYAML (<= 3.12.0.0, >= 3.10.0.0), argparse (>= 1.1.0.0))
PyPI: 11 packages found for colorama <= 0.3.7.0, >= 0.2.5.0
: 0: Creating possibility state for colorama (<= 0.3.7.0, >= 0.2.5.0) (11 remaining)
: 66: Attempting to activate [colorama-0.3.7]
: 66: Found existing spec ([colorama-0.3.9])
: 66: Unsatisfied by existing spec ([colorama-0.3.9])
: 66: Unwinding for conflict: colorama (<= 0.3.7.0, >= 0.2.5.0) to 65
: 0: Creating possibility state for colorama (<= 0.3.7.0, >= 0.2.5.0) (10 remaining)
: 66: Attempting to activate [colorama-0.3.6]
: 66: Found existing spec ([colorama-0.3.9])
: 66: Unsatisfied by existing spec ([colorama-0.3.9])
: 66: Unwinding for conflict: colorama (<= 0.3.7.0, >= 0.2.5.0) to 65
: 0: Creating possibility state for colorama (<= 0.3.7.0, >= 0.2.5.0) (9 remaining)
: 66: Attempting to activate [colorama-0.3.5]
: 66: Found existing spec ([colorama-0.3.9])
: 66: Unsatisfied by existing spec ([colorama-0.3.9])
: 66: Unwinding for conflict: colorama (<= 0.3.7.0, >= 0.2.5.0) to 65
: 0: Creating possibility state for colorama (<= 0.3.7.0, >= 0.2.5.0) (8 remaining)
: 66: Attempting to activate [colorama-0.3.4]
: 66: Found existing spec ([colorama-0.3.9])
: 66: Unsatisfied by existing spec ([colorama-0.3.9])
: 66: Unwinding for conflict: colorama (<= 0.3.7.0, >= 0.2.5.0) to 65
We have a lot of versions for awscli :
...
: 0: Getting dependencies for awscli-1.11.117
: 0: Getting dependencies for awscli-1.11.118
: 0: Getting dependencies for awscli-1.11.119
: 0: Getting dependencies for awscli-1.11.120
: 0: Getting dependencies for awscli-1.11.121
: 0: Getting dependencies for awscli-1.11.122
: 0: Getting dependencies for awscli-1.11.123
: 0: Getting dependencies for awscli-1.11.124
: 0: Getting dependencies for awscli-1.11.125
: 0: Getting dependencies for awscli-1.11.126
: 0: Getting dependencies for awscli-1.11.127
: 0: Getting dependencies for awscli-1.11.128
: 0: Getting dependencies for awscli-1.11.129
: 0: Getting dependencies for awscli-1.11.130
: 0: Getting dependencies for awscli-1.11.131
: 0: Getting dependencies for awscli-1.11.132
: 0: Getting dependencies for awscli-1.11.133
: 0: Getting dependencies for awscli-1.11.134
: 0: Getting dependencies for awscli-1.11.135
: 0: Getting dependencies for awscli-1.11.136
: 0: Getting dependencies for awscli-1.11.137
: 0: Getting dependencies for awscli-1.11.138
: 0: Getting dependencies for awscli-1.11.139
: 0: Getting dependencies for awscli-1.11.140
: 0: Getting dependencies for awscli-1.11.141
: 0: Getting dependencies for awscli-1.11.142
: 0: Getting dependencies for awscli-1.11.143
: 0: Getting dependencies for awscli-1.11.144
: 0: Getting dependencies for awscli-1.11.145
: 0: Getting dependencies for awscli-1.11.146
: 0: Getting dependencies for awscli-1.11.147
: 0: Getting dependencies for awscli-1.11.148
: 0: Getting dependencies for awscli-1.11.149
: 0: Getting dependencies for awscli-1.11.150
: 0: Getting dependencies for awscli-1.11.151
: 0: Getting dependencies for awscli-1.11.152
: 0: Getting dependencies for awscli-1.11.153
: 0: Getting dependencies for awscli-1.11.154
: 0: Getting dependencies for awscli-1.11.155
: 0: Getting dependencies for awscli-1.11.156
: 0: Getting dependencies for awscli-1.11.157
: 0: Getting dependencies for awscli-1.11.158
: 0: Getting dependencies for awscli-1.11.159
: 0: Getting dependencies for awscli-1.11.160
: 0: Getting dependencies for awscli-1.11.161
: 0: Getting dependencies for awscli-1.11.162
: 0: Getting dependencies for awscli-1.11.163
: 0: Getting dependencies for awscli-1.11.164
: 0: Getting dependencies for awscli-1.11.165
: 0: Getting dependencies for awscli-1.11.166
: 0: Getting dependencies for awscli-1.11.167
: 0: Getting dependencies for awscli-1.11.168
: 0: Getting dependencies for awscli-1.11.169
: 0: Getting dependencies for awscli-1.11.170
: 0: Getting dependencies for awscli-1.11.171
: 0: Getting dependencies for awscli-1.11.172
: 0: Getting dependencies for awscli-1.11.173
: 0: Getting dependencies for awscli-1.11.174
: 0: Getting dependencies for awscli-1.11.175
: 0: Getting dependencies for awscli-1.11.176
: 0: Getting dependencies for awscli-1.11.177
: 0: Getting dependencies for awscli-1.11.178
: 0: Getting dependencies for awscli-1.11.179
: 0: Getting dependencies for awscli-1.11.180
: 0: Getting dependencies for awscli-1.11.181
: 0: Getting dependencies for awscli-1.11.182
: 0: Getting dependencies for awscli-1.11.183
: 0: Getting dependencies for awscli-1.11.184
: 0: Getting dependencies for awscli-1.11.185
: 0: Getting dependencies for awscli-1.11.186
: 0: Getting dependencies for awscli-1.11.187
: 0: Getting dependencies for awscli-1.11.188
: 0: Getting dependencies for awscli-1.11.189
: 0: Getting dependencies for awscli-1.11.190
: 0: Getting dependencies for awscli-1.12.0
: 0: Getting dependencies for awscli-1.12.1
: 0: Getting dependencies for awscli-1.12.2
...
The text was updated successfully, but these errors were encountered: