-
Notifications
You must be signed in to change notification settings - Fork 4
CI: Start using Python 3.14 #563
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughPython version updates across GitHub Actions workflows and project configuration. Most workflows transition from Python 3.13 to 3.14; release workflows from 3.12 to 3.14. The Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
pyproject.toml (1)
132-132: Verify pyarrow 22.x compatibility before release.The pyarrow constraint has been significantly relaxed from
<21.1to<23, permitting pyarrow 22.x versions. While the changelog documents this intentional change, ensure that:
- PyArrow 22.x has been tested with the full test suite (especially the
cfrextra which uses this dependency).- Any known breaking changes in pyarrow 22.x have been assessed and addressed in the codebase.
- The upper bound
<23is intentional (does your code need compatibility with potential pyarrow 23.x pre-releases, or should you pin to<22.1?).Consider documenting in code comments or a separate ADR why this constraint was relaxed, to help future maintainers understand the scope of pyarrow support.
CHANGES.md (1)
3-7: Changelog entry documents the pyarrow constraint change clearly.The Unreleased entry documenting permission for pyarrow 22 installation accurately reflects the pyproject.toml update. The wording is clear and concise.
Consider adding a companion entry to explicitly document Python 3.14 support (e.g., "CI: Added Python 3.14 to test matrix and release workflows") for explicit visibility, or confirm that the pyarrow 22 entry is sufficient context.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (11)
.github/workflows/cratedb-cloud.yml(1 hunks).github/workflows/dynamodb.yml(1 hunks).github/workflows/influxdb.yml(1 hunks).github/workflows/kinesis.yml(1 hunks).github/workflows/main.yml(1 hunks).github/workflows/release-app.yml(1 hunks).github/workflows/release-oci-full.yml(1 hunks).github/workflows/release-oci-ingest.yml(1 hunks).github/workflows/release-pypi.yml(1 hunks)CHANGES.md(1 hunks)pyproject.toml(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (15)
- GitHub Check: build-and-test
- GitHub Check: Python 3.14 on OS ubuntu-latest
- GitHub Check: Python 3.9 on OS ubuntu-latest
- GitHub Check: Python 3.14 on OS ubuntu-latest
- GitHub Check: Python 3.14, InfluxDB 2.6, OS ubuntu-latest
- GitHub Check: Python 3.14, InfluxDB 2.7, OS ubuntu-latest
- GitHub Check: Python 3.10, LocalStack 4.5, OS ubuntu-latest
- GitHub Check: Python 3.13, PostgreSQL latest, OS ubuntu-latest
- GitHub Check: Python 3.14, LocalStack 4.5, OS ubuntu-latest
- GitHub Check: Kinesis: Python 3.14 on OS ubuntu-latest
- GitHub Check: Kinesis: Python 3.11 on OS ubuntu-latest
- GitHub Check: CFR for OS macos-latest
- GitHub Check: CFR for OS macos-13
- GitHub Check: CFR for OS ubuntu-latest
- GitHub Check: CFR for OS windows-latest
🔇 Additional comments (10)
pyproject.toml (1)
60-61: Python 3.14 classifier addition looks good.The addition of
"Programming Language :: Python :: 3.14"to the classifiers is correct and follows standard practice for announcing Python version support..github/workflows/kinesis.yml (1)
40-43: Python version matrix update is straightforward.The test matrix now covers Python 3.11 and 3.14. Dropping Python 3.13 from the test matrix is a reasonable choice if the intent is to test only against recent stable releases. Ensure this is documented in your CI strategy.
.github/workflows/release-oci-full.yml (1)
46-47: Python 3.14 runtime for OCI image build is approved.The change from 3.13 to 3.14 for the full OCI container image build is appropriate. Ensure that the resulting Docker image and all build artifacts have been validated before merging.
.github/workflows/release-pypi.yml (1)
22-23: Python 3.14 for PyPI release workflow is appropriate.Using Python 3.14 as the build environment for creating and publishing the wheel package to PyPI is a sound choice. This ensures the wheel is built with the latest stable Python version.
Verify that the wheel built on Python 3.14 maintains compatibility with the declared
requires-python = ">=3.8"minimum version..github/workflows/influxdb.yml (1)
40-43: InfluxDB test matrix update is consistent with PR scope.The test matrix now covers Python 3.9 and 3.14 across InfluxDB 2.6 and 2.7. This is consistent with the Python version upgrade strategy across the project.
.github/workflows/release-oci-ingest.yml (1)
46-47: Python 3.14 for ingest OCI build is aligned with full OCI workflow.The update to Python 3.14 for the ingest container image build is consistent with the parallel update to
release-oci-full.yml..github/workflows/dynamodb.yml (1)
40-43: DynamoDB test matrix updated appropriately.The test matrix now covers Python 3.10 and 3.14, maintaining coverage of an older stable version alongside the new latest version.
.github/workflows/main.yml (1)
30-32: Verify Python 3.14 support across the dependency tree.The addition of Python 3.14 to the test matrix looks good, and maintaining Python 3.9 provides good compatibility coverage. However, ensure all project dependencies (especially those with native extensions or tight version constraints) officially support Python 3.14.
Per the PR summary, pyarrow constraints are being relaxed from
<21.1to<23. Please confirm that pyarrow 22 and Python 3.14 are compatible and that this constraint change is documented in the provided pyproject.toml and CHANGES.md updates..github/workflows/cratedb-cloud.yml (1)
30-32: Clarify intent: Single Python version for cloud-specific integration tests.This workflow now tests only Python 3.14, whereas the main test workflow maintains coverage for both 3.9 and 3.14. If the prior version tested multiple Python versions, consider whether testing only the latest version is sufficient for cloud integration stability.
.github/workflows/release-app.yml (1)
40-43: Verify PyInstaller compatibility with Python 3.14.The version bump from 3.12 to 3.14 is consistent with the PR objectives. Ensure PyInstaller and other build tooling used in the CFR (application bundle) workflow have stable Python 3.14 support.
fatal error: librdkafka/rdkafka.h: No such file or directory
23 | #include <librdkafka/rdkafka.h>
| ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
hint: This error likely indicates that you need to install a library
that provides "librdkafka/rdkafka.h" for `[email protected]`
help: `confluent-kafka` (v2.8.0) was included because
`cratedb-toolkit[io-ingestr]` (v0.0.0) depends on `ingestr` (v0.14.96)
which depends on `confluent-kafka`
=> Why is the PostgreSQL integration using Kafka anyway? ;]
kinesis.exceptions.StreamDoesNotExist: Stream 'testdrive' does not exist => Just a timing problem?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (10)
.github/workflows/cratedb-cloud.yml(1 hunks).github/workflows/dynamodb.yml(1 hunks).github/workflows/influxdb.yml(1 hunks).github/workflows/main.yml(1 hunks).github/workflows/release-app.yml(1 hunks).github/workflows/release-oci-full.yml(1 hunks).github/workflows/release-oci-ingest.yml(1 hunks).github/workflows/release-pypi.yml(1 hunks)CHANGES.md(1 hunks)pyproject.toml(2 hunks)
🚧 Files skipped from review as they are similar to previous changes (7)
- .github/workflows/cratedb-cloud.yml
- .github/workflows/main.yml
- .github/workflows/influxdb.yml
- .github/workflows/release-pypi.yml
- .github/workflows/release-oci-ingest.yml
- .github/workflows/release-oci-full.yml
- .github/workflows/release-app.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (13)
- GitHub Check: build-and-publish
- GitHub Check: Python 3.14, InfluxDB 2.6, OS ubuntu-latest
- GitHub Check: Python 3.14, InfluxDB 2.7, OS ubuntu-latest
- GitHub Check: Python 3.14 on OS ubuntu-latest
- GitHub Check: Python 3.9 on OS ubuntu-latest
- GitHub Check: Python 3.14 on OS ubuntu-latest
- GitHub Check: build-and-test
- GitHub Check: Python 3.10, LocalStack 4.5, OS ubuntu-latest
- GitHub Check: Python 3.14, LocalStack 4.5, OS ubuntu-latest
- GitHub Check: Kinesis: Python 3.11 on OS ubuntu-latest
- GitHub Check: Kinesis: Python 3.13 on OS ubuntu-latest
- GitHub Check: CFR for OS windows-latest
- GitHub Check: CFR for OS ubuntu-latest
🔇 Additional comments (3)
pyproject.toml (2)
55-61: Classifier addition for Python 3.14 looks good.The new classifier is properly positioned and aligns with the PR objective to validate on Python 3.14.
125-134: Pyarrow constraint update is appropriately isolated and reasonable.The constraint change from
<21.1to<23permits pyarrow 22.x and is isolated to thecfroptional-dependency group. DuckDB's core doesn't require Arrow, but some result fetches use it; simply pip install pyarrow resolves that. Both duckdb<1.4 and polars<1.34 support pyarrow interoperability, and no conflicting constraints were found elsewhere in the codebase. The update aligns with the stated goal in CHANGES.md of permitting pyarrow 22.x.CHANGES.md (1)
7-8: Changelog entries are clear and accurate.Both entries properly document the Python 3.14 CI validation and the pyarrow 22 compatibility update. They are well-positioned in the "Unreleased" section.
Jobs took ages now, probably while building NumPy, and failed on Windows.
About
Validate the code in CTK on Python 3.14, where possible.