diff --git a/.github/workflows/pythonbuild.yml b/.github/workflows/pythonbuild.yml index 909a26d830..dbf0ceed0a 100644 --- a/.github/workflows/pythonbuild.yml +++ b/.github/workflows/pythonbuild.yml @@ -27,9 +27,9 @@ jobs: - name: Set Python versions for run run: | if [[ ${{ github.event_name }} == "schedule" ]]; then - echo "python_versions=[\"3.9\",\"3.10\",\"3.11\",\"3.12\"]" >> $GITHUB_ENV + echo "python_versions=[\"3.9\",\"3.10\",\"3.11\",\"3.12\",\"3.13\",\"3.14\"]" >> $GITHUB_ENV else - echo "python_versions=[\"3.9\", \"3.12\"]" >> $GITHUB_ENV + echo "python_versions=[\"3.9\", \"3.12\", \"3.13\", \"3.14\"]" >> $GITHUB_ENV fi build: @@ -112,6 +112,7 @@ jobs: - name: Run extras unit tests with coverage # Skip this step if running on python 3.12 due to https://github.com/tensorflow/tensorflow/issues/62003 # and https://github.com/pytorch/pytorch/issues/110436 + # TensorFlow now supports 3.13, PyTorch supports 3.13 and 3.14 if: ${{ matrix.python-version != '3.12' }} run: | make unit_test_extras_codecov @@ -390,6 +391,32 @@ jobs: # Segmentation fault on python 3.12: https://github.com/flyteorg/flyte/issues/5020 - python-version: 3.12 plugin-names: "flytekit-kf-pytorch" + # Python 3.13 - exclude plugins that don't support it yet + # apache-beam does not support python 3.13 yet + - python-version: 3.13 + plugin-names: "flytekit-airflow" + # modin[ray] is not supported on python 3.13 yet + - python-version: 3.13 + plugin-names: "flytekit-modin" + # vaex does not support python 3.13 + - python-version: 3.13 + plugin-names: "flytekit-vaex" + # Ray does not support python 3.13 yet + - python-version: 3.13 + plugin-names: "flytekit-ray" + # Python 3.14 - exclude plugins that don't support it yet + # apache-beam does not support python 3.14 yet + - python-version: 3.14 + plugin-names: "flytekit-airflow" + # modin[ray] is not supported on python 3.14 yet + - python-version: 3.14 + plugin-names: "flytekit-modin" + # vaex does not support python 3.14 + - python-version: 3.14 + plugin-names: "flytekit-vaex" + # Ray does not support python 3.14 yet + - python-version: 3.14 + plugin-names: "flytekit-ray" steps: - uses: actions/checkout@v4 - name: "Clear action cache" @@ -441,10 +468,10 @@ jobs: steps: - name: Fetch the code uses: actions/checkout@v4 - - name: Set up Python 3.12 + - name: Set up Python 3.14 uses: actions/setup-python@v4 with: - python-version: 3.12 + python-version: 3.14 - uses: actions/cache@v4 with: path: ~/.cache/pip diff --git a/dev-requirements.in b/dev-requirements.in index cef6ce1929..6fa2cc6231 100644 --- a/dev-requirements.in +++ b/dev-requirements.in @@ -21,14 +21,17 @@ keyrings.alt setuptools_scm pytest-icdiff -# Tensorflow is not available for python 3.12 yet: https://github.com/tensorflow/tensorflow/issues/62003 +# Tensorflow is not available for python 3.12: https://github.com/tensorflow/tensorflow/issues/62003 +# TensorFlow now supports 3.13+ tensorflow<=2.15.1; python_version<'3.12' +tensorflow; python_version>='3.13' # Newer versions of torch bring in nvidia dependencies that are not present in windows, so # we put this constraint while we do not have per-environment requirements files torch<=1.12.1; python_version<'3.11' # pytorch 2 supports python 3.11 -# pytorch 2 does not support 3.12 yet: https://github.com/pytorch/pytorch/issues/110436 -torch; python_version<'3.12' +# pytorch does not support 3.12 yet: https://github.com/pytorch/pytorch/issues/110436 +# pytorch now supports 3.13 and 3.14 +torch; python_version=='3.11' or python_version>='3.13' pydantic # TODO: Currently, the python-magic library causes build errors on Windows due to its dependency on DLLs for libmagic. diff --git a/flytekit/configuration/default_images.py b/flytekit/configuration/default_images.py index 47353cf5af..c6c3fac9ba 100644 --- a/flytekit/configuration/default_images.py +++ b/flytekit/configuration/default_images.py @@ -13,6 +13,8 @@ class PythonVersion(enum.Enum): PYTHON_3_10 = (3, 10) PYTHON_3_11 = (3, 11) PYTHON_3_12 = (3, 12) + PYTHON_3_13 = (3, 13) + PYTHON_3_14 = (3, 14) class DefaultImages(object): @@ -26,6 +28,8 @@ class DefaultImages(object): PythonVersion.PYTHON_3_10: "cr.flyte.org/flyteorg/flytekit:py3.10-", PythonVersion.PYTHON_3_11: "cr.flyte.org/flyteorg/flytekit:py3.11-", PythonVersion.PYTHON_3_12: "cr.flyte.org/flyteorg/flytekit:py3.12-", + PythonVersion.PYTHON_3_13: "cr.flyte.org/flyteorg/flytekit:py3.13-", + PythonVersion.PYTHON_3_14: "cr.flyte.org/flyteorg/flytekit:py3.14-", } @classmethod diff --git a/pyproject.toml b/pyproject.toml index d2c1e98fb0..295b027d3a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ authors = [{ name = "Flyte Contributors", email = "admin@flyte.org" }] description = "Flyte SDK for Python" license = { text = "Apache-2.0" } readme = { file = "README.md", content-type = "text/markdown" } -requires-python = ">=3.9,<3.13" +requires-python = ">=3.9,<3.15" dependencies = [ # Please maintain an alphabetical order in the following list "adlfs>=2023.3.0", @@ -60,6 +60,8 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development",