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

   ### SUMMARY
   Adds experimental Python 3.15 compatibility while preserving Python 3.11 as 
the minimum supported version.
   
   Uses Python-version-specific dependency markers: Python 3.15 selects NumPy 
>=2.5.4,<2.6 and pandas >=3.1.0,<3.2; Python 3.11–3.14 retain their existing 
ranges.
   Updates pandas post-processing, result-set handling, SQL parsing and related 
compatibility paths, with regression coverage.
   Adds a Python 3.11–3.15 compatibility workflow covering focused tests, 
dependency consistency, fresh SQLite migration and application health.
   Updates the lean/superset Docker dependency stage to use package metadata on 
Python 3.15 instead of generated Python 3.11 requirement pins. Older 
interpreters retain the existing requirements-based installation.
   Handles read-only BuildKit sources through a disposable writable build copy, 
including cleanup on success and failure.
   Declares rich directly for CLI imports and adds container dependency 
regression tests.
   Documents installation, validation results and remaining compatibility 
limitations.
   The default container Python version and existing Python support classifiers 
are unchanged. This introduces experimental source compatibility, not blanket 
production certification for Python 3.15
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   Not applicable. No intentional UI changes.
   
   ### TESTING INSTRUCTIONS
   Create an isolated Python 3.15 environment and install from the repository 
root using package metadata, without applying 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
   ```
   Configure a disposable metadata database and a test-only secret key, then 
verify migration and application health:
   
   ```bash
   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 - <<'PY'
   from superset.app import create_app
   
   app = create_app()
   assert app.test_client().get("/health").status_code == 200
   PY
   ```
   
   Run the focused compatibility workflow and the container dependency 
regression tests. Integration runs require fresh migrated databases; browser 
acceptance must use a separate metadata database and Redis namespaces.
   
   


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