-
Notifications
You must be signed in to change notification settings - Fork 14.5k
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
Run separate CI job for latest boto/botocore version when needed #30144
Run separate CI job for latest boto/botocore version when needed #30144
Conversation
@@ -656,9 +657,10 @@ def update_expected_environment_variables(env: dict[str, str]) -> None: | |||
"PYTHON_MAJOR_MINOR_VERSION": "python", | |||
"SKIP_CONSTRAINTS": "skip_constraints", | |||
"SKIP_ENVIRONMENT_INITIALIZATION": "skip_environment_initialization", | |||
"SKIP_PROVIDER_TESS": "skip_provider_tests", | |||
"SKIP_PROVIDER_TESTS": "skip_provider_tests", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is unrelated - but I found it along the way. Separate PR follows.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! Not only will this help us catch issues early, but we'll also be able to solve them incrementally. Rather than receiving one large batch of issues after each version bump.
Precisely |
This seemed to work from the first run (The failing tests were environmental issues) This is ... But yeah it seems to work indeed:
and:
The 3 skipped were the deferrable tests. |
ebf5428
to
50c026d
Compare
8f4df3d
to
50c026d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is very nice improvement!
By using aiobotocore, we are pinning botocore and boto to a specific version (in aiobotocore extra of amazon provider). This means that the boto/botocore dependencies will be updated less frequent in main (every 3-4 months instead of every few days). This has the danger, that we will detect errors resulting from the upgrade much later, so we should run our amazon tests and depending tests with the latest boto/botocore (having aibotocore uninstalled). All deferrable tests should skip when aiobotocore is missing so only non-deferrable tests should run in this job.
50c026d
to
5ca4c10
Compare
Clever solution. 👍 |
This is follow-up after apache#30127 and apache#30144 about handling async (deferrable) operators for amazon provider. Rather than making aiobotocre directly a devel extra dependency, we create a separate "aiobotocore" extra that allows for greater flexibility on how we handle the aiobotocore support. It allows for two approach: 1) (current) if we decide that by default we keep boto/botocore compatible with aiobotocore in our constraints/image then aiobotocore should be added to devel and it should be included as preselected extra in Dockerfile. This will lead to having aibotocore and compatible boto/botocore in both constraints and the PROD image. 2) (possible) if we decide that we prefer to keep to the latest version of boto/botocore in constraints/image, then we could remove aiobotocore from both constraints and PROD image. We should also in this case swap the "LatestBoto" CI job introduced in apache#30144 to be "WithAiobotocore" job - by installing aiobotocore and downgrading boto/botocore in the job.
This is follow-up after #30127 and #30144 about handling async (deferrable) operators for amazon provider. Rather than making aiobotocre directly a devel extra dependency, we create a separate "aiobotocore" extra that allows for greater flexibility on how we handle the aiobotocore support. It allows for two approach: 1) (current) if we decide that by default we keep boto/botocore compatible with aiobotocore in our constraints/image then aiobotocore should be added to devel and it should be included as preselected extra in Dockerfile. This will lead to having aibotocore and compatible boto/botocore in both constraints and the PROD image. 2) (possible) if we decide that we prefer to keep to the latest version of boto/botocore in constraints/image, then we could remove aiobotocore from both constraints and PROD image. We should also in this case swap the "LatestBoto" CI job introduced in #30144 to be "WithAiobotocore" job - by installing aiobotocore and downgrading boto/botocore in the job.
By using aiobotocore, we are pinning botocore and boto to a specific
version (in aiobotocore extra of amazon provider). This means that
the boto/botocore dependencies will be updated less frequent in main
(every 3-4 months instead of every few days). This has the danger,
that we will detect errors resulting from the upgrade much later,
so we should run our amazon tests and depending tests with
the latest boto/botocore (having aibotocore uninstalled).
All deferrable tests should skip when aiobotocore is missing so only
non-deferrable tests should run in this job.
Depends on #30127 (so only last commit should be checked).
^ 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.