Repository navigation
[bot] Merge master/8c525d1a into rel/dev - #1953
Merged
Merged
Conversation
Python 3.15 installs only from wheels in the slim CI images, which have no C compiler or Rust toolchain, so every compiled dependency needs a release that ships cp315 wheels: - pyarrow 26 is its first release with cp315 wheels. It requires Python 3.11+, so the lock keeps 25.0.1 for Python 3.10. - pydantic-core 2.46.5 and jiter 0.16.0 are Rust extensions without cp315 wheels; pydantic moves with pydantic-core, which it pins exactly. - markupsafe 3.0.4 ships its speedups compiled for 3.15. - cachebox (sdk test group, via deepdiff) has cp315 wheels only from 6.x, but deepdiff 9.1.0 still caps it below 6. A uv override forces 6.x; drop it once deepdiff allows cachebox 6. jira: trivial risk: low
gooddata-pandas capped pandas below 3, which kept users who also use pandas directly on pandas 2, and pandas 2 publishes no CPython 3.15 wheels (2.3.3 built from source segfaults inside pd.to_datetime on 3.15). The pin now allows pandas >=2.0.0,<4.0.0, and Python 3.15 requires pandas 3. Existing environments keep their pandas 2; new ones resolve pandas 3, whose behavior changes reach users through the objects gooddata-pandas returns: string columns and index levels use the default "str" dtype, missing values in string columns stay missing, and copy-on-write is always on. The release notes must call this out. pandas 3 infers datetime resolution (dates become datetime64[s]) where pandas 2 always returned datetime64[ns]. Date and datetime attribute conversion in the JSON and Arrow paths goes through to_datetime_ns(), which yields datetime64[ns] on both majors; on pandas 2 the as_unit call is a no-op. On pandas 3, an index built from Arrow field metadata (transposed results, or no row labels) gets the default "str" dtype instead of object; it is never Arrow-mapped. The ARROW_STRINGS test now checks index dtypes only when the index comes from the inline row-label columns, so a row-label level that loses its Arrow-backed dtype still fails it. The lock resolves pandas 3 on Python 3.11+, so CI tests pandas 3 there; pandas 2 is covered only by the Python 3.10 environment. jira: trivial risk: low
Adds the 3.15 classifier to every published package and py315 to the tox envlists, the CI matrix and ci_tests.mk. Python 3.10 stays supported. The py315 CI image is python:3.15.2-slim-trixie rather than bookworm: orjson publishes cp315 Linux wheels only for glibc 2.39+, and bookworm ships glibc 2.36, so uv falls back to the sdist, which needs a Rust toolchain the slim image lacks. Trixie ships glibc 2.41. Sonar's python.version also gains 3.14, which it was missing. jira: trivial risk: low
Python 3.10 reached end of life in October 2026. requires-python moves to >=3.11 in every package; the 3.10 classifier, tox env, CI matrix entry and Docker target go away, and the docs list py311-py315. As with the Python 3.8 (1.25.0) and 3.9 (1.54.0) drops, this ships in a minor release: pip and uv on 3.10 keep resolving to the last release that supports it. The release notes must call the drop out. ruff targets py311, so the safe UP017 fix (datetime.UTC instead of timezone.utc) and the stdlib import ordering it implies are applied. UP042 ((str, Enum) -> StrEnum) stays ignored because it changes the str() and format() output of public enums, which is breaking. The lock no longer carries Python 3.10-only resolutions (pandas 2.3.3, pyarrow 25, jiter 0.18, numpy 2.2). With pandas 2 gone from the lock, CI no longer tests gooddata-pandas against pandas 2. jira: trivial risk: low
feat(repo): support Python 3.15, allow pandas 3, drop Python 3.10
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## rel/dev #1953 +/- ##
========================================
Coverage 86.55% 86.55%
========================================
Files 349 349
Lines 27012 27015 +3
========================================
+ Hits 23380 23383 +3
Misses 3632 3632 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚀 Automated PR to perform merge from master into rel/dev with changes up to 8c525d1 (created by https://github.com/gooddata/gooddata-python-sdk/actions/runs/43400935027).