-
Notifications
You must be signed in to change notification settings - Fork 910
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
Support python 3.11 #2270
Comments
That's a good question @sbrugman. I don't know on top of my head how much needs to be changed, but we can definitely add this to our backlog and start the work on it. |
The first step is to add a CI build with 3.11 and see if that just works, both on |
Summary
Going to support this will probably take some effort, I would guess an 8 or more. I stopped here just to timebox the task. I would like to get some comments to see if I need to continue. @merelcht @astrojuanlu Further questions
|
It looks like they added support for python 3.11 yesterday 👀 https://github.com/tensorflow/tensorflow/releases/tag/v2.12.0 |
Generally speaking I think it's a pity we can't declare Kedro 3.11-compatible because 1 specific dataset is not - this way we are bound to be as conservative as the most conservative of our dependencies. And I completely agree that (1) is a problem for development, at the moment all the dependencies are needed to install the docs and it's a bit of a pain. I'm thinking if there is a way to decouple the Kedro CI from kedro-org/kedro-plugins#405, but I don't see an easy path. We'd need to selectively install portions of Rehashing what I said in kedro-org/kedro-plugins#405, I'm wondering if it's time to unbundle |
I'm fine with pausing for now and creating a new ticket for the actual implementation for another spring. If the only things that break are datasets, could we just ignore these tests for 3.11? I guess we might need to also try the 3.11 for
I don't think we should drop support for datasets, but we might need to revisit how we run our datasets tests. Maybe with another setup (
Do we know yet what is required on datasets to support 3.11? I guess depending on what we need to do it might be a major bump, which would be fine with me. I don't care too much about the CI setup, we're doing it similarly on Kedro already.
We might need to review all the dependencies in datasets and check if we can bump them. I don't think we've reviewed many of them since they were added. |
Thank you comments on both! I'll try to address all the comments here.
# Package A
`library_a > 1.0, <2.0
# Pacakge B
library_a > 2.0, 3.0 Tests will run properly separately, but not when users want to use both datasets at the same time (which is something we guarantee at the moment)
|
Python3.11 support would be added for Spark 3.4.0. At the moment it's on 3.3.2, the next candidate will be 3.4.0, no schedule yet. Edited: https://is.spark.released.info/, spark release is coming in 25 days, so we should re-visit it in 2/3 sprints later. |
Suggested Plan for release:
|
Just to recap, what is missing here? In #2417 there was some discussion about tensorflow, but it looks like tensorflow has Python 3.11 support now (tensorflow/tensorflow#58032 closed at the beginning of April). So, I guess we should try and add 3.11 support for the kedro-datasets CI first? |
Step (1) above can't proceed unless we have a version of Kedro that bumps |
@astrojuanlu I agree kedro need to be done before kedro-datasets because I don't see any problem unless we introduce a breaking change, there was comment that should we delay the Python3.11 support for 0.19.0. But I don't see this tagged as 0.19.0 so I assume we can release as soon as we finish. Cc @merelcht and @yetudada for confirmation. |
First: Second: there have been long conversations about not allowing upper version caps in
And third: Kedro does work with Python 3.11 already. This is what I did:
diff --git a/pyproject.toml b/pyproject.toml
index ec06b75d..0421b726 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -10,7 +10,7 @@ authors = [
{name = "Kedro"}
]
description = "Kedro helps you build production-ready data and analytics pipelines"
-requires-python = ">=3.7, <3.11"
+requires-python = ">=3.7"
keywords = [
"pipelines",
"machine learning",
This worked perfectly! So, my suggestion is that we proceed as follows:
How does that sound? |
See https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special, and discussion in https://discuss.python.org/t/requires-python-upper-limits/12663?u=astrojuanlu, as well as practical problems with leaving the version cap on in #2270 (comment). Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com>
kedro doesn’t seem to be a problem once I open the upper bound. Maybe it never install kedro from requirements.txt because of this Lines 96 to 113 in 931366f
Even if we release an open bound kedro, we will be still blocked by kedro-telemetry which depends on kedro and don’t have 3.11 yet. When we release 0.18, we also have a failing e2e test that we bypass manually. #1399 |
See https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special, and discussion in https://discuss.python.org/t/requires-python-upper-limits/12663?u=astrojuanlu, as well as practical problems with leaving the version cap on in #2270 (comment). Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com>
See https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special, and discussion in https://discuss.python.org/t/requires-python-upper-limits/12663?u=astrojuanlu, as well as practical problems with leaving the version cap on in #2270 (comment). Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com>
See https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special, and discussion in https://discuss.python.org/t/requires-python-upper-limits/12663?u=astrojuanlu, as well as practical problems with leaving the version cap on in #2270 (comment). Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com>
See https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special, and discussion in https://discuss.python.org/t/requires-python-upper-limits/12663?u=astrojuanlu, as well as practical problems with leaving the version cap on in #2270 (comment). Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com>
See https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special, and discussion in https://discuss.python.org/t/requires-python-upper-limits/12663?u=astrojuanlu, as well as practical problems with leaving the version cap on in #2270 (comment). Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com>
See https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special, and discussion in https://discuss.python.org/t/requires-python-upper-limits/12663?u=astrojuanlu, as well as practical problems with leaving the version cap on in #2270 (comment). Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com>
See https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special, and discussion in https://discuss.python.org/t/requires-python-upper-limits/12663?u=astrojuanlu, as well as practical problems with leaving the version cap on in #2270 (comment). Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com>
* Allow any version of Python in metadata See https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special, and discussion in https://discuss.python.org/t/requires-python-upper-limits/12663?u=astrojuanlu, as well as practical problems with leaving the version cap on in #2270 (comment). Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com> * Add toggleable error if Python version is incompatible Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com> * temp commit Signed-off-by: Nok <nok.lam.chan@quantumblack.com> * change gitpod Signed-off-by: Nok <nok.lam.chan@quantumblack.com> * revert GitPod Signed-off-by: Nok <nok.lam.chan@quantumblack.com> * add tests Signed-off-by: Nok <nok.lam.chan@quantumblack.com> * Fix import tests Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com> --------- Signed-off-by: Juan Luis Cano Rodríguez <juan_luis_cano@mckinsey.com> Signed-off-by: Nok <nok.lam.chan@quantumblack.com> Co-authored-by: Nok <nok.lam.chan@quantumblack.com>
Quick update about the Python 3.11 work. 2 remaining blockers: |
🎉 Great news! We've merged the Python 3.11 work. Check out the PR here: #2851. We appreciate your feedback – please don't hesitate to share any thoughts or issues you come across. |
This will be coming in 0.18.13, if you can't wait. You can also clone the repository and install from |
Completed in #2851 |
Are there any changes that need to be made, or is it as simple as updating the package information?
depends on #2742
The text was updated successfully, but these errors were encountered: