From c9f29b4695f6ee623e5bd27be2c0bb9230d7e512 Mon Sep 17 00:00:00 2001 From: Shailesh Tanwar <135304487+tanwarsh@users.noreply.github.com> Date: Wed, 11 Dec 2024 12:11:28 +0530 Subject: [PATCH] Bump Python version to 3.9 - 3.11 (#1189) * removed python version <= 3.8 Signed-off-by: yes * changes as per comments Signed-off-by: yes * revert changes Signed-off-by: yes * doc updated Signed-off-by: yes * python version updated to 3.10 to 3.12 Signed-off-by: yes * python version updated to 3.10 to 3.12 Signed-off-by: yes * dummy commit Signed-off-by: yes * dummy commit Signed-off-by: yes * version changes Signed-off-by: yes * changed version t0 3.10 Signed-off-by: yes * fixed typo Signed-off-by: yes * bump tensorflow to 2.14 Signed-off-by: yes * bump tensorflow to 2.15 Signed-off-by: yes * revert tensorflo version and removed python version 3.12 Signed-off-by: yes * revert tensorflo version and removed python version 3.12 Signed-off-by: yes * removed astor Signed-off-by: yes * added nbformat lib Signed-off-by: yes * formatting fix Signed-off-by: yes * numpy version fix Signed-off-by: yes * numpy version fix Signed-off-by: yes * revert python version back to 3.9 Signed-off-by: yes * removed astor Signed-off-by: yes * numpy version change Signed-off-by: yes * numpy version change Signed-off-by: yes * numpy version change Signed-off-by: yes * switch to torch_cnn_mnist Signed-off-by: yes --------- Signed-off-by: yes --- .github/workflows/docker-bench-security.yml | 4 ++-- .github/workflows/double_ws_export.yml | 4 ++-- .github/workflows/experimental_workflow_tests.yml | 2 +- .github/workflows/hadolint.yml | 4 ++-- .github/workflows/lint.yml | 4 ++-- .github/workflows/pki.yml | 8 ++++---- .github/workflows/pytest_coverage.yml | 4 ++-- .github/workflows/straggler-handling.yml | 4 ++-- .github/workflows/task_runner_e2e.yml | 2 +- .github/workflows/taskrunner.yml | 2 +- .github/workflows/taskrunner_eden_pipeline.yml | 4 ++-- .github/workflows/tr_docker_gramine_direct.yml | 4 ++-- .github/workflows/tr_docker_native.yml | 4 ++-- .github/workflows/ubuntu.yml | 8 ++++---- .github/workflows/windows.yml | 8 ++++---- Jenkinsfile | 4 ++-- README.md | 3 ++- docs/about/features_index/taskrunner.rst | 2 +- docs/developer_guide/running_the_federation.notebook.rst | 2 +- .../running_the_federation_with_gandlf.rst | 2 +- docs/get_started/installation.rst | 2 +- .../workflow/workflow_interface_requirements.txt | 3 +-- openfl-workspace/keras_cnn_mnist/requirements.txt | 1 + openfl/experimental/workflow/workspace_export/export.py | 7 +++---- setup.py | 3 +-- tests/github/pki_wrong_cn.py | 4 ++-- 26 files changed, 49 insertions(+), 50 deletions(-) diff --git a/.github/workflows/docker-bench-security.yml b/.github/workflows/docker-bench-security.yml index 588c4541877..1d1b56b486d 100644 --- a/.github/workflows/docker-bench-security.yml +++ b/.github/workflows/docker-bench-security.yml @@ -16,10 +16,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/double_ws_export.yml b/.github/workflows/double_ws_export.yml index efabaaa6d66..d4d6b0459c4 100644 --- a/.github/workflows/double_ws_export.yml +++ b/.github/workflows/double_ws_export.yml @@ -23,10 +23,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/experimental_workflow_tests.yml b/.github/workflows/experimental_workflow_tests.yml index 84166ab3623..d99cec2e5f7 100644 --- a/.github/workflows/experimental_workflow_tests.yml +++ b/.github/workflows/experimental_workflow_tests.yml @@ -25,7 +25,7 @@ jobs: - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.10" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/hadolint.yml b/.github/workflows/hadolint.yml index 749d9fb51b4..6e902921585 100644 --- a/.github/workflows/hadolint.yml +++ b/.github/workflows/hadolint.yml @@ -19,10 +19,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4ebdd422fb5..13d53e885d5 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -19,10 +19,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install linters run: | python -m pip install --upgrade pip diff --git a/.github/workflows/pki.yml b/.github/workflows/pki.yml index 9cac1df0314..d8ecbecb030 100644 --- a/.github/workflows/pki.yml +++ b/.github/workflows/pki.yml @@ -23,10 +23,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip @@ -40,10 +40,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/pytest_coverage.yml b/.github/workflows/pytest_coverage.yml index bf968fc5f03..9371f74e139 100644 --- a/.github/workflows/pytest_coverage.yml +++ b/.github/workflows/pytest_coverage.yml @@ -24,10 +24,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/straggler-handling.yml b/.github/workflows/straggler-handling.yml index c37fa7daf41..47b7f057096 100644 --- a/.github/workflows/straggler-handling.yml +++ b/.github/workflows/straggler-handling.yml @@ -26,10 +26,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/task_runner_e2e.yml b/.github/workflows/task_runner_e2e.yml index 4801ab6fadf..1c1a91ca67f 100644 --- a/.github/workflows/task_runner_e2e.yml +++ b/.github/workflows/task_runner_e2e.yml @@ -39,7 +39,7 @@ jobs: # There are open issues for some of the models, so excluding them for now: # model_name: [ "torch_cnn_mnist", "keras_cnn_mnist", "torch_cnn_histology" ] model_name: ["torch_cnn_mnist", "keras_cnn_mnist"] - python_version: ["3.8", "3.9", "3.10"] + python_version: ["3.9", "3.10", "3.11"] fail-fast: false # do not immediately fail if one of the combinations fail env: diff --git a/.github/workflows/taskrunner.yml b/.github/workflows/taskrunner.yml index 8f1bcc35dcf..1e3a3ab6c25 100644 --- a/.github/workflows/taskrunner.yml +++ b/.github/workflows/taskrunner.yml @@ -21,7 +21,7 @@ jobs: strategy: matrix: os: ['ubuntu-latest', 'windows-latest'] - python-version: ['3.8','3.9','3.10','3.11'] + python-version: ["3.9", "3.10", "3.11"] runs-on: ${{ matrix.os }} timeout-minutes: 15 diff --git a/.github/workflows/taskrunner_eden_pipeline.yml b/.github/workflows/taskrunner_eden_pipeline.yml index 2cb0e9effc1..44de314a5f5 100644 --- a/.github/workflows/taskrunner_eden_pipeline.yml +++ b/.github/workflows/taskrunner_eden_pipeline.yml @@ -22,10 +22,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/tr_docker_gramine_direct.yml b/.github/workflows/tr_docker_gramine_direct.yml index be2afea5f98..855a059c985 100644 --- a/.github/workflows/tr_docker_gramine_direct.yml +++ b/.github/workflows/tr_docker_gramine_direct.yml @@ -17,10 +17,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/tr_docker_native.yml b/.github/workflows/tr_docker_native.yml index 899fcd8296f..f97b2686361 100644 --- a/.github/workflows/tr_docker_native.yml +++ b/.github/workflows/tr_docker_native.yml @@ -17,10 +17,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 747ca067a44..4c3c99af431 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -18,10 +18,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip @@ -40,10 +40,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 6d8330d553a..1e5b245cc14 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -17,10 +17,10 @@ jobs: timeout-minutes: 15 steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip @@ -38,10 +38,10 @@ jobs: timeout-minutes: 15 steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3 uses: actions/setup-python@v3 with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/Jenkinsfile b/Jenkinsfile index b4e012ad32b..c1904d04536 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -81,7 +81,7 @@ pipeline { SNYK_ALLOW_LONG_PROJECT_NAME = true SNYK_USE_MULTI_PROC = true SNYK_DEBUG = true - SNYK_PYTHON_VERSION = '3.8' + SNYK_PYTHON_VERSION = '3.9' BANDIT_SOURCE_PATH = 'openfl/ openfl-workspace/ openfl-tutorials/' BANDIT_SEVERITY_LEVEL = 'high' @@ -114,7 +114,7 @@ pipeline { stage('Build Package') { agent { docker { - image 'python:3.8' + image 'python:3.9' } } steps { diff --git a/README.md b/README.md index f1e07aabbe8..eb5a28e8d43 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,8 @@ -[![PyPI - Python Version](https://img.shields.io/badge/python-3.7%20%7C%203.8%20%7C%203.9%20%7C%203.10-blue)](https://pypi.org/project/openfl/) + +[![PyPI - Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11-blue)](https://pypi.org/project/openfl/) [![Ubuntu CI status](https://github.com/securefederatedai/openfl/actions/workflows/ubuntu.yml/badge.svg)](https://github.com/securefederatedai/openfl/actions/workflows/ubuntu.yml) [![Windows CI status](https://github.com/securefederatedai/openfl/actions/workflows/windows.yml/badge.svg)](https://github.com/securefederatedai/openfl/actions/workflows/windows.yml) [![Documentation Status](https://readthedocs.org/projects/openfl/badge/?version=latest)](https://openfl.readthedocs.io/en/latest/?badge=latest) diff --git a/docs/about/features_index/taskrunner.rst b/docs/about/features_index/taskrunner.rst index f4e3cc0730d..75b408f0d27 100644 --- a/docs/about/features_index/taskrunner.rst +++ b/docs/about/features_index/taskrunner.rst @@ -147,7 +147,7 @@ Bare Metal Approach STEP 1: Create a Workspace ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -1. Start a Python 3.8 (>=3.6, <3.11) virtual environment and confirm |productName| is available. +1. Start a Python 3.9 (>=3.9, <3.12) virtual environment and confirm |productName| is available. .. code-block:: console diff --git a/docs/developer_guide/running_the_federation.notebook.rst b/docs/developer_guide/running_the_federation.notebook.rst index d335c112d07..f5bd9c12ffa 100644 --- a/docs/developer_guide/running_the_federation.notebook.rst +++ b/docs/developer_guide/running_the_federation.notebook.rst @@ -17,7 +17,7 @@ You will start a Jupyter\* \ lab server and receive a URL you can use to access Start the Tutorials =================== -1. Start a Python\* \ 3.8 (>=3.6, <3.9) virtual environment and confirm |productName| is available. +1. Start a Python\* \ 3.9 (>=3.9, <3.12) virtual environment and confirm |productName| is available. .. code-block:: python diff --git a/docs/developer_guide/running_the_federation_with_gandlf.rst b/docs/developer_guide/running_the_federation_with_gandlf.rst index 34d54452334..331b17c804e 100644 --- a/docs/developer_guide/running_the_federation_with_gandlf.rst +++ b/docs/developer_guide/running_the_federation_with_gandlf.rst @@ -114,7 +114,7 @@ However, continue with the following procedure for details in creating a federat STEP 1: Install GaNDLF prerequisites and Create a Workspace ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -1. Start a Python 3.8 (>=3.7, <3.11) virtual environment and confirm |productName| is available. +1. Start a Python 3.9 (>=3.9, <3.12) virtual environment and confirm |productName| is available. .. code-block:: python diff --git a/docs/get_started/installation.rst b/docs/get_started/installation.rst index 0b246ddb7d7..2e79c922501 100644 --- a/docs/get_started/installation.rst +++ b/docs/get_started/installation.rst @@ -19,7 +19,7 @@ Install the Package Follow this procedure to prepare the environment and install the |productName| package. Perform this procedure on every node in the federation. -1. Install a Python 3.8 (>=3.6, <3.9) virtual environment using venv. +1. Install a Python 3.9 (>=3.9, <3.12) virtual environment using venv. See the `Venv installation guide `_ for details. diff --git a/openfl-tutorials/experimental/workflow/workflow_interface_requirements.txt b/openfl-tutorials/experimental/workflow/workflow_interface_requirements.txt index fd3a3726675..4dc2bc32cbb 100644 --- a/openfl-tutorials/experimental/workflow/workflow_interface_requirements.txt +++ b/openfl-tutorials/experimental/workflow/workflow_interface_requirements.txt @@ -1,11 +1,10 @@ -astor==0.8.1 chardet charset-normalizer dill==0.3.6 matplotlib>=2.0.0 metaflow==2.7.15 nbdev==2.3.12 -nbformat +nbformat==5.10.4 ray==2.9.2 torch torchvision diff --git a/openfl-workspace/keras_cnn_mnist/requirements.txt b/openfl-workspace/keras_cnn_mnist/requirements.txt index af80212eeba..4ce0afb4ced 100644 --- a/openfl-workspace/keras_cnn_mnist/requirements.txt +++ b/openfl-workspace/keras_cnn_mnist/requirements.txt @@ -1 +1,2 @@ +numpy==1.23.5 tensorflow==2.13 diff --git a/openfl/experimental/workflow/workspace_export/export.py b/openfl/experimental/workflow/workspace_export/export.py index 7df2a7684b0..0e00e2efd65 100644 --- a/openfl/experimental/workflow/workspace_export/export.py +++ b/openfl/experimental/workflow/workspace_export/export.py @@ -13,7 +13,6 @@ from pathlib import Path from shutil import copytree -import astor import nbformat import yaml from nbdev.export import nb_export @@ -194,13 +193,13 @@ def __extract_class_initializing_args(self, class_name): # noqa: C901 # Use the variable name as the argument value instantiation_args["args"][arg.id] = arg.id elif isinstance(arg, ast.Constant): - instantiation_args["args"][arg.s] = astor.to_source(arg) + instantiation_args["args"][arg.s] = ast.unparse(arg) else: - instantiation_args["args"][arg.arg] = astor.to_source(arg).strip() + instantiation_args["args"][arg.arg] = ast.unparse(arg).strip() for kwarg in node.keywords: # Iterate through keyword arguments - value = astor.to_source(kwarg.value).strip() + value = ast.unparse(kwarg.value).strip() # If paranthese or brackets around the value is # found and it's not tuple or list remove diff --git a/setup.py b/setup.py index e5018fb12c8..8e2d1b1c68f 100644 --- a/setup.py +++ b/setup.py @@ -95,7 +95,7 @@ def run(self): 'protobuf>=4.22,<6.0.0', 'grpcio>=1.56.2,<1.66.0', ], - python_requires='>=3.8, <3.12', + python_requires='>=3.9, <3.12', project_urls={ 'Bug Tracker': 'https://github.com/securefederatedai/openfl/issues', 'Documentation': 'https://openfl.readthedocs.io/en/stable/', @@ -109,7 +109,6 @@ def run(self): 'Topic :: System :: Distributed Computing', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', diff --git a/tests/github/pki_wrong_cn.py b/tests/github/pki_wrong_cn.py index 7ce669d707a..33eaeb0a9da 100644 --- a/tests/github/pki_wrong_cn.py +++ b/tests/github/pki_wrong_cn.py @@ -1,4 +1,4 @@ -# Copyright (C) 2020-2023 Intel Corporation +# Copyright (C) 2020-2024 Intel Corporation # SPDX-License-Identifier: Apache-2.0 import grpc import subprocess @@ -75,7 +75,7 @@ def start_aggregator(): subprocess.check_call([ 'fx', 'workspace', 'create', '--prefix', prefix, - '--template', 'keras_cnn_mnist' + '--template', 'torch_cnn_mnist' ]) os.chdir(prefix) fqdn = getfqdn_env()