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]
