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
resolvelib: emit Requires-Python dependency first (#13270)
This makes the resolver always inspect Requires-Python first when
checking a candidate's consistency, ensuring that no other candidates
are prepared if the Requires-Python check fails.
This regression was masked due to a broken test which checked for the
(nonpresence of the) wrong package name.
The resolvelib provider was also updated to return dependencies lazily.
While ideally we wouldn't prepare candidates unnecessarily, pip has grown
numerous metadata checks (for reporting bad metadata, skipping candidates
with unsupported legacy metadata, etc.) so it's infeasible to stop
preparing candidates upon creation (without a serious architectural
redesign). However, we can create the candidates one-by-one as they're
processed instead of all dependencies at once.
This is necessary so the resolver can process Requires-Python first
without processing other dependencies.
Co-authored-by: Tzu-ping Chung <[email protected]>
0 commit comments