Skip to content

Run separate CI job for latest boto/botocore version when needed - #30144

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version
Mar 16, 2023
Merged

Run separate CI job for latest boto/botocore version when needed #30144
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version

Conversation

@potiuk

@potiukpotiuk commented Mar 16, 2023

Copy link
Copy Markdown
Member

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.

@potiukpotiuk changed the title Add amazon tests for latest boto versionRun separate job for latest boto/botocore version when needed Mar 16, 2023

Copy link
Copy Markdown
MemberAuthor

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.

@potiukpotiuk changed the title Run separate job for latest boto/botocore version when needed Run separate test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate test job for latest boto/botocore version when needed Run separate CI test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate CI test job for latest boto/botocore version when needed Run separate CI job for latest boto/botocore version when needed Mar 16, 2023

@o-nikolaso-nikolas left a comment

Copy link
Copy Markdown
Contributor

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.

@potiuk

Copy link
Copy Markdown
MemberAuthor

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

@potiuk

Copy link
Copy Markdown
MemberAuthor

This seemed to work from the first run (The failing tests were environmental issues) This is :suspect: ...

But yeah it seems to work indeed:

 Found existing installation: aiobotocore 2.5.0
Uninstalling aiobotocore-2.5.0:
Successfully uninstalled aiobotocore-2.5.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: boto3 in /usr/local/lib/python3.7/site-packages (1.26.76)
Collecting boto3
Downloading boto3-1.26.92-py3-none-any.whl (134 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.7/134.7 kB 37.4 MB/s eta 0:00:00
Requirement already satisfied: botocore in /usr/local/lib/python3.7/site-packages (1.29.76)
Collecting botocore
Downloading botocore-1.29.92-py3-none-any.whl (10.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 148.1 MB/s eta 0:00:00
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.7/site-packages (from boto3) (0.10.0)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/site-packages (from boto3) (0.6.0)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.7/site-packages (from botocore) (2.8.2)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/local/lib/python3.7/site-packages (from botocore) (1.26.15)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/site-packages (from python-dateutil<3.0.0,>=2.1->botocore) (1.16.0)
Installing collected packages: botocore, boto3
Attempting uninstall: botocore
Found existing installation: botocore 1.29.76
Uninstalling botocore-1.29.76:
Successfully uninstalled botocore-1.29.76
Attempting uninstall: boto3
Found existing installation: boto3 1.26.76
Uninstalling boto3-1.26.76:
Successfully uninstalled boto3-1.26.76
Successfully installed boto3-1.26.92 botocore-1.29.92
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

and:

 All Warning errors can be found in the /files/warnings-Providers-postgres.txt file.
=========== 1694 passed, 3 skipped, 16 warnings in 367.28s (0:06:07) ===========

The 3 skipped were the deferrable tests.

@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from ebf5428 to 50c026dCompareMarch 16, 2023 18:57
@potiuk
potiuk requested a review from dstandish as a code ownerMarch 16, 2023 19:20
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 8f4df3d to 50c026dCompareMarch 16, 2023 19:21

@eladkaleladkal left a comment

Copy link
Copy Markdown
Contributor

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.
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 50c026d to 5ca4c10CompareMarch 16, 2023 20:31
@ferruzzi

Copy link
Copy Markdown
Contributor

Clever solution. 👍

@potiuk
potiuk merged commit 851fde0 into apache:mainMar 16, 2023
@potiuk
potiuk deleted the add-amazon-tests-for-latest-boto-version branch March 16, 2023 21:50
potiuk added a commit to potiuk/airflow that referenced this pull request Mar 17, 2023
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.
potiuk added a commit that referenced this pull request Mar 17, 2023
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.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@potiuk@ferruzzi@eladkal@o-nikolas@pankajastro
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Run separate CI job for latest boto/botocore version when needed by potiuk · Pull Request #30144 · apache/airflow · GitHub
Skip to content

Run separate CI job for latest boto/botocore version when needed - #30144

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version
Mar 16, 2023
Merged

Run separate CI job for latest boto/botocore version when needed #30144
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version

Conversation

@potiuk

@potiukpotiuk commented Mar 16, 2023

Copy link
Copy Markdown
Member

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.

@potiukpotiuk changed the title Add amazon tests for latest boto versionRun separate job for latest boto/botocore version when needed Mar 16, 2023

Copy link
Copy Markdown
MemberAuthor

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.

@potiukpotiuk changed the title Run separate job for latest boto/botocore version when needed Run separate test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate test job for latest boto/botocore version when needed Run separate CI test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate CI test job for latest boto/botocore version when needed Run separate CI job for latest boto/botocore version when needed Mar 16, 2023

@o-nikolaso-nikolas left a comment

Copy link
Copy Markdown
Contributor

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.

@potiuk

Copy link
Copy Markdown
MemberAuthor

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

@potiuk

Copy link
Copy Markdown
MemberAuthor

This seemed to work from the first run (The failing tests were environmental issues) This is :suspect: ...

But yeah it seems to work indeed:

 Found existing installation: aiobotocore 2.5.0
Uninstalling aiobotocore-2.5.0:
Successfully uninstalled aiobotocore-2.5.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: boto3 in /usr/local/lib/python3.7/site-packages (1.26.76)
Collecting boto3
Downloading boto3-1.26.92-py3-none-any.whl (134 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.7/134.7 kB 37.4 MB/s eta 0:00:00
Requirement already satisfied: botocore in /usr/local/lib/python3.7/site-packages (1.29.76)
Collecting botocore
Downloading botocore-1.29.92-py3-none-any.whl (10.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 148.1 MB/s eta 0:00:00
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.7/site-packages (from boto3) (0.10.0)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/site-packages (from boto3) (0.6.0)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.7/site-packages (from botocore) (2.8.2)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/local/lib/python3.7/site-packages (from botocore) (1.26.15)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/site-packages (from python-dateutil<3.0.0,>=2.1->botocore) (1.16.0)
Installing collected packages: botocore, boto3
Attempting uninstall: botocore
Found existing installation: botocore 1.29.76
Uninstalling botocore-1.29.76:
Successfully uninstalled botocore-1.29.76
Attempting uninstall: boto3
Found existing installation: boto3 1.26.76
Uninstalling boto3-1.26.76:
Successfully uninstalled boto3-1.26.76
Successfully installed boto3-1.26.92 botocore-1.29.92
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

and:

 All Warning errors can be found in the /files/warnings-Providers-postgres.txt file.
=========== 1694 passed, 3 skipped, 16 warnings in 367.28s (0:06:07) ===========

The 3 skipped were the deferrable tests.

@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from ebf5428 to 50c026dCompareMarch 16, 2023 18:57
@potiuk
potiuk requested a review from dstandish as a code ownerMarch 16, 2023 19:20
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 8f4df3d to 50c026dCompareMarch 16, 2023 19:21

@eladkaleladkal left a comment

Copy link
Copy Markdown
Contributor

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.
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 50c026d to 5ca4c10CompareMarch 16, 2023 20:31
@ferruzzi

Copy link
Copy Markdown
Contributor

Clever solution. 👍

@potiuk
potiuk merged commit 851fde0 into apache:mainMar 16, 2023
@potiuk
potiuk deleted the add-amazon-tests-for-latest-boto-version branch March 16, 2023 21:50
potiuk added a commit to potiuk/airflow that referenced this pull request Mar 17, 2023
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.
potiuk added a commit that referenced this pull request Mar 17, 2023
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.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@potiuk@ferruzzi@eladkal@o-nikolas@pankajastro
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Run separate CI job for latest boto/botocore version when needed by potiuk · Pull Request #30144 · apache/airflow · GitHub
Skip to content

Run separate CI job for latest boto/botocore version when needed - #30144

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version
Mar 16, 2023
Merged

Run separate CI job for latest boto/botocore version when needed #30144
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version

Conversation

@potiuk

@potiukpotiuk commented Mar 16, 2023

Copy link
Copy Markdown
Member

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.

@potiukpotiuk changed the title Add amazon tests for latest boto versionRun separate job for latest boto/botocore version when needed Mar 16, 2023

Copy link
Copy Markdown
MemberAuthor

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.

@potiukpotiuk changed the title Run separate job for latest boto/botocore version when needed Run separate test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate test job for latest boto/botocore version when needed Run separate CI test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate CI test job for latest boto/botocore version when needed Run separate CI job for latest boto/botocore version when needed Mar 16, 2023

@o-nikolaso-nikolas left a comment

Copy link
Copy Markdown
Contributor

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.

@potiuk

Copy link
Copy Markdown
MemberAuthor

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

@potiuk

Copy link
Copy Markdown
MemberAuthor

This seemed to work from the first run (The failing tests were environmental issues) This is :suspect: ...

But yeah it seems to work indeed:

 Found existing installation: aiobotocore 2.5.0
Uninstalling aiobotocore-2.5.0:
Successfully uninstalled aiobotocore-2.5.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: boto3 in /usr/local/lib/python3.7/site-packages (1.26.76)
Collecting boto3
Downloading boto3-1.26.92-py3-none-any.whl (134 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.7/134.7 kB 37.4 MB/s eta 0:00:00
Requirement already satisfied: botocore in /usr/local/lib/python3.7/site-packages (1.29.76)
Collecting botocore
Downloading botocore-1.29.92-py3-none-any.whl (10.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 148.1 MB/s eta 0:00:00
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.7/site-packages (from boto3) (0.10.0)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/site-packages (from boto3) (0.6.0)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.7/site-packages (from botocore) (2.8.2)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/local/lib/python3.7/site-packages (from botocore) (1.26.15)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/site-packages (from python-dateutil<3.0.0,>=2.1->botocore) (1.16.0)
Installing collected packages: botocore, boto3
Attempting uninstall: botocore
Found existing installation: botocore 1.29.76
Uninstalling botocore-1.29.76:
Successfully uninstalled botocore-1.29.76
Attempting uninstall: boto3
Found existing installation: boto3 1.26.76
Uninstalling boto3-1.26.76:
Successfully uninstalled boto3-1.26.76
Successfully installed boto3-1.26.92 botocore-1.29.92
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

and:

 All Warning errors can be found in the /files/warnings-Providers-postgres.txt file.
=========== 1694 passed, 3 skipped, 16 warnings in 367.28s (0:06:07) ===========

The 3 skipped were the deferrable tests.

@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from ebf5428 to 50c026dCompareMarch 16, 2023 18:57
@potiuk
potiuk requested a review from dstandish as a code ownerMarch 16, 2023 19:20
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 8f4df3d to 50c026dCompareMarch 16, 2023 19:21

@eladkaleladkal left a comment

Copy link
Copy Markdown
Contributor

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.
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 50c026d to 5ca4c10CompareMarch 16, 2023 20:31
@ferruzzi

Copy link
Copy Markdown
Contributor

Clever solution. 👍

@potiuk
potiuk merged commit 851fde0 into apache:mainMar 16, 2023
@potiuk
potiuk deleted the add-amazon-tests-for-latest-boto-version branch March 16, 2023 21:50
potiuk added a commit to potiuk/airflow that referenced this pull request Mar 17, 2023
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.
potiuk added a commit that referenced this pull request Mar 17, 2023
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.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@potiuk@ferruzzi@eladkal@o-nikolas@pankajastro
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Run separate CI job for latest boto/botocore version when needed by potiuk · Pull Request #30144 · apache/airflow · GitHub
Skip to content

Run separate CI job for latest boto/botocore version when needed - #30144

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version
Mar 16, 2023
Merged

Run separate CI job for latest boto/botocore version when needed #30144
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version

Conversation

@potiuk

@potiukpotiuk commented Mar 16, 2023

Copy link
Copy Markdown
Member

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.

@potiukpotiuk changed the title Add amazon tests for latest boto versionRun separate job for latest boto/botocore version when needed Mar 16, 2023

Copy link
Copy Markdown
MemberAuthor

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.

@potiukpotiuk changed the title Run separate job for latest boto/botocore version when needed Run separate test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate test job for latest boto/botocore version when needed Run separate CI test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate CI test job for latest boto/botocore version when needed Run separate CI job for latest boto/botocore version when needed Mar 16, 2023

@o-nikolaso-nikolas left a comment

Copy link
Copy Markdown
Contributor

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.

@potiuk

Copy link
Copy Markdown
MemberAuthor

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

@potiuk

Copy link
Copy Markdown
MemberAuthor

This seemed to work from the first run (The failing tests were environmental issues) This is :suspect: ...

But yeah it seems to work indeed:

 Found existing installation: aiobotocore 2.5.0
Uninstalling aiobotocore-2.5.0:
Successfully uninstalled aiobotocore-2.5.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: boto3 in /usr/local/lib/python3.7/site-packages (1.26.76)
Collecting boto3
Downloading boto3-1.26.92-py3-none-any.whl (134 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.7/134.7 kB 37.4 MB/s eta 0:00:00
Requirement already satisfied: botocore in /usr/local/lib/python3.7/site-packages (1.29.76)
Collecting botocore
Downloading botocore-1.29.92-py3-none-any.whl (10.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 148.1 MB/s eta 0:00:00
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.7/site-packages (from boto3) (0.10.0)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/site-packages (from boto3) (0.6.0)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.7/site-packages (from botocore) (2.8.2)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/local/lib/python3.7/site-packages (from botocore) (1.26.15)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/site-packages (from python-dateutil<3.0.0,>=2.1->botocore) (1.16.0)
Installing collected packages: botocore, boto3
Attempting uninstall: botocore
Found existing installation: botocore 1.29.76
Uninstalling botocore-1.29.76:
Successfully uninstalled botocore-1.29.76
Attempting uninstall: boto3
Found existing installation: boto3 1.26.76
Uninstalling boto3-1.26.76:
Successfully uninstalled boto3-1.26.76
Successfully installed boto3-1.26.92 botocore-1.29.92
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

and:

 All Warning errors can be found in the /files/warnings-Providers-postgres.txt file.
=========== 1694 passed, 3 skipped, 16 warnings in 367.28s (0:06:07) ===========

The 3 skipped were the deferrable tests.

@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from ebf5428 to 50c026dCompareMarch 16, 2023 18:57
@potiuk
potiuk requested a review from dstandish as a code ownerMarch 16, 2023 19:20
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 8f4df3d to 50c026dCompareMarch 16, 2023 19:21

@eladkaleladkal left a comment

Copy link
Copy Markdown
Contributor

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.
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 50c026d to 5ca4c10CompareMarch 16, 2023 20:31
@ferruzzi

Copy link
Copy Markdown
Contributor

Clever solution. 👍

@potiuk
potiuk merged commit 851fde0 into apache:mainMar 16, 2023
@potiuk
potiuk deleted the add-amazon-tests-for-latest-boto-version branch March 16, 2023 21:50
potiuk added a commit to potiuk/airflow that referenced this pull request Mar 17, 2023
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.
potiuk added a commit that referenced this pull request Mar 17, 2023
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.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@potiuk@ferruzzi@eladkal@o-nikolas@pankajastro
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Run separate CI job for latest boto/botocore version when needed by potiuk · Pull Request #30144 · apache/airflow · GitHub
Skip to content

Run separate CI job for latest boto/botocore version when needed - #30144

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version
Mar 16, 2023
Merged

Run separate CI job for latest boto/botocore version when needed #30144
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version

Conversation

@potiuk

@potiukpotiuk commented Mar 16, 2023

Copy link
Copy Markdown
Member

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.

@potiukpotiuk changed the title Add amazon tests for latest boto versionRun separate job for latest boto/botocore version when needed Mar 16, 2023

Copy link
Copy Markdown
MemberAuthor

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.

@potiukpotiuk changed the title Run separate job for latest boto/botocore version when needed Run separate test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate test job for latest boto/botocore version when needed Run separate CI test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate CI test job for latest boto/botocore version when needed Run separate CI job for latest boto/botocore version when needed Mar 16, 2023

@o-nikolaso-nikolas left a comment

Copy link
Copy Markdown
Contributor

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.

@potiuk

Copy link
Copy Markdown
MemberAuthor

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

@potiuk

Copy link
Copy Markdown
MemberAuthor

This seemed to work from the first run (The failing tests were environmental issues) This is :suspect: ...

But yeah it seems to work indeed:

 Found existing installation: aiobotocore 2.5.0
Uninstalling aiobotocore-2.5.0:
Successfully uninstalled aiobotocore-2.5.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: boto3 in /usr/local/lib/python3.7/site-packages (1.26.76)
Collecting boto3
Downloading boto3-1.26.92-py3-none-any.whl (134 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.7/134.7 kB 37.4 MB/s eta 0:00:00
Requirement already satisfied: botocore in /usr/local/lib/python3.7/site-packages (1.29.76)
Collecting botocore
Downloading botocore-1.29.92-py3-none-any.whl (10.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 148.1 MB/s eta 0:00:00
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.7/site-packages (from boto3) (0.10.0)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/site-packages (from boto3) (0.6.0)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.7/site-packages (from botocore) (2.8.2)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/local/lib/python3.7/site-packages (from botocore) (1.26.15)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/site-packages (from python-dateutil<3.0.0,>=2.1->botocore) (1.16.0)
Installing collected packages: botocore, boto3
Attempting uninstall: botocore
Found existing installation: botocore 1.29.76
Uninstalling botocore-1.29.76:
Successfully uninstalled botocore-1.29.76
Attempting uninstall: boto3
Found existing installation: boto3 1.26.76
Uninstalling boto3-1.26.76:
Successfully uninstalled boto3-1.26.76
Successfully installed boto3-1.26.92 botocore-1.29.92
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

and:

 All Warning errors can be found in the /files/warnings-Providers-postgres.txt file.
=========== 1694 passed, 3 skipped, 16 warnings in 367.28s (0:06:07) ===========

The 3 skipped were the deferrable tests.

@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from ebf5428 to 50c026dCompareMarch 16, 2023 18:57
@potiuk
potiuk requested a review from dstandish as a code ownerMarch 16, 2023 19:20
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 8f4df3d to 50c026dCompareMarch 16, 2023 19:21

@eladkaleladkal left a comment

Copy link
Copy Markdown
Contributor

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.
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 50c026d to 5ca4c10CompareMarch 16, 2023 20:31
@ferruzzi

Copy link
Copy Markdown
Contributor

Clever solution. 👍

@potiuk
potiuk merged commit 851fde0 into apache:mainMar 16, 2023
@potiuk
potiuk deleted the add-amazon-tests-for-latest-boto-version branch March 16, 2023 21:50
potiuk added a commit to potiuk/airflow that referenced this pull request Mar 17, 2023
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.
potiuk added a commit that referenced this pull request Mar 17, 2023
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.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@potiuk@ferruzzi@eladkal@o-nikolas@pankajastro
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Run separate CI job for latest boto/botocore version when needed by potiuk · Pull Request #30144 · apache/airflow · GitHub
Skip to content

Run separate CI job for latest boto/botocore version when needed - #30144

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version
Mar 16, 2023
Merged

Run separate CI job for latest boto/botocore version when needed #30144
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version

Conversation

@potiuk

@potiukpotiuk commented Mar 16, 2023

Copy link
Copy Markdown
Member

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.

@potiukpotiuk changed the title Add amazon tests for latest boto versionRun separate job for latest boto/botocore version when needed Mar 16, 2023

Copy link
Copy Markdown
MemberAuthor

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.

@potiukpotiuk changed the title Run separate job for latest boto/botocore version when needed Run separate test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate test job for latest boto/botocore version when needed Run separate CI test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate CI test job for latest boto/botocore version when needed Run separate CI job for latest boto/botocore version when needed Mar 16, 2023

@o-nikolaso-nikolas left a comment

Copy link
Copy Markdown
Contributor

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.

@potiuk

Copy link
Copy Markdown
MemberAuthor

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

@potiuk

Copy link
Copy Markdown
MemberAuthor

This seemed to work from the first run (The failing tests were environmental issues) This is :suspect: ...

But yeah it seems to work indeed:

 Found existing installation: aiobotocore 2.5.0
Uninstalling aiobotocore-2.5.0:
Successfully uninstalled aiobotocore-2.5.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: boto3 in /usr/local/lib/python3.7/site-packages (1.26.76)
Collecting boto3
Downloading boto3-1.26.92-py3-none-any.whl (134 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.7/134.7 kB 37.4 MB/s eta 0:00:00
Requirement already satisfied: botocore in /usr/local/lib/python3.7/site-packages (1.29.76)
Collecting botocore
Downloading botocore-1.29.92-py3-none-any.whl (10.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 148.1 MB/s eta 0:00:00
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.7/site-packages (from boto3) (0.10.0)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/site-packages (from boto3) (0.6.0)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.7/site-packages (from botocore) (2.8.2)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/local/lib/python3.7/site-packages (from botocore) (1.26.15)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/site-packages (from python-dateutil<3.0.0,>=2.1->botocore) (1.16.0)
Installing collected packages: botocore, boto3
Attempting uninstall: botocore
Found existing installation: botocore 1.29.76
Uninstalling botocore-1.29.76:
Successfully uninstalled botocore-1.29.76
Attempting uninstall: boto3
Found existing installation: boto3 1.26.76
Uninstalling boto3-1.26.76:
Successfully uninstalled boto3-1.26.76
Successfully installed boto3-1.26.92 botocore-1.29.92
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

and:

 All Warning errors can be found in the /files/warnings-Providers-postgres.txt file.
=========== 1694 passed, 3 skipped, 16 warnings in 367.28s (0:06:07) ===========

The 3 skipped were the deferrable tests.

@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from ebf5428 to 50c026dCompareMarch 16, 2023 18:57
@potiuk
potiuk requested a review from dstandish as a code ownerMarch 16, 2023 19:20
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 8f4df3d to 50c026dCompareMarch 16, 2023 19:21

@eladkaleladkal left a comment

Copy link
Copy Markdown
Contributor

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.
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 50c026d to 5ca4c10CompareMarch 16, 2023 20:31
@ferruzzi

Copy link
Copy Markdown
Contributor

Clever solution. 👍

@potiuk
potiuk merged commit 851fde0 into apache:mainMar 16, 2023
@potiuk
potiuk deleted the add-amazon-tests-for-latest-boto-version branch March 16, 2023 21:50
potiuk added a commit to potiuk/airflow that referenced this pull request Mar 17, 2023
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.
potiuk added a commit that referenced this pull request Mar 17, 2023
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.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@potiuk@ferruzzi@eladkal@o-nikolas@pankajastro
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Run separate CI job for latest boto/botocore version when needed by potiuk · Pull Request #30144 · apache/airflow · GitHub
Skip to content

Run separate CI job for latest boto/botocore version when needed - #30144

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version
Mar 16, 2023
Merged

Run separate CI job for latest boto/botocore version when needed #30144
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version

Conversation

@potiuk

@potiukpotiuk commented Mar 16, 2023

Copy link
Copy Markdown
Member

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.

@potiukpotiuk changed the title Add amazon tests for latest boto versionRun separate job for latest boto/botocore version when needed Mar 16, 2023

Copy link
Copy Markdown
MemberAuthor

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.

@potiukpotiuk changed the title Run separate job for latest boto/botocore version when needed Run separate test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate test job for latest boto/botocore version when needed Run separate CI test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate CI test job for latest boto/botocore version when needed Run separate CI job for latest boto/botocore version when needed Mar 16, 2023

@o-nikolaso-nikolas left a comment

Copy link
Copy Markdown
Contributor

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.

@potiuk

Copy link
Copy Markdown
MemberAuthor

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

@potiuk

Copy link
Copy Markdown
MemberAuthor

This seemed to work from the first run (The failing tests were environmental issues) This is :suspect: ...

But yeah it seems to work indeed:

 Found existing installation: aiobotocore 2.5.0
Uninstalling aiobotocore-2.5.0:
Successfully uninstalled aiobotocore-2.5.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: boto3 in /usr/local/lib/python3.7/site-packages (1.26.76)
Collecting boto3
Downloading boto3-1.26.92-py3-none-any.whl (134 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.7/134.7 kB 37.4 MB/s eta 0:00:00
Requirement already satisfied: botocore in /usr/local/lib/python3.7/site-packages (1.29.76)
Collecting botocore
Downloading botocore-1.29.92-py3-none-any.whl (10.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 148.1 MB/s eta 0:00:00
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.7/site-packages (from boto3) (0.10.0)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/site-packages (from boto3) (0.6.0)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.7/site-packages (from botocore) (2.8.2)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/local/lib/python3.7/site-packages (from botocore) (1.26.15)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/site-packages (from python-dateutil<3.0.0,>=2.1->botocore) (1.16.0)
Installing collected packages: botocore, boto3
Attempting uninstall: botocore
Found existing installation: botocore 1.29.76
Uninstalling botocore-1.29.76:
Successfully uninstalled botocore-1.29.76
Attempting uninstall: boto3
Found existing installation: boto3 1.26.76
Uninstalling boto3-1.26.76:
Successfully uninstalled boto3-1.26.76
Successfully installed boto3-1.26.92 botocore-1.29.92
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

and:

 All Warning errors can be found in the /files/warnings-Providers-postgres.txt file.
=========== 1694 passed, 3 skipped, 16 warnings in 367.28s (0:06:07) ===========

The 3 skipped were the deferrable tests.

@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from ebf5428 to 50c026dCompareMarch 16, 2023 18:57
@potiuk
potiuk requested a review from dstandish as a code ownerMarch 16, 2023 19:20
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 8f4df3d to 50c026dCompareMarch 16, 2023 19:21

@eladkaleladkal left a comment

Copy link
Copy Markdown
Contributor

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.
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 50c026d to 5ca4c10CompareMarch 16, 2023 20:31
@ferruzzi

Copy link
Copy Markdown
Contributor

Clever solution. 👍

@potiuk
potiuk merged commit 851fde0 into apache:mainMar 16, 2023
@potiuk
potiuk deleted the add-amazon-tests-for-latest-boto-version branch March 16, 2023 21:50
potiuk added a commit to potiuk/airflow that referenced this pull request Mar 17, 2023
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.
potiuk added a commit that referenced this pull request Mar 17, 2023
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.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@potiuk@ferruzzi@eladkal@o-nikolas@pankajastro
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Run separate CI job for latest boto/botocore version when needed by potiuk · Pull Request #30144 · apache/airflow · GitHub
Skip to content

Run separate CI job for latest boto/botocore version when needed - #30144

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version
Mar 16, 2023
Merged

Run separate CI job for latest boto/botocore version when needed #30144
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-amazon-tests-for-latest-boto-version

Conversation

@potiuk

@potiukpotiuk commented Mar 16, 2023

Copy link
Copy Markdown
Member

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.

@potiukpotiuk changed the title Add amazon tests for latest boto versionRun separate job for latest boto/botocore version when needed Mar 16, 2023

Copy link
Copy Markdown
MemberAuthor

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.

@potiukpotiuk changed the title Run separate job for latest boto/botocore version when needed Run separate test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate test job for latest boto/botocore version when needed Run separate CI test job for latest boto/botocore version when needed Mar 16, 2023
@potiukpotiuk changed the title Run separate CI test job for latest boto/botocore version when needed Run separate CI job for latest boto/botocore version when needed Mar 16, 2023

@o-nikolaso-nikolas left a comment

Copy link
Copy Markdown
Contributor

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.

@potiuk

Copy link
Copy Markdown
MemberAuthor

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

@potiuk

Copy link
Copy Markdown
MemberAuthor

This seemed to work from the first run (The failing tests were environmental issues) This is :suspect: ...

But yeah it seems to work indeed:

 Found existing installation: aiobotocore 2.5.0
Uninstalling aiobotocore-2.5.0:
Successfully uninstalled aiobotocore-2.5.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: boto3 in /usr/local/lib/python3.7/site-packages (1.26.76)
Collecting boto3
Downloading boto3-1.26.92-py3-none-any.whl (134 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.7/134.7 kB 37.4 MB/s eta 0:00:00
Requirement already satisfied: botocore in /usr/local/lib/python3.7/site-packages (1.29.76)
Collecting botocore
Downloading botocore-1.29.92-py3-none-any.whl (10.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 148.1 MB/s eta 0:00:00
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.7/site-packages (from boto3) (0.10.0)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/site-packages (from boto3) (0.6.0)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.7/site-packages (from botocore) (2.8.2)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/local/lib/python3.7/site-packages (from botocore) (1.26.15)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/site-packages (from python-dateutil<3.0.0,>=2.1->botocore) (1.16.0)
Installing collected packages: botocore, boto3
Attempting uninstall: botocore
Found existing installation: botocore 1.29.76
Uninstalling botocore-1.29.76:
Successfully uninstalled botocore-1.29.76
Attempting uninstall: boto3
Found existing installation: boto3 1.26.76
Uninstalling boto3-1.26.76:
Successfully uninstalled boto3-1.26.76
Successfully installed boto3-1.26.92 botocore-1.29.92
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

and:

 All Warning errors can be found in the /files/warnings-Providers-postgres.txt file.
=========== 1694 passed, 3 skipped, 16 warnings in 367.28s (0:06:07) ===========

The 3 skipped were the deferrable tests.

@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from ebf5428 to 50c026dCompareMarch 16, 2023 18:57
@potiuk
potiuk requested a review from dstandish as a code ownerMarch 16, 2023 19:20
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 8f4df3d to 50c026dCompareMarch 16, 2023 19:21

@eladkaleladkal left a comment

Copy link
Copy Markdown
Contributor

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.
@potiuk
potiukforce-pushed the add-amazon-tests-for-latest-boto-version branch from 50c026d to 5ca4c10CompareMarch 16, 2023 20:31
@ferruzzi

Copy link
Copy Markdown
Contributor

Clever solution. 👍

@potiuk
potiuk merged commit 851fde0 into apache:mainMar 16, 2023
@potiuk
potiuk deleted the add-amazon-tests-for-latest-boto-version branch March 16, 2023 21:50
potiuk added a commit to potiuk/airflow that referenced this pull request Mar 17, 2023
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.
potiuk added a commit that referenced this pull request Mar 17, 2023
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.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@potiuk@ferruzzi@eladkal@o-nikolas@pankajastro