From 1e20c24ef4e7fa9bd33f6d993042fe20ad23bbe8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 06:38:12 +0530 Subject: [PATCH 1/2] Bump pytest from 8.3.3 to 8.3.4 (#1182) Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.3 to 8.3.4. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.3.3...8.3.4) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-requirements.txt b/test-requirements.txt index 19bf081db1..78f26429f2 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,4 +1,4 @@ lxml==5.3.0 -pytest==8.3.3 +pytest==8.3.4 pytest-asyncio==0.24.0 pytest-mock==3.14.0 From 7e742ddc8e9016421b84eef86a01c72d05143424 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 2/2] 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 588c454187..1d1b56b486 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 efabaaa6d6..d4d6b0459c 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 84166ab362..d99cec2e5f 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 749d9fb51b..6e90292158 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 4ebdd422fb..13d53e885d 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 9cac1df031..d8ecbecb03 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 bf968fc5f0..9371f74e13 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 c37fa7daf4..47b7f05709 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 4801ab6fad..1c1a91ca67 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 8f1bcc35dc..1e3a3ab6c2 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 2cb0e9effc..44de314a5f 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 be2afea5f9..855a059c98 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 899fcd8296..f97b268636 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 747ca067a4..4c3c99af43 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 6d8330d553..1e5b245cc1 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 b4e012ad32..c1904d0453 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 f1e07aabbe..eb5a28e8d4 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 f4e3cc0730..75b408f0d2 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 d335c112d0..f5bd9c12ff 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 34d5445233..331b17c804 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 0b246ddb7d..2e79c92250 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 fd3a372667..4dc2bc32cb 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 af80212eeb..4ce0afb4ce 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 7df2a7684b..0e00e2efd6 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 e5018fb12c..8e2d1b1c68 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 7ce669d707..33eaeb0a9d 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()