From fe916eb3aea385fb3c324fc9be66ecff123d12f7 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 5 Nov 2025 20:02:30 +0100 Subject: [PATCH 1/5] Apache Superset: Format CI recipe --- .github/workflows/application-apache-superset.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/application-apache-superset.yml b/.github/workflows/application-apache-superset.yml index 14fdf86d..0534c508 100644 --- a/.github/workflows/application-apache-superset.yml +++ b/.github/workflows/application-apache-superset.yml @@ -41,11 +41,18 @@ jobs: matrix: os: [ ubuntu-22.04 ] superset-version: [ + # Deactivate testing 3.x until that patch landed. # https://github.com/apache/superset/issues/33162 # https://github.com/apache/superset/pull/33216 # "3.*", + + # Superset 4.x has been fixed. "4.*", + + # Don't test 5.x until there will be a patch release 5.0.1. + # https://github.com/apache/superset/issues/35942 + # "5.*", ] python-version: [ "3.9", "3.11" ] cratedb-version: [ 'nightly' ] From 74eefb0c4a50224ecc128a37f6822faa00aef3c7 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 5 Nov 2025 20:03:11 +0100 Subject: [PATCH 2/5] Apache Superset: Validate against version 6.0.0rc2 --- .github/workflows/application-apache-superset.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/application-apache-superset.yml b/.github/workflows/application-apache-superset.yml index 0534c508..6e09813c 100644 --- a/.github/workflows/application-apache-superset.yml +++ b/.github/workflows/application-apache-superset.yml @@ -53,10 +53,19 @@ jobs: # Don't test 5.x until there will be a patch release 5.0.1. # https://github.com/apache/superset/issues/35942 # "5.*", + + # Superset 6.x will work without much ado. + "6.0.0rc2", ] python-version: [ "3.9", "3.11" ] cratedb-version: [ 'nightly' ] + exclude: + # Apache Superset 6.x no longer supports Python 3.9. + - superset-version: "6.0.0rc2" + python-version: "3.9" + + services: cratedb: image: crate/crate:${{ matrix.cratedb-version }} From a26c9656eb057a0773b0b3a11175534026abd63c Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 5 Nov 2025 22:40:06 +0100 Subject: [PATCH 3/5] Apache Superset: Adapt software tests for Superset 6 --- application/apache-superset/test.py | 30 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/application/apache-superset/test.py b/application/apache-superset/test.py index c0b99e9f..c0b2f90a 100644 --- a/application/apache-superset/test.py +++ b/application/apache-superset/test.py @@ -1,5 +1,5 @@ import requests -from playwright.sync_api import sync_playwright +from playwright.sync_api import expect, sync_playwright from util import get_auth_headers @@ -62,29 +62,29 @@ def test_ui(): # Navigate to Apache Superset. page = browser.new_page() page.goto(uri_home) + page.wait_for_url("**/login/") # Run the login procedure. - assert page.text_content(".panel-title") == "Sign In" - assert page.url.endswith("/login/") page.type("input#username", "admin") page.type("input#password", "admin") - page.click("input[type=submit]") + page.click("[type=submit]") + page.wait_for_load_state() - # Verify login was successful, and being navigated to `Home`. - html_title = page.text_content("title").strip() - assert html_title == "Superset" - assert page.url.endswith("/superset/welcome/") - - # Invoke SQL Lab with an example query, and verify response. - sql = "SELECT * FROM sys.summits LIMIT 42;" + # Navigate to SQL Lab. page.goto(uri_sqllab) + page.wait_for_load_state() + + # Invoke query on SQL Lab. + sql = "SELECT region, mountain, height FROM sys.summits LIMIT 42;" page.wait_for_selector("#ace-editor") page.evaluate(f"ace.edit('ace-editor').setValue('{sql}')") page.get_by_role("button", name="Run").click() - page.wait_for_timeout(500) - page_body = page.text_content("div.ant-tabs-content-holder") - assert "42 rows" in page_body - assert "Monte Rosa" in page_body + page.wait_for_load_state() + + # Verify SQL Lab response. + locator = page.locator("body") + # expect(locator).to_contain_text("42 rows") + expect(locator).to_contain_text("Monte Rosa") # That's it. browser.close() From a8e39408d682ce1918335d182b8f7d9b77bfda99 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 5 Nov 2025 20:30:26 +0100 Subject: [PATCH 4/5] Apache Superset: Use more recent versions of Python on CI --- .github/workflows/application-apache-superset.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/application-apache-superset.yml b/.github/workflows/application-apache-superset.yml index 6e09813c..4bb06d7e 100644 --- a/.github/workflows/application-apache-superset.yml +++ b/.github/workflows/application-apache-superset.yml @@ -57,7 +57,11 @@ jobs: # Superset 6.x will work without much ado. "6.0.0rc2", ] - python-version: [ "3.9", "3.11" ] + python-version: [ + "3.9", + "3.10", + "3.11", + ] cratedb-version: [ 'nightly' ] exclude: @@ -65,6 +69,13 @@ jobs: - superset-version: "6.0.0rc2" python-version: "3.9" + include: + # Apache Superset 6.x supports Python 3.12. + - os: "ubuntu-22.04" + cratedb-version: "nightly" + superset-version: "6.0.0rc2" + python-version: "3.12" + services: cratedb: From 438bf2657bed30b597808b250d3168e3dcfda0ed Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 5 Nov 2025 23:54:50 +0100 Subject: [PATCH 5/5] Apache Superset: Use `ubuntu-latest` on CI --- .github/workflows/application-apache-superset.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/application-apache-superset.yml b/.github/workflows/application-apache-superset.yml index 4bb06d7e..e5fddec4 100644 --- a/.github/workflows/application-apache-superset.yml +++ b/.github/workflows/application-apache-superset.yml @@ -39,7 +39,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-22.04 ] + os: [ 'ubuntu-latest' ] superset-version: [ # Deactivate testing 3.x until that patch landed. @@ -71,7 +71,7 @@ jobs: include: # Apache Superset 6.x supports Python 3.12. - - os: "ubuntu-22.04" + - os: "ubuntu-latest" cratedb-version: "nightly" superset-version: "6.0.0rc2" python-version: "3.12"