-
Notifications
You must be signed in to change notification settings - Fork 14.4k
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
Some test dependencies have no lower bounds #42989
Comments
@potiuk , I think, "lower bound" was given as an example in the warnings.~~ For example, asgiref is currently set to be
@potiuk, I'm a bit confused here. All of the pins in constraints.txt use exact matches ( |
Interesting. Worth taking a closer look. Constraints do not matter here. When we use "lowest-direct", we do not use constraints at all. Those are only used when we (or our users) want to reproducibly install airflow, but for I think the asgiref warning comes from http provider dependencies (see provider.yaml for http provider)
I think fix for that particular one will be to make sure all asgiref dependencies we have use the same lower-bound. BTW. It's also surprising to see asgiref as http provider dependencies - so maybe we should take a look if it is needed at all @rawwar :) ? |
BTW. I see those warnings as a great opportunity to guide us with reviewing some of our dependencies - because like in this case we might have some surprising and not entirely proper dependencies configured in some of our providers :) |
Agreed |
I tried this in the PR: #43001 and it still prints warning for asgiref.
We only use it here(Link) . I will look into it and see if its possible to change this and remove the dependency. |
@potiuk , can you assign me this issue? |
#43074 ? |
@potiuk , i think i misunderstood when you mentioned, "we need to look into packages individually, to avoid issues" Can i raise PRs for miltiple package pins together? As long as tests pass, this should be fine right? Raising a PR for each package separately will take a lot of time to finish this issue. |
I don't see an issue with batching them. @potiuk I'm slightly hesitant to set the minimum purely based on "~6 months old" though. Are we planning to moving those lower bounds for everything, on an ongoing basis? If we do do it based on time alone (like in #43189 seemingly), we should definitely state there is no "real" reason for that being the minimum and we chose something arbitrary, for posterity sake. |
Me neither.
We already have a working solution to detect if we are starting to use features that is not available in "lowest" supported version - there is the "Lowest Dependency test" that does it. So this exercise is really to get "some" baselines on those dependencies. I think we we will generally bring them up usually when we start using something that does not pass test with the lowest possible versions brought down for all dependencies (of partucular provider or airflow core). I am not tied to "6 months" but that sounded like a good baseline. If there is any other proposal how to get the baseline - I am happy to any reasonable proposal there @jedcunningham And generally we avoid to document lower-bounds - it's generally not needed, we pretty much never go down. We must document upper-bounds, but as long as lower-binding works, it's generally ok - unless of course someone has conflicting upper bound limit. But I look at those deps that we miss lower binds, and I don't think there is high risk for that. But if there is any other proposal - I am all ears. |
BTW. We already have a number of some arbitrary lower-bounds - not documented - and I can't recall a single case where it cause problems. |
Some test dependencies have no "lower bounds" - this is not very good because "lowest-direct" dependency resolution might run much longer. Currently when uv is making the resolution, it prints warnings
asgiref
requests-toolbelt
cloudpickle
python-ldap
plyvel
opentelemetry-exporter-prometheus
amqp
virtualenv
types-markdown
types-deprecated
types-pymysql
types-pyyaml
types-aiofiles
types-certifi
types-croniter
types-docutils
types-paramiko
types-protobuf
types-python-dateutil
types-python-slugify
types-pytz
types-redis
types-requests
types-setuptools
types-tabulate
types-termcolor
types-toml
ipykernel
pywinrm
scrapbook
We should make sure that all those dependencies have reasonable lower-bounds . Ideally versions that are not too old (6 months?). We shoudl look at them individually though, to see if there might be potential issues when we are choosing the lower bounds.
The text was updated successfully, but these errors were encountered: