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]
