chitralverma opened a new issue, #7816:
URL: https://github.com/apache/opendal/issues/7816

   ## Feature Description
   
   Raise the minimum supported Python version for the `opendal` Python binding
   from 3.10 to at least 3.12. Concretely:
   
   - `bindings/python/pyproject.toml`: `requires-python = ">=3.10"` → `">=3.12"`
   - Drop the dedicated cp310 wheel build leg and make the `abi3` (currently
     `abi3-py311`) wheel the single non-free-threaded artifact, bumped to
     `abi3-py312`. (Free-threaded builds, which landed in Python 3.13, stay 
as-is:
     `3.13t`, `3.14t`.)
   - Update CI to stop testing on 3.10/3.11, thereby dropping support for them.
   
   ## Problem and Solution
   
   **Problem**
   
   Python release/EOL timeline (from https://endoflife.date/python):
   
   | Version | Released | EOL |
   | ------- | -------- | --- |
   | 3.9 | 2020-10 | 2025-10-31 (past) |
   | 3.10 | 2021-10 | 2026-10-31 |
   | 3.11 | 2022-10 | 2027-10-31 |
   | 3.12 | 2023-10 | 2028-10-31 |
   | 3.13 | 2024-10 | 2029-10-31 |
   
   The binding's declared floor (`>=3.10`) targets versions that are at or near
   end of life, and keeping 3.10 carries concrete maintenance overhead:
   
   - The abi3 floor is already `pyo3/abi3-py311` (`bindings/python/Cargo.toml`),
     with the standing comment *"we build cp311-abi3 and cp310 wheels now, move
     this to pyo3 after we drop cp310."* 3.10 therefore needs a **separate,
     non-abi3 wheel** in `release_python.yml` (`-i python3.10`) in addition to 
the
     abi3-py311 wheel — an extra build/release leg solely for the oldest
     interpreter.
   
   **Solution**
   
   Bump to `>=3.12` and consolidate the wheel matrix:
   
   - One abi3 wheel (`abi3-py312`) covering 3.12+, plus the existing 
free-threaded
     builds (3.13t, 3.14t).
   - Remove the cp310 build leg and the "drop cp310" FIXME.
   - Update `requires-python`, CI test interpreters (currently `python3.10` in
     `test_behavior_binding_python.yml` and `python3.11` in
     `ci_bindings_python.yml`), and any `Programming Language :: Python` 
metadata.
   
   Benefits:
   
   - Fewer wheels to build/test/publish per release; simpler matrix.
   - Drops interpreters that are at or near EOL.
   - Lets the binding use 3.12-era language/stdlib features without guards.
   
   ## Additional Context
   
   This surfaced while investigating the Python binding's stub generation, but 
it
   is independent of that work and warrants its own change.
   
   ## Are you willing to contribute?
   
   Yes, I can raise a PR for this.
   


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

Reply via email to