-
Notifications
You must be signed in to change notification settings - Fork 966
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
Airflow Benchmark Regression #5962
Comments
Given that a small change in dependencies could lead to exploring a large part of the resolution graph that doesn't lead to a direct solution, is there a reason you would expect benchmarks to remain stable across dates? |
We don't necessarily expect it to remain stable, but it's worth investigating if we can do better. As a hint, Poetry actually outperforms us on this benchmark now. |
No, but we want to investigate the cause to see if we can do anything for it. |
Well, in that case, I see the min time between 2024-07-19 and 2024-07-20 jump by 35%. And the output diff is quite small:
The metadata in the openai wheel is almost identical, but the metadata in the pyOpenSSL has a change in an upper bound, which in my experience upper bounds are hard for resolvers and uv's main weakness in resolution.
In both versions of resolution cryptography gets resolved to 42.0.8 but on PyPi it is at 43.0.0: https://pypi.org/project/cryptography, so since pyOpenSSL-24.2.1 it appears uv is spending a bunch of time exploring a solution with cryptography 43.0.0 and it eventually leads to a backtrack. Hope that helps. |
I investigated this a little further by pinning apache-airflow (which is far more realistic of its use) and cryptography:
It resolves as impossible, and ends with:
I suspect what you will find is that while uv pins I will again stand by my idea that when resolution hits an upper bound that is below the current pinned version of that upper bound, it is worth going back to an earlier state in the resolution and prioritise the package that is applying the upper bound over the package constrained by the upper bound (rather than exhausting the package that applying the upper bound): #1398 (comment) (although a lot of details need to be worked out, I haven’t had a chance recently to work on this). There may be low hanging heuristics here though that uv could apply before something so complex. |
There's a similar regression with
--universal
. Spotted in #5962.The text was updated successfully, but these errors were encountered: