jiengup opened a new pull request, #4421:
URL: https://github.com/apache/iggy/pull/4421

   ## Which issue does this PR address?
   
   N/A
   
   ## Rationale
   
   `upstream/master` still declares Python 3.10 as supported. This change 
raises the Python SDK minimum to 3.11 and aligns package metadata, development 
environments, examples, and wheel builds with that decision. It currently 
removes 3.10 support directly, without a prior deprecation notice.
   
   ## What changed?
   
   - Raise the minimum supported Python version from 3.10 to 3.11 across the 
SDK, BDD tests, examples, interpreter pins, CI configuration, and documentation.
   - Regenerate the lock files for the supported range, removing Python 
3.10-only dependencies and wheel records. Update the example enum to use 
`StrEnum`.
   - Keep the generated `Durability` stub consistent with the runtime enum. A 
targeted `UP042` suppression prevents Ruff from suggesting a change with 
different `str()` behavior.
   - Derive Linux and macOS wheel interpreters from the SDK’s Python 
classifiers, align the Windows matrix, and verify the Python compatibility 
metadata in release artifacts.
   
   ## Points for discussion
   
   1. **`UP042` suppression:** Should the targeted `noqa` remain? Removing only 
the marker fails Ruff; changing the stub to `StrEnum` would describe different 
`str(Durability.REPLICATED)` behavior. Changing the runtime enum as well would 
change observable SDK behavior and needs an explicit compatibility decision.
   2. **Python SDK version:** The SDK remains at `0.9.1.dev1`. Which version 
should first enforce Python 3.11: the `0.9.1` line, a new minor line such as 
`0.10.0`, or another planned release? Once decided, `Cargo.toml`, 
`pyproject.toml`, and release tags should agree.
   3. **Announcement timing:** Which Iggy release should first announce Python 
3.10 deprecation, and which SDK release should actually stop supporting it? 
Should the Iggy website prominently call out the new Python 3.11 minimum in the 
Python SDK documentation and release notes?
   
   ## Local Execution
   
   - Passed: Rust extension unit tests (20); Python 3.11 unit tests (220), 
non-TLS integration tests (613), Docker TLS tests (6), Docker BDD scenarios 
(4), and the Python examples including TLS.
   - Passed: Python 3.12.15 and 3.13.16 unit tests (220 each) in Docker; 
interpreter synchronization and all three `uv.lock` checks.
   - Local limitation: the repository’s unchanged BDD script copies macOS 
binaries into a Linux server image. The BDD scenarios were instead run in a 
Linux Python container against both a server from this checkout and a Linux 
Iggy 0.9.0 container. The TLS fixture used temporary OrbStack-specific 
container settings. **The release wheel matrix was not run locally**.
   - Pre-commit hooks: `prek run -a` passed.
   
   ## AI Usage
   
   Codex assisted with branch analysis and local verification.
   All changes is reviewed by human.


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