luth2 opened a new pull request, #45823:
URL: https://github.com/apache/superset/pull/45823

   ### SUMMARY
   
   Replaces #45821 with a reviewable, line-ending-clean diff. Related to #45019.
   
   The previous PR included repository-wide CRLF/LF churn. This branch is 
rebuilt from the same original base and preserves its substantive changes 
without that churn: **49 files changed, 680 insertions, 135 deletions**, in one 
commit. The original branch has not been rewritten.
   
   - Add experimental Python 3.15 source compatibility while keeping Python 
3.11 as the minimum supported version and leaving the default container 
interpreter and support classifiers unchanged.
   - Select NumPy `>=2.5.4,<2.6` and pandas `>=3.1.0,<3.2` on Python 3.15 using 
dependency markers; preserve the existing ranges for Python 3.11-3.14.
   - Update pandas post-processing, result-set handling, SQL parsing and 
related compatibility paths, with regression coverage.
   - Add a Python 3.11-3.15 compatibility workflow covering focused tests, 
dependency consistency, a fresh SQLite migration and application health.
   - Use package metadata for the lean/superset Docker dependency stage on 
Python 3.15, retaining the requirements-based path for older interpreters. 
Build read-only mounted sources in a disposable writable copy and test cleanup 
on both success and failure.
   - Declare `rich` directly for CLI imports and document installation, 
validation and known limitations.
   
   The frontend Node pin remains `v24.16.0` with LF line endings, matching the 
original base. This avoids carrying the CRLF-corrupted version string that 
blocked the previous Netlify docs preview. No Netlify configuration or Node 
version change is needed.
   
   Beyond removing line-ending churn, this replacement adds an explicit union 
type annotation in the container regression test and the shell script's final 
newline, as required by local checks.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   Not applicable. No intentional UI changes.
   
   ### TESTING INSTRUCTIONS
   
   Create an isolated Python 3.15 environment and install from package 
metadata, not the generated Python 3.11 requirement files:
   
   ```bash
   python -m venv .venv
   source .venv/bin/activate
   python -m pip install -e ./superset-core -e .
   python -m pip check
   export FLASK_APP=superset
   export SUPERSET_HOME="$(mktemp -d)"
   export SUPERSET_SECRET_KEY="$(python -c 'import secrets; 
print(secrets.token_hex(32))')"
   python -m flask db upgrade
   python -c 'from superset.app import create_app; assert 
create_app().test_client().get("/health").status_code == 200'
   ```
   
   Run the new compatibility workflow and the container regression tests:
   
   ```bash
   PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python -m pytest --noconftest -o addopts= \
     tests/unit_tests/docker_app_dependencies_test.py \
     tests/unit_tests/scripts/docker_release_target_test.py \
     tests/unit_tests/docker_compose_image_tag_test.py -q
   bash -n docker/install-app-dependencies.sh
   ```
   
   Validation of this replacement commit:
   
   - All 18 container-related regression tests passed on Python 3.15.2; shell 
syntax and whitespace checks passed.
   - Pylint passed for the changed backend files, using the repository 
configuration and a single worker.
   - Pre-commit was run on all staged changes. All applicable hooks passed 
except MyPy, which reports an unused `type: ignore` at 
`superset/db_engine_specs/mysql.py:680`. The same finding was reproduced on the 
unchanged original base with the same selection of modified existing files. The 
new test's MyPy error was corrected before this commit.
   - The complete published diff was checked against the previous branch: 
substantive content is preserved, apart from the two check corrections 
described above.
   
   Remaining limits: this is experimental compatibility, not production 
certification. The complete official image build remains unverified because the 
reference host ran out of memory during frontend minimization, although the 
isolated Python 3.15 dependency stage passed. The documented Gunicorn gthread 
shutdown limitation remains unresolved. The new Netlify preview and PR CI still 
need to run; `/health` is liveness, not dependency readiness.
   
   ### ADDITIONAL INFORMATION
   
   - [x] Has associated issue: #45019; replaces #45821.
   - [ ] Required feature flags:
   - [ ] Changes UI
   - [ ] Includes DB Migration
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to