-
Notifications
You must be signed in to change notification settings - Fork 14.8k
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
Implement per-provider tests with lowest-direct dependency resolution #39946
Implement per-provider tests with lowest-direct dependency resolution #39946
Conversation
e68fbed
to
f6c5987
Compare
Does this PR assume all cross-provider dependencies should be expressed as extras (in terms of python packaging, added in Edit: While the initial checks cover transitive dependencies, they don't account for potential issues that may arise when using different providers with different versions of OpenLineage. For instance, consider a scenario where:
This leaves a gap in testing, as it doesn't ensure that provider B version B.Y can seamlessly integrate with the older OpenLineage provider A.X, unless we assume that users would always install provider B with the [openlineage] extra. |
Unfortunately the way it works in Python, those "extra" limits are not enforceable, and It makes little sense to add them (and verify). There is really no good way to speciffy "if you want to install this optional dependency, it has to follow those limits" - there are multiple scenarios where even with those limits set on extra, user will be able to perform a sequence of upgrades to break it, and at any point in their process even |
f6c5987
to
71fab0d
Compare
ed99adc
to
8eb947e
Compare
f7e1e1c
to
0bbe8b9
Compare
Fully agreed. Do you still think that would be worth adding different kind of tests too? |
Sure - we can think of next steps and once we get this one merged, you could add a similar follow-up PR with those checks :) |
2bbb5be
to
8ad1ea7
Compare
cc: @charliermarsh -> thanks to Also @notatallshaw -> this is probably as close as it can get to the #39100 you opened and likely will make your |
d01e164
to
1f17772
Compare
With this change we are running tests of downgrading Airflow dependencies to "lowest-direct" ones - separately for "core" tests and for each provider (and run corresponding tests with it). This should allows us to determine what are the lowest bounds for the dependencies - for Airflow and for individual providers and continue doing it while Airflow evolves in the future. Fixes: apache#35549 Related: apache#39100
1f17772
to
986ca14
Compare
And merged :) |
BTW. When it comes to |
…apache#39946) With this change we are running tests of downgrading Airflow dependencies to "lowest-direct" ones - separately for "core" tests and for each provider (and run corresponding tests with it). This should allows us to determine what are the lowest bounds for the dependencies - for Airflow and for individual providers and continue doing it while Airflow evolves in the future. Fixes: apache#35549 Related: apache#39100
…apache#39946) With this change we are running tests of downgrading Airflow dependencies to "lowest-direct" ones - separately for "core" tests and for each provider (and run corresponding tests with it). This should allows us to determine what are the lowest bounds for the dependencies - for Airflow and for individual providers and continue doing it while Airflow evolves in the future. Fixes: apache#35549 Related: apache#39100
The output of parallel tests especially for lowest-direct tests is very long because we are printing state every 10 seconds and there are many paralell test types (90+ for lowest direct). We do not need to print progress that often, and it has already been added in apache#39946 but one place to add it was missing - context manager still had the default 10 seconds refresh time. After this change the output will be printed every 20 seconds in the regular tests and every 2 minutes in "lowest-direct" tests (controlled by env variable) so the output should be much easier to find reasons for issues.
The output of parallel tests especially for lowest-direct tests is very long because we are printing state every 10 seconds and there are many paralell test types (90+ for lowest direct). We do not need to print progress that often, and it has already been added in #39946 but one place to add it was missing - context manager still had the default 10 seconds refresh time. After this change the output will be printed every 20 seconds in the regular tests and every 2 minutes in "lowest-direct" tests (controlled by env variable) so the output should be much easier to find reasons for issues.
@potiuk did you hear back from the MWAA team? The issue is that MWAA pins watchtower==2.0.1 , as per docs
Trying to find this PR in the amazon providers changelog, to double check which is the max version of the amazon providers that will work with MWAA. I think it's 8.24.0 |
Yes. See #39946 (comment) and maybe @vincbeck or @ferruzzi or @o-nikolas can comment on that :) |
I've asked around on the MWAA team and I'll report what I hear back! |
…apache#39946) With this change we are running tests of downgrading Airflow dependencies to "lowest-direct" ones - separately for "core" tests and for each provider (and run corresponding tests with it). This should allows us to determine what are the lowest bounds for the dependencies - for Airflow and for individual providers and continue doing it while Airflow evolves in the future. Fixes: apache#35549 Related: apache#39100
The output of parallel tests especially for lowest-direct tests is very long because we are printing state every 10 seconds and there are many paralell test types (90+ for lowest direct). We do not need to print progress that often, and it has already been added in apache#39946 but one place to add it was missing - context manager still had the default 10 seconds refresh time. After this change the output will be printed every 20 seconds in the regular tests and every 2 minutes in "lowest-direct" tests (controlled by env variable) so the output should be much easier to find reasons for issues.
With this change we are running tests of downgrading Airflow
dependencies to "lowest-direct" ones - separately for "core" tests
and for each provider (and run corresponding tests with it). This
should allows us to determine what are the lowest bounds for the
dependencies - for Airflow and for individual providers and continue
doing it while Airflow evolves in the future.
Fixes: #35549
Related: #39100
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named
{pr_number}.significant.rst
or{issue_number}.significant.rst
, in newsfragments.