luth2 opened a new issue, #45019:
URL: https://github.com/apache/superset/issues/45019

   ## [SIP] Add support for Python 3.14
   
   ### Motivation
   
   Apache Superset should support Python 3.14 so that users can deploy it on a 
current Python release and benefit from improvements in the Python ecosystem.
   
   Adding support requires more than allowing installation on Python 3.14. 
Superset’s application code, dependencies, database drivers, packaging, and 
test infrastructure must be validated together to provide a reliable deployment 
experience.
   
   This proposal establishes a coordinated path toward Python 3.14 
compatibility while preserving compatibility with the Python versions currently 
supported by Superset.
   
   ### Proposed Change
   
   Add Python 3.14 to Superset’s supported Python versions through the 
following steps:
   
   1. Assess compatibility
   Audit Python version constraints in package metadata, dependency 
definitions, and development tooling.
   Identify dependencies and optional integrations that prevent installation or 
execution on Python 3.14.
   Check the availability of compatible distributions for dependencies with 
native extensions on supported deployment platforms.
   Identify application code affected by removed or changed Python APIs.
   
   2. Implement compatibility changes
   Update dependency constraints where necessary to use releases compatible 
with Python 3.14.
   Adapt affected application code while retaining compatibility with other 
supported Python versions.
   Update package metadata and Python version classifiers to advertise Python 
3.14 support once compatibility has been validated.
   Keep unrelated dependency upgrades and functional changes outside the scope 
of this work.
   
   3. Validate and maintain support
   Add Python 3.14 to the CI test matrix, initially as an experimental job if 
necessary.
   Validate unit tests, integration tests, database migrations, CLI commands, 
and background task execution.
   Test representative database drivers and document any remaining limitations 
for optional integrations.
   Make the Python 3.14 CI jobs required before declaring official support.
   Document supported deployment paths and update relevant development and 
installation instructions.
   This proposal targets the standard CPython 3.14 build. Support for 
free-threaded builds is outside its scope.
   
   ### New or Changed Public Interfaces
   No intentional changes are proposed to REST endpoints, visualization types, 
dashboard or chart form data, frontend/backend contracts, configuration 
options, or CLI arguments.
   
   The supported runtime environment will change:
   
   Python 3.14 will become an officially supported interpreter.
   Package metadata and installation documentation will reflect this support.
   Dependency versions or constraints may change where required for 
compatibility.
   Adding Python 3.14 support does not imply switching the default Python 
version of published container images. Any such change should be evaluated and 
communicated separately.
   
   ### New dependencies
   
   No new third-party packages are proposed solely to add Python 3.14 support. 
Existing dependencies may require upgrades.
   
   The exact dependency changes will be determined during the compatibility 
assessment. Each upgrade or replacement must be reviewed for:
   
   Python 3.14 compatibility;
   compatibility with Superset’s other supported Python versions;
   maintenance status and security implications;
   licensing compatible with the Apache License 2.0;
   potential behavioral changes affecting Superset or its integrations.
   No NPM dependency changes are expected solely because of the Python runtime 
upgrade.
   
   ### Migration Plan and Compatibility
   
   No database schema migrations, stored URL changes, or modifications to saved 
dashboards and charts are expected solely from this proposal.
   
   Python 3.14 support will be introduced alongside the currently supported 
Python versions. Dropping an older Python version is not part of this proposal.
   
   Existing deployments will not be required to upgrade immediately. Users 
choosing Python 3.14 should rebuild their Python environment or container 
image, install compatible dependencies, and validate their database drivers and 
custom extensions before production rollout.
   
   If dependency upgrades introduce additional migration requirements or 
observable behavior changes, these must be documented and reviewed before 
official support is announced.
   
   ### Rejected Alternatives
   
   Only relax the Python version constraint
   Allowing installation without validating execution, dependencies, and 
integrations would create an unsupported deployment path and would not 
establish reliable compatibility.
   
   Replace an existing supported Python version immediately
   Adding a new runtime does not require removing an existing one. Combining 
these changes would increase upgrade pressure and expand the scope 
unnecessarily.
   
   Wait until every optional integration supports Python 3.14
   This could delay support indefinitely. Core functionality and a clearly 
documented set of integrations should be validated first, with any optional 
integration limitations explicitly documented.


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