Add CI support for SQLAlchemy 2.0 - #52233

Merged
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests
Aug 10, 2025
Merged

Add CI support for SQLAlchemy 2.0#52233
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests

Conversation

@Dev-iL

@Dev-iLDev-iL commented Jun 25, 2025

Copy link
Copy Markdown
Collaborator

closes: #48953, #52663
related: #28723, #50960 (prerequisite that's included in this PR)

  • Add the check_upgrade_sqlalchemy container entrypoint for testing SQLA v2 on CI
  • Fix some existing shellcheck violations reported by shellcheck-py.
  • Robustify multiple unit tests and amend some business logic.

^ 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 airflow-core/newsfragments.

CopilotAI review requested due to automatic review settings June 25, 2025 09:29

This comment was marked as outdated.

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from 96d2e8d to 482fff4CompareJune 25, 2025 09:51
@Dev-iL
Dev-iL requested a review from CopilotJune 25, 2025 09:55

CopilotAI 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.

Pull Request Overview

This PR introduces a new entrypoint function, check_upgrade_sqlalchemy, to handle upgrading SQLAlchemy for testing SQLA v2 while also addressing several shellcheck violations.

  • Adds check_upgrade_sqlalchemy implementations to both scripts/docker/entrypoint_ci.sh and Dockerfile.ci.
  • Updates Breeze parameters, commands, and CI workflow to include an upgrade_sqlalchemy flag.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
scripts/docker/entrypoint_ci.shAdds check_upgrade_sqlalchemy function with minor quoting adjustments.
scripts/ci/docker-compose/devcontainer.envIntroduces UPGRADE_SQLALCHEMY environment variable.
dev/breeze/src/airflow_breeze/params/shell_params.pyAdds new boolean parameter upgrade_sqlalchemy.
dev/breeze/src/airflow_breeze/commands/developer_commands.pyAdds upgrade_sqlalchemy option to developer commands.
dev/breeze/src/airflow_breeze/commands/common_options.pyAdds a new click option for upgrade_sqlalchemy with help text.
Dockerfile.ciAdds check_upgrade_sqlalchemy function similar to the entrypoint script.
.github/workflows/run-unit-tests.ymlAdds upgrade-sqlalchemy input to the CI workflow.
Comments suppressed due to low confidence (1)

dev/breeze/src/airflow_breeze/commands/common_options.py:157

  • [nitpick] The help text for the upgrade_sqlalchemy option mentions an 'experimental supported version'; consider revising it to clearly indicate that it upgrades SQLAlchemy to the latest version required for running tests, ensuring consistency with the function output.
option_upgrade_sqlalchemy = click.option(

Comment threadscripts/docker/entrypoint_ci.sh Outdated
Comment threadDockerfile.ci Outdated
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 4 times, most recently from d3dd43d to d55a749CompareJune 25, 2025 13:09
@Dev-iL
Dev-iL requested a review from vincbeck as a code ownerJune 25, 2025 13:09
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

The tests are failing as expected on SQLA v2 incompatibilities. Now what? Should I suggest in #28723 that developers rebase to my branch?

@potiuk

Copy link
Copy Markdown
Member

Yes. And make it a part of your PR and we can continuously rebase the PRs on top of yours. This is going to be a little involved and require rebasing here and there.

@Dev-iL
Dev-iL requested a review from XD-DENG as a code ownerJune 25, 2025 15:01
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

Should we perhaps decide on a single "main" branch (e.g. your one) and target the various SQLA2 PRs into it? Just to save the effort of rebasing across multiple forks...

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 2 times, most recently from 7bde1ac to 34e7502CompareJune 26, 2025 15:43
@Dev-iL
Dev-iL marked this pull request as draft June 28, 2025 06:37
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 5 times, most recently from 5efe8cb to 9cb0ba2CompareJune 29, 2025 13:44
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 13 times, most recently from bb95354 to c6b5a04CompareJuly 24, 2025 09:12
@potiukpotiuk added the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
@potiuk
potiukforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c6b5a04 to c8dc921CompareJuly 24, 2025 11:13
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c8dc921 to 907e709CompareJuly 24, 2025 11:14
@potiukpotiuk removed the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
Dev-iLand others added 6 commits August 10, 2025 16:34
+ Fix some SQLA2 incompatibilities
+ Skip multiple tests that rely on FAB
Might help with the MySQL 8.4 + Py3.13 combination
- Make some tests more specific so as not trip on irrelevant things.
- Add a couple of fixtures to ensure a predictable engine state.
- Replace uses of unittest.mock with the mocker fixture.
- Add tests for `AutocommitEngineForMySQL`.
@potiuk

Copy link
Copy Markdown
Member

LGTM. The MyPy fix has been fixed separated (leaving some TODOs: in type checking #54321

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

all versionsIf set, the CI build will be forced to use all versions of Python/K8S/DBsarea:dev-tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tests for SQLAlchemy 2

6 participants

@Dev-iL@potiuk@anton-bedrock@uranusjr@eladkal
, '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" + '
Skip to content

Add CI support for SQLAlchemy 2.0 - #52233

Merged
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests
Aug 10, 2025
Merged

Add CI support for SQLAlchemy 2.0#52233
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests

Conversation

@Dev-iL

@Dev-iLDev-iL commented Jun 25, 2025

Copy link
Copy Markdown
Collaborator

closes: #48953, #52663
related: #28723, #50960 (prerequisite that's included in this PR)

  • Add the check_upgrade_sqlalchemy container entrypoint for testing SQLA v2 on CI
  • Fix some existing shellcheck violations reported by shellcheck-py.
  • Robustify multiple unit tests and amend some business logic.

^ 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 airflow-core/newsfragments.

CopilotAI review requested due to automatic review settings June 25, 2025 09:29

This comment was marked as outdated.

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from 96d2e8d to 482fff4CompareJune 25, 2025 09:51
@Dev-iL
Dev-iL requested a review from CopilotJune 25, 2025 09:55

CopilotAI 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.

Pull Request Overview

This PR introduces a new entrypoint function, check_upgrade_sqlalchemy, to handle upgrading SQLAlchemy for testing SQLA v2 while also addressing several shellcheck violations.

  • Adds check_upgrade_sqlalchemy implementations to both scripts/docker/entrypoint_ci.sh and Dockerfile.ci.
  • Updates Breeze parameters, commands, and CI workflow to include an upgrade_sqlalchemy flag.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
scripts/docker/entrypoint_ci.shAdds check_upgrade_sqlalchemy function with minor quoting adjustments.
scripts/ci/docker-compose/devcontainer.envIntroduces UPGRADE_SQLALCHEMY environment variable.
dev/breeze/src/airflow_breeze/params/shell_params.pyAdds new boolean parameter upgrade_sqlalchemy.
dev/breeze/src/airflow_breeze/commands/developer_commands.pyAdds upgrade_sqlalchemy option to developer commands.
dev/breeze/src/airflow_breeze/commands/common_options.pyAdds a new click option for upgrade_sqlalchemy with help text.
Dockerfile.ciAdds check_upgrade_sqlalchemy function similar to the entrypoint script.
.github/workflows/run-unit-tests.ymlAdds upgrade-sqlalchemy input to the CI workflow.
Comments suppressed due to low confidence (1)

dev/breeze/src/airflow_breeze/commands/common_options.py:157

  • [nitpick] The help text for the upgrade_sqlalchemy option mentions an 'experimental supported version'; consider revising it to clearly indicate that it upgrades SQLAlchemy to the latest version required for running tests, ensuring consistency with the function output.
option_upgrade_sqlalchemy = click.option(

Comment threadscripts/docker/entrypoint_ci.sh Outdated
Comment threadDockerfile.ci Outdated
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 4 times, most recently from d3dd43d to d55a749CompareJune 25, 2025 13:09
@Dev-iL
Dev-iL requested a review from vincbeck as a code ownerJune 25, 2025 13:09
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

The tests are failing as expected on SQLA v2 incompatibilities. Now what? Should I suggest in #28723 that developers rebase to my branch?

@potiuk

Copy link
Copy Markdown
Member

Yes. And make it a part of your PR and we can continuously rebase the PRs on top of yours. This is going to be a little involved and require rebasing here and there.

@Dev-iL
Dev-iL requested a review from XD-DENG as a code ownerJune 25, 2025 15:01
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

Should we perhaps decide on a single "main" branch (e.g. your one) and target the various SQLA2 PRs into it? Just to save the effort of rebasing across multiple forks...

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 2 times, most recently from 7bde1ac to 34e7502CompareJune 26, 2025 15:43
@Dev-iL
Dev-iL marked this pull request as draft June 28, 2025 06:37
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 5 times, most recently from 5efe8cb to 9cb0ba2CompareJune 29, 2025 13:44
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 13 times, most recently from bb95354 to c6b5a04CompareJuly 24, 2025 09:12
@potiukpotiuk added the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
@potiuk
potiukforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c6b5a04 to c8dc921CompareJuly 24, 2025 11:13
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c8dc921 to 907e709CompareJuly 24, 2025 11:14
@potiukpotiuk removed the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
Dev-iLand others added 6 commits August 10, 2025 16:34
+ Fix some SQLA2 incompatibilities
+ Skip multiple tests that rely on FAB
Might help with the MySQL 8.4 + Py3.13 combination
- Make some tests more specific so as not trip on irrelevant things.
- Add a couple of fixtures to ensure a predictable engine state.
- Replace uses of unittest.mock with the mocker fixture.
- Add tests for `AutocommitEngineForMySQL`.
@potiuk

Copy link
Copy Markdown
Member

LGTM. The MyPy fix has been fixed separated (leaving some TODOs: in type checking #54321

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

all versionsIf set, the CI build will be forced to use all versions of Python/K8S/DBsarea:dev-tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tests for SQLAlchemy 2

6 participants

@Dev-iL@potiuk@anton-bedrock@uranusjr@eladkal
, '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('^' + ".*" + '
Skip to content

Add CI support for SQLAlchemy 2.0 - #52233

Merged
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests
Aug 10, 2025
Merged

Add CI support for SQLAlchemy 2.0#52233
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests

Conversation

@Dev-iL

@Dev-iLDev-iL commented Jun 25, 2025

Copy link
Copy Markdown
Collaborator

closes: #48953, #52663
related: #28723, #50960 (prerequisite that's included in this PR)

  • Add the check_upgrade_sqlalchemy container entrypoint for testing SQLA v2 on CI
  • Fix some existing shellcheck violations reported by shellcheck-py.
  • Robustify multiple unit tests and amend some business logic.

^ 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 airflow-core/newsfragments.

CopilotAI review requested due to automatic review settings June 25, 2025 09:29

This comment was marked as outdated.

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from 96d2e8d to 482fff4CompareJune 25, 2025 09:51
@Dev-iL
Dev-iL requested a review from CopilotJune 25, 2025 09:55

CopilotAI 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.

Pull Request Overview

This PR introduces a new entrypoint function, check_upgrade_sqlalchemy, to handle upgrading SQLAlchemy for testing SQLA v2 while also addressing several shellcheck violations.

  • Adds check_upgrade_sqlalchemy implementations to both scripts/docker/entrypoint_ci.sh and Dockerfile.ci.
  • Updates Breeze parameters, commands, and CI workflow to include an upgrade_sqlalchemy flag.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
scripts/docker/entrypoint_ci.shAdds check_upgrade_sqlalchemy function with minor quoting adjustments.
scripts/ci/docker-compose/devcontainer.envIntroduces UPGRADE_SQLALCHEMY environment variable.
dev/breeze/src/airflow_breeze/params/shell_params.pyAdds new boolean parameter upgrade_sqlalchemy.
dev/breeze/src/airflow_breeze/commands/developer_commands.pyAdds upgrade_sqlalchemy option to developer commands.
dev/breeze/src/airflow_breeze/commands/common_options.pyAdds a new click option for upgrade_sqlalchemy with help text.
Dockerfile.ciAdds check_upgrade_sqlalchemy function similar to the entrypoint script.
.github/workflows/run-unit-tests.ymlAdds upgrade-sqlalchemy input to the CI workflow.
Comments suppressed due to low confidence (1)

dev/breeze/src/airflow_breeze/commands/common_options.py:157

  • [nitpick] The help text for the upgrade_sqlalchemy option mentions an 'experimental supported version'; consider revising it to clearly indicate that it upgrades SQLAlchemy to the latest version required for running tests, ensuring consistency with the function output.
option_upgrade_sqlalchemy = click.option(

Comment threadscripts/docker/entrypoint_ci.sh Outdated
Comment threadDockerfile.ci Outdated
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 4 times, most recently from d3dd43d to d55a749CompareJune 25, 2025 13:09
@Dev-iL
Dev-iL requested a review from vincbeck as a code ownerJune 25, 2025 13:09
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

The tests are failing as expected on SQLA v2 incompatibilities. Now what? Should I suggest in #28723 that developers rebase to my branch?

@potiuk

Copy link
Copy Markdown
Member

Yes. And make it a part of your PR and we can continuously rebase the PRs on top of yours. This is going to be a little involved and require rebasing here and there.

@Dev-iL
Dev-iL requested a review from XD-DENG as a code ownerJune 25, 2025 15:01
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

Should we perhaps decide on a single "main" branch (e.g. your one) and target the various SQLA2 PRs into it? Just to save the effort of rebasing across multiple forks...

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 2 times, most recently from 7bde1ac to 34e7502CompareJune 26, 2025 15:43
@Dev-iL
Dev-iL marked this pull request as draft June 28, 2025 06:37
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 5 times, most recently from 5efe8cb to 9cb0ba2CompareJune 29, 2025 13:44
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 13 times, most recently from bb95354 to c6b5a04CompareJuly 24, 2025 09:12
@potiukpotiuk added the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
@potiuk
potiukforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c6b5a04 to c8dc921CompareJuly 24, 2025 11:13
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c8dc921 to 907e709CompareJuly 24, 2025 11:14
@potiukpotiuk removed the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
Dev-iLand others added 6 commits August 10, 2025 16:34
+ Fix some SQLA2 incompatibilities
+ Skip multiple tests that rely on FAB
Might help with the MySQL 8.4 + Py3.13 combination
- Make some tests more specific so as not trip on irrelevant things.
- Add a couple of fixtures to ensure a predictable engine state.
- Replace uses of unittest.mock with the mocker fixture.
- Add tests for `AutocommitEngineForMySQL`.
@potiuk

Copy link
Copy Markdown
Member

LGTM. The MyPy fix has been fixed separated (leaving some TODOs: in type checking #54321

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

all versionsIf set, the CI build will be forced to use all versions of Python/K8S/DBsarea:dev-tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tests for SQLAlchemy 2

6 participants

@Dev-iL@potiuk@anton-bedrock@uranusjr@eladkal
, '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('^' + ".*" + '
Skip to content

Add CI support for SQLAlchemy 2.0 - #52233

Merged
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests
Aug 10, 2025
Merged

Add CI support for SQLAlchemy 2.0#52233
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests

Conversation

@Dev-iL

@Dev-iLDev-iL commented Jun 25, 2025

Copy link
Copy Markdown
Collaborator

closes: #48953, #52663
related: #28723, #50960 (prerequisite that's included in this PR)

  • Add the check_upgrade_sqlalchemy container entrypoint for testing SQLA v2 on CI
  • Fix some existing shellcheck violations reported by shellcheck-py.
  • Robustify multiple unit tests and amend some business logic.

^ 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 airflow-core/newsfragments.

CopilotAI review requested due to automatic review settings June 25, 2025 09:29

This comment was marked as outdated.

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from 96d2e8d to 482fff4CompareJune 25, 2025 09:51
@Dev-iL
Dev-iL requested a review from CopilotJune 25, 2025 09:55

CopilotAI 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.

Pull Request Overview

This PR introduces a new entrypoint function, check_upgrade_sqlalchemy, to handle upgrading SQLAlchemy for testing SQLA v2 while also addressing several shellcheck violations.

  • Adds check_upgrade_sqlalchemy implementations to both scripts/docker/entrypoint_ci.sh and Dockerfile.ci.
  • Updates Breeze parameters, commands, and CI workflow to include an upgrade_sqlalchemy flag.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
scripts/docker/entrypoint_ci.shAdds check_upgrade_sqlalchemy function with minor quoting adjustments.
scripts/ci/docker-compose/devcontainer.envIntroduces UPGRADE_SQLALCHEMY environment variable.
dev/breeze/src/airflow_breeze/params/shell_params.pyAdds new boolean parameter upgrade_sqlalchemy.
dev/breeze/src/airflow_breeze/commands/developer_commands.pyAdds upgrade_sqlalchemy option to developer commands.
dev/breeze/src/airflow_breeze/commands/common_options.pyAdds a new click option for upgrade_sqlalchemy with help text.
Dockerfile.ciAdds check_upgrade_sqlalchemy function similar to the entrypoint script.
.github/workflows/run-unit-tests.ymlAdds upgrade-sqlalchemy input to the CI workflow.
Comments suppressed due to low confidence (1)

dev/breeze/src/airflow_breeze/commands/common_options.py:157

  • [nitpick] The help text for the upgrade_sqlalchemy option mentions an 'experimental supported version'; consider revising it to clearly indicate that it upgrades SQLAlchemy to the latest version required for running tests, ensuring consistency with the function output.
option_upgrade_sqlalchemy = click.option(

Comment threadscripts/docker/entrypoint_ci.sh Outdated
Comment threadDockerfile.ci Outdated
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 4 times, most recently from d3dd43d to d55a749CompareJune 25, 2025 13:09
@Dev-iL
Dev-iL requested a review from vincbeck as a code ownerJune 25, 2025 13:09
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

The tests are failing as expected on SQLA v2 incompatibilities. Now what? Should I suggest in #28723 that developers rebase to my branch?

@potiuk

Copy link
Copy Markdown
Member

Yes. And make it a part of your PR and we can continuously rebase the PRs on top of yours. This is going to be a little involved and require rebasing here and there.

@Dev-iL
Dev-iL requested a review from XD-DENG as a code ownerJune 25, 2025 15:01
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

Should we perhaps decide on a single "main" branch (e.g. your one) and target the various SQLA2 PRs into it? Just to save the effort of rebasing across multiple forks...

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 2 times, most recently from 7bde1ac to 34e7502CompareJune 26, 2025 15:43
@Dev-iL
Dev-iL marked this pull request as draft June 28, 2025 06:37
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 5 times, most recently from 5efe8cb to 9cb0ba2CompareJune 29, 2025 13:44
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 13 times, most recently from bb95354 to c6b5a04CompareJuly 24, 2025 09:12
@potiukpotiuk added the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
@potiuk
potiukforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c6b5a04 to c8dc921CompareJuly 24, 2025 11:13
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c8dc921 to 907e709CompareJuly 24, 2025 11:14
@potiukpotiuk removed the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
Dev-iLand others added 6 commits August 10, 2025 16:34
+ Fix some SQLA2 incompatibilities
+ Skip multiple tests that rely on FAB
Might help with the MySQL 8.4 + Py3.13 combination
- Make some tests more specific so as not trip on irrelevant things.
- Add a couple of fixtures to ensure a predictable engine state.
- Replace uses of unittest.mock with the mocker fixture.
- Add tests for `AutocommitEngineForMySQL`.
@potiuk

Copy link
Copy Markdown
Member

LGTM. The MyPy fix has been fixed separated (leaving some TODOs: in type checking #54321

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

all versionsIf set, the CI build will be forced to use all versions of Python/K8S/DBsarea:dev-tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tests for SQLAlchemy 2

6 participants

@Dev-iL@potiuk@anton-bedrock@uranusjr@eladkal
, '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" + '
Skip to content

Add CI support for SQLAlchemy 2.0 - #52233

Merged
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests
Aug 10, 2025
Merged

Add CI support for SQLAlchemy 2.0#52233
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests

Conversation

@Dev-iL

@Dev-iLDev-iL commented Jun 25, 2025

Copy link
Copy Markdown
Collaborator

closes: #48953, #52663
related: #28723, #50960 (prerequisite that's included in this PR)

  • Add the check_upgrade_sqlalchemy container entrypoint for testing SQLA v2 on CI
  • Fix some existing shellcheck violations reported by shellcheck-py.
  • Robustify multiple unit tests and amend some business logic.

^ 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 airflow-core/newsfragments.

CopilotAI review requested due to automatic review settings June 25, 2025 09:29

This comment was marked as outdated.

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from 96d2e8d to 482fff4CompareJune 25, 2025 09:51
@Dev-iL
Dev-iL requested a review from CopilotJune 25, 2025 09:55

CopilotAI 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.

Pull Request Overview

This PR introduces a new entrypoint function, check_upgrade_sqlalchemy, to handle upgrading SQLAlchemy for testing SQLA v2 while also addressing several shellcheck violations.

  • Adds check_upgrade_sqlalchemy implementations to both scripts/docker/entrypoint_ci.sh and Dockerfile.ci.
  • Updates Breeze parameters, commands, and CI workflow to include an upgrade_sqlalchemy flag.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
scripts/docker/entrypoint_ci.shAdds check_upgrade_sqlalchemy function with minor quoting adjustments.
scripts/ci/docker-compose/devcontainer.envIntroduces UPGRADE_SQLALCHEMY environment variable.
dev/breeze/src/airflow_breeze/params/shell_params.pyAdds new boolean parameter upgrade_sqlalchemy.
dev/breeze/src/airflow_breeze/commands/developer_commands.pyAdds upgrade_sqlalchemy option to developer commands.
dev/breeze/src/airflow_breeze/commands/common_options.pyAdds a new click option for upgrade_sqlalchemy with help text.
Dockerfile.ciAdds check_upgrade_sqlalchemy function similar to the entrypoint script.
.github/workflows/run-unit-tests.ymlAdds upgrade-sqlalchemy input to the CI workflow.
Comments suppressed due to low confidence (1)

dev/breeze/src/airflow_breeze/commands/common_options.py:157

  • [nitpick] The help text for the upgrade_sqlalchemy option mentions an 'experimental supported version'; consider revising it to clearly indicate that it upgrades SQLAlchemy to the latest version required for running tests, ensuring consistency with the function output.
option_upgrade_sqlalchemy = click.option(

Comment threadscripts/docker/entrypoint_ci.sh Outdated
Comment threadDockerfile.ci Outdated
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 4 times, most recently from d3dd43d to d55a749CompareJune 25, 2025 13:09
@Dev-iL
Dev-iL requested a review from vincbeck as a code ownerJune 25, 2025 13:09
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

The tests are failing as expected on SQLA v2 incompatibilities. Now what? Should I suggest in #28723 that developers rebase to my branch?

@potiuk

Copy link
Copy Markdown
Member

Yes. And make it a part of your PR and we can continuously rebase the PRs on top of yours. This is going to be a little involved and require rebasing here and there.

@Dev-iL
Dev-iL requested a review from XD-DENG as a code ownerJune 25, 2025 15:01
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

Should we perhaps decide on a single "main" branch (e.g. your one) and target the various SQLA2 PRs into it? Just to save the effort of rebasing across multiple forks...

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 2 times, most recently from 7bde1ac to 34e7502CompareJune 26, 2025 15:43
@Dev-iL
Dev-iL marked this pull request as draft June 28, 2025 06:37
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 5 times, most recently from 5efe8cb to 9cb0ba2CompareJune 29, 2025 13:44
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 13 times, most recently from bb95354 to c6b5a04CompareJuly 24, 2025 09:12
@potiukpotiuk added the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
@potiuk
potiukforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c6b5a04 to c8dc921CompareJuly 24, 2025 11:13
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c8dc921 to 907e709CompareJuly 24, 2025 11:14
@potiukpotiuk removed the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
Dev-iLand others added 6 commits August 10, 2025 16:34
+ Fix some SQLA2 incompatibilities
+ Skip multiple tests that rely on FAB
Might help with the MySQL 8.4 + Py3.13 combination
- Make some tests more specific so as not trip on irrelevant things.
- Add a couple of fixtures to ensure a predictable engine state.
- Replace uses of unittest.mock with the mocker fixture.
- Add tests for `AutocommitEngineForMySQL`.
@potiuk

Copy link
Copy Markdown
Member

LGTM. The MyPy fix has been fixed separated (leaving some TODOs: in type checking #54321

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

all versionsIf set, the CI build will be forced to use all versions of Python/K8S/DBsarea:dev-tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tests for SQLAlchemy 2

6 participants

@Dev-iL@potiuk@anton-bedrock@uranusjr@eladkal
, '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('^' + ".*" + '
Skip to content

Add CI support for SQLAlchemy 2.0 - #52233

Merged
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests
Aug 10, 2025
Merged

Add CI support for SQLAlchemy 2.0#52233
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests

Conversation

@Dev-iL

@Dev-iLDev-iL commented Jun 25, 2025

Copy link
Copy Markdown
Collaborator

closes: #48953, #52663
related: #28723, #50960 (prerequisite that's included in this PR)

  • Add the check_upgrade_sqlalchemy container entrypoint for testing SQLA v2 on CI
  • Fix some existing shellcheck violations reported by shellcheck-py.
  • Robustify multiple unit tests and amend some business logic.

^ 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 airflow-core/newsfragments.

CopilotAI review requested due to automatic review settings June 25, 2025 09:29

This comment was marked as outdated.

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from 96d2e8d to 482fff4CompareJune 25, 2025 09:51
@Dev-iL
Dev-iL requested a review from CopilotJune 25, 2025 09:55

CopilotAI 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.

Pull Request Overview

This PR introduces a new entrypoint function, check_upgrade_sqlalchemy, to handle upgrading SQLAlchemy for testing SQLA v2 while also addressing several shellcheck violations.

  • Adds check_upgrade_sqlalchemy implementations to both scripts/docker/entrypoint_ci.sh and Dockerfile.ci.
  • Updates Breeze parameters, commands, and CI workflow to include an upgrade_sqlalchemy flag.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
scripts/docker/entrypoint_ci.shAdds check_upgrade_sqlalchemy function with minor quoting adjustments.
scripts/ci/docker-compose/devcontainer.envIntroduces UPGRADE_SQLALCHEMY environment variable.
dev/breeze/src/airflow_breeze/params/shell_params.pyAdds new boolean parameter upgrade_sqlalchemy.
dev/breeze/src/airflow_breeze/commands/developer_commands.pyAdds upgrade_sqlalchemy option to developer commands.
dev/breeze/src/airflow_breeze/commands/common_options.pyAdds a new click option for upgrade_sqlalchemy with help text.
Dockerfile.ciAdds check_upgrade_sqlalchemy function similar to the entrypoint script.
.github/workflows/run-unit-tests.ymlAdds upgrade-sqlalchemy input to the CI workflow.
Comments suppressed due to low confidence (1)

dev/breeze/src/airflow_breeze/commands/common_options.py:157

  • [nitpick] The help text for the upgrade_sqlalchemy option mentions an 'experimental supported version'; consider revising it to clearly indicate that it upgrades SQLAlchemy to the latest version required for running tests, ensuring consistency with the function output.
option_upgrade_sqlalchemy = click.option(

Comment threadscripts/docker/entrypoint_ci.sh Outdated
Comment threadDockerfile.ci Outdated
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 4 times, most recently from d3dd43d to d55a749CompareJune 25, 2025 13:09
@Dev-iL
Dev-iL requested a review from vincbeck as a code ownerJune 25, 2025 13:09
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

The tests are failing as expected on SQLA v2 incompatibilities. Now what? Should I suggest in #28723 that developers rebase to my branch?

@potiuk

Copy link
Copy Markdown
Member

Yes. And make it a part of your PR and we can continuously rebase the PRs on top of yours. This is going to be a little involved and require rebasing here and there.

@Dev-iL
Dev-iL requested a review from XD-DENG as a code ownerJune 25, 2025 15:01
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

Should we perhaps decide on a single "main" branch (e.g. your one) and target the various SQLA2 PRs into it? Just to save the effort of rebasing across multiple forks...

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 2 times, most recently from 7bde1ac to 34e7502CompareJune 26, 2025 15:43
@Dev-iL
Dev-iL marked this pull request as draft June 28, 2025 06:37
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 5 times, most recently from 5efe8cb to 9cb0ba2CompareJune 29, 2025 13:44
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 13 times, most recently from bb95354 to c6b5a04CompareJuly 24, 2025 09:12
@potiukpotiuk added the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
@potiuk
potiukforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c6b5a04 to c8dc921CompareJuly 24, 2025 11:13
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c8dc921 to 907e709CompareJuly 24, 2025 11:14
@potiukpotiuk removed the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
Dev-iLand others added 6 commits August 10, 2025 16:34
+ Fix some SQLA2 incompatibilities
+ Skip multiple tests that rely on FAB
Might help with the MySQL 8.4 + Py3.13 combination
- Make some tests more specific so as not trip on irrelevant things.
- Add a couple of fixtures to ensure a predictable engine state.
- Replace uses of unittest.mock with the mocker fixture.
- Add tests for `AutocommitEngineForMySQL`.
@potiuk

Copy link
Copy Markdown
Member

LGTM. The MyPy fix has been fixed separated (leaving some TODOs: in type checking #54321

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

all versionsIf set, the CI build will be forced to use all versions of Python/K8S/DBsarea:dev-tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tests for SQLAlchemy 2

6 participants

@Dev-iL@potiuk@anton-bedrock@uranusjr@eladkal
, '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('^' + ".*" + '
Skip to content

Add CI support for SQLAlchemy 2.0 - #52233

Merged
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests
Aug 10, 2025
Merged

Add CI support for SQLAlchemy 2.0#52233
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests

Conversation

@Dev-iL

@Dev-iLDev-iL commented Jun 25, 2025

Copy link
Copy Markdown
Collaborator

closes: #48953, #52663
related: #28723, #50960 (prerequisite that's included in this PR)

  • Add the check_upgrade_sqlalchemy container entrypoint for testing SQLA v2 on CI
  • Fix some existing shellcheck violations reported by shellcheck-py.
  • Robustify multiple unit tests and amend some business logic.

^ 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 airflow-core/newsfragments.

CopilotAI review requested due to automatic review settings June 25, 2025 09:29

This comment was marked as outdated.

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from 96d2e8d to 482fff4CompareJune 25, 2025 09:51
@Dev-iL
Dev-iL requested a review from CopilotJune 25, 2025 09:55

CopilotAI 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.

Pull Request Overview

This PR introduces a new entrypoint function, check_upgrade_sqlalchemy, to handle upgrading SQLAlchemy for testing SQLA v2 while also addressing several shellcheck violations.

  • Adds check_upgrade_sqlalchemy implementations to both scripts/docker/entrypoint_ci.sh and Dockerfile.ci.
  • Updates Breeze parameters, commands, and CI workflow to include an upgrade_sqlalchemy flag.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
scripts/docker/entrypoint_ci.shAdds check_upgrade_sqlalchemy function with minor quoting adjustments.
scripts/ci/docker-compose/devcontainer.envIntroduces UPGRADE_SQLALCHEMY environment variable.
dev/breeze/src/airflow_breeze/params/shell_params.pyAdds new boolean parameter upgrade_sqlalchemy.
dev/breeze/src/airflow_breeze/commands/developer_commands.pyAdds upgrade_sqlalchemy option to developer commands.
dev/breeze/src/airflow_breeze/commands/common_options.pyAdds a new click option for upgrade_sqlalchemy with help text.
Dockerfile.ciAdds check_upgrade_sqlalchemy function similar to the entrypoint script.
.github/workflows/run-unit-tests.ymlAdds upgrade-sqlalchemy input to the CI workflow.
Comments suppressed due to low confidence (1)

dev/breeze/src/airflow_breeze/commands/common_options.py:157

  • [nitpick] The help text for the upgrade_sqlalchemy option mentions an 'experimental supported version'; consider revising it to clearly indicate that it upgrades SQLAlchemy to the latest version required for running tests, ensuring consistency with the function output.
option_upgrade_sqlalchemy = click.option(

Comment threadscripts/docker/entrypoint_ci.sh Outdated
Comment threadDockerfile.ci Outdated
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 4 times, most recently from d3dd43d to d55a749CompareJune 25, 2025 13:09
@Dev-iL
Dev-iL requested a review from vincbeck as a code ownerJune 25, 2025 13:09
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

The tests are failing as expected on SQLA v2 incompatibilities. Now what? Should I suggest in #28723 that developers rebase to my branch?

@potiuk

Copy link
Copy Markdown
Member

Yes. And make it a part of your PR and we can continuously rebase the PRs on top of yours. This is going to be a little involved and require rebasing here and there.

@Dev-iL
Dev-iL requested a review from XD-DENG as a code ownerJune 25, 2025 15:01
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

Should we perhaps decide on a single "main" branch (e.g. your one) and target the various SQLA2 PRs into it? Just to save the effort of rebasing across multiple forks...

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 2 times, most recently from 7bde1ac to 34e7502CompareJune 26, 2025 15:43
@Dev-iL
Dev-iL marked this pull request as draft June 28, 2025 06:37
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 5 times, most recently from 5efe8cb to 9cb0ba2CompareJune 29, 2025 13:44
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 13 times, most recently from bb95354 to c6b5a04CompareJuly 24, 2025 09:12
@potiukpotiuk added the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
@potiuk
potiukforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c6b5a04 to c8dc921CompareJuly 24, 2025 11:13
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c8dc921 to 907e709CompareJuly 24, 2025 11:14
@potiukpotiuk removed the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
Dev-iLand others added 6 commits August 10, 2025 16:34
+ Fix some SQLA2 incompatibilities
+ Skip multiple tests that rely on FAB
Might help with the MySQL 8.4 + Py3.13 combination
- Make some tests more specific so as not trip on irrelevant things.
- Add a couple of fixtures to ensure a predictable engine state.
- Replace uses of unittest.mock with the mocker fixture.
- Add tests for `AutocommitEngineForMySQL`.
@potiuk

Copy link
Copy Markdown
Member

LGTM. The MyPy fix has been fixed separated (leaving some TODOs: in type checking #54321

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

all versionsIf set, the CI build will be forced to use all versions of Python/K8S/DBsarea:dev-tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tests for SQLAlchemy 2

6 participants

@Dev-iL@potiuk@anton-bedrock@uranusjr@eladkal
, '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); } })(); })();
Skip to content

Add CI support for SQLAlchemy 2.0 - #52233

Merged
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests
Aug 10, 2025
Merged

Add CI support for SQLAlchemy 2.0#52233
potiuk merged 6 commits into
apache:mainfrom
Dev-iL:Dev-iL/2506/sqla-v2-tests

Conversation

@Dev-iL

@Dev-iLDev-iL commented Jun 25, 2025

Copy link
Copy Markdown
Collaborator

closes: #48953, #52663
related: #28723, #50960 (prerequisite that's included in this PR)

  • Add the check_upgrade_sqlalchemy container entrypoint for testing SQLA v2 on CI
  • Fix some existing shellcheck violations reported by shellcheck-py.
  • Robustify multiple unit tests and amend some business logic.

^ 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 airflow-core/newsfragments.

CopilotAI review requested due to automatic review settings June 25, 2025 09:29

This comment was marked as outdated.

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from 96d2e8d to 482fff4CompareJune 25, 2025 09:51
@Dev-iL
Dev-iL requested a review from CopilotJune 25, 2025 09:55

CopilotAI 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.

Pull Request Overview

This PR introduces a new entrypoint function, check_upgrade_sqlalchemy, to handle upgrading SQLAlchemy for testing SQLA v2 while also addressing several shellcheck violations.

  • Adds check_upgrade_sqlalchemy implementations to both scripts/docker/entrypoint_ci.sh and Dockerfile.ci.
  • Updates Breeze parameters, commands, and CI workflow to include an upgrade_sqlalchemy flag.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
scripts/docker/entrypoint_ci.shAdds check_upgrade_sqlalchemy function with minor quoting adjustments.
scripts/ci/docker-compose/devcontainer.envIntroduces UPGRADE_SQLALCHEMY environment variable.
dev/breeze/src/airflow_breeze/params/shell_params.pyAdds new boolean parameter upgrade_sqlalchemy.
dev/breeze/src/airflow_breeze/commands/developer_commands.pyAdds upgrade_sqlalchemy option to developer commands.
dev/breeze/src/airflow_breeze/commands/common_options.pyAdds a new click option for upgrade_sqlalchemy with help text.
Dockerfile.ciAdds check_upgrade_sqlalchemy function similar to the entrypoint script.
.github/workflows/run-unit-tests.ymlAdds upgrade-sqlalchemy input to the CI workflow.
Comments suppressed due to low confidence (1)

dev/breeze/src/airflow_breeze/commands/common_options.py:157

  • [nitpick] The help text for the upgrade_sqlalchemy option mentions an 'experimental supported version'; consider revising it to clearly indicate that it upgrades SQLAlchemy to the latest version required for running tests, ensuring consistency with the function output.
option_upgrade_sqlalchemy = click.option(

Comment threadscripts/docker/entrypoint_ci.sh Outdated
Comment threadDockerfile.ci Outdated
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 4 times, most recently from d3dd43d to d55a749CompareJune 25, 2025 13:09
@Dev-iL
Dev-iL requested a review from vincbeck as a code ownerJune 25, 2025 13:09
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

The tests are failing as expected on SQLA v2 incompatibilities. Now what? Should I suggest in #28723 that developers rebase to my branch?

@potiuk

Copy link
Copy Markdown
Member

Yes. And make it a part of your PR and we can continuously rebase the PRs on top of yours. This is going to be a little involved and require rebasing here and there.

@Dev-iL
Dev-iL requested a review from XD-DENG as a code ownerJune 25, 2025 15:01
@Dev-iL

Copy link
Copy Markdown
CollaboratorAuthor

Should we perhaps decide on a single "main" branch (e.g. your one) and target the various SQLA2 PRs into it? Just to save the effort of rebasing across multiple forks...

@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 2 times, most recently from 7bde1ac to 34e7502CompareJune 26, 2025 15:43
@Dev-iL
Dev-iL marked this pull request as draft June 28, 2025 06:37
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 5 times, most recently from 5efe8cb to 9cb0ba2CompareJune 29, 2025 13:44
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch 13 times, most recently from bb95354 to c6b5a04CompareJuly 24, 2025 09:12
@potiukpotiuk added the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
@potiuk
potiukforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c6b5a04 to c8dc921CompareJuly 24, 2025 11:13
@Dev-iL
Dev-iLforce-pushed the Dev-iL/2506/sqla-v2-tests branch from c8dc921 to 907e709CompareJuly 24, 2025 11:14
@potiukpotiuk removed the debug ci resources Set it on PR if you want to debug resource usage for it label Jul 24, 2025
Dev-iLand others added 6 commits August 10, 2025 16:34
+ Fix some SQLA2 incompatibilities
+ Skip multiple tests that rely on FAB
Might help with the MySQL 8.4 + Py3.13 combination
- Make some tests more specific so as not trip on irrelevant things.
- Add a couple of fixtures to ensure a predictable engine state.
- Replace uses of unittest.mock with the mocker fixture.
- Add tests for `AutocommitEngineForMySQL`.
@potiuk

Copy link
Copy Markdown
Member

LGTM. The MyPy fix has been fixed separated (leaving some TODOs: in type checking #54321

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

all versionsIf set, the CI build will be forced to use all versions of Python/K8S/DBsarea:dev-tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tests for SQLAlchemy 2

6 participants

@Dev-iL@potiuk@anton-bedrock@uranusjr@eladkal