SUBMARINE-1391. Remove Python3.7 and Tensorflow 2.6-2.10 support
### What is this PR for?
Python 3.7 has reached its end of life at the end of June 2023.
Meanwhile, we should keep support for the latest 3 versions of tensoflow (2.12-2.14).
https://github.com/tensorflow/tensorflow/releases
### What type of PR is it?
Improvement
### Todos
* [x] - Remove python 3.7 and add python 3.11
* [x] - Remove tf 1.15 and 2.6-2.10
### What is the Jira issue?
https://issues.apache.org/jira/browse/SUBMARINE-1391
### How should this be tested?
ci test
### Screenshots (if appropriate)
### Questions:
* Do the license files need updating? No
* Are there breaking changes for older versions? Yes
* Does this need new documentation? No
Author: cdmikechen <cdmikechen@apache.org>
Signed-off-by: cdmikechen <cdmikechen@apache.org>
Closes #1116 from cdmikechen/tensorflow-support and squashes the following commits:
0a82f39d [cdmikechen] update test-requirement
683c0049 [cdmikechen] update require
9b4d30dc [cdmikechen] update python and tf version
diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml
index a6ca7da..9742767 100644
--- a/.github/workflows/python.yml
+++ b/.github/workflows/python.yml
@@ -42,19 +42,12 @@
timeout-minutes: 30
strategy:
matrix:
- python-version: ['3.7', '3.8', '3.9', '3.10']
- tf-version: ['1.15.0', '2.6.0', '2.7.0', '2.8.0', '2.9.0']
+ python-version: ['3.8', '3.9', '3.10', '3.11']
+ tf-version: ['2.12.0', '2.13.0', '2.14.0']
exclude:
+ # Support for Python 3.8 has been removed starting with TF 2.14.
- python-version: '3.8'
- tf-version: '1.15.0'
- - python-version: '3.9'
- tf-version: '1.15.0'
- - python-version: '3.10'
- tf-version: '1.15.0'
- - python-version: '3.10'
- tf-version: '2.6.0'
- - python-version: '3.10'
- tf-version: '2.7.0'
+ tf-version: '2.14.0'
fail-fast: false
steps:
- uses: actions/checkout@v3
@@ -66,15 +59,10 @@
run: |
pip install --upgrade pip setuptools wheel
pip install -r ./submarine-sdk/pysubmarine/github-actions/test-requirements.txt
- - name: Install pysubmarine with tf1 and pytorch
- if: ${{ matrix.tf-version == '1.15.0' }}
- run: |
- pip install --no-cache-dir -e ./submarine-sdk/pysubmarine/.[tf,pytorch]
- name: Install pysubmarine with tf2 and pytorch
- if: startsWith(matrix.tf-version, '2.')
run: |
- sed -i "s/tensorflow>=2.6.0,<2.10.0/tensorflow~=${{ matrix.tf-version }}/" ./submarine-sdk/pysubmarine/setup.py
- sed -i "s/tensorflow-estimator>=2.6.0,<2.10.0/tensorflow-estimator~=${{ matrix.tf-version }}/" ./submarine-sdk/pysubmarine/setup.py
+ sed -i "s/tensorflow>=2.12.0,<2.15.0/tensorflow~=${{ matrix.tf-version }}/" ./submarine-sdk/pysubmarine/setup.py
+ sed -i "s/tensorflow-estimator>=2.12.0,<2.15.0/tensorflow-estimator~=${{ matrix.tf-version }}/" ./submarine-sdk/pysubmarine/setup.py
pip install --no-cache-dir -e ./submarine-sdk/pysubmarine/.[tf2,pytorch]
- name: List installed packages
run: pip list && pipdeptree
@@ -92,19 +80,11 @@
timeout-minutes: 60
strategy:
matrix:
- python-version: ['3.7', '3.8', '3.9', '3.10']
- tf-version: ['1.15.0', '2.6.0', '2.7.0', '2.8.0', '2.9.0']
+ python-version: ['3.8', '3.9', '3.10', '3.11']
+ tf-version: ['2.12.0', '2.13.0', '2.14.0']
exclude:
- python-version: '3.8'
- tf-version: '1.15.0'
- - python-version: '3.9'
- tf-version: '1.15.0'
- - python-version: '3.10'
- tf-version: '1.15.0'
- - python-version: '3.10'
- tf-version: '2.6.0'
- - python-version: '3.10'
- tf-version: '2.7.0'
+ tf-version: '2.14.0'
fail-fast: false
steps:
- uses: actions/checkout@v3
@@ -116,18 +96,11 @@
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- - name: Install tf1 dependencies
- if: ${{ matrix.tf-version == '1.15.0' }}
- run: |
- pip install --upgrade pip setuptools wheel
- pip install --no-cache-dir -e ./submarine-sdk/pysubmarine/.[tf,pytorch]
- pip install -r ./submarine-sdk/pysubmarine/github-actions/test-requirements.txt
- name: Install tf2 dependencies
- if: startsWith(matrix.tf-version, '2.')
run: |
pip install --upgrade pip setuptools wheel
- sed -i "s/tensorflow>=2.6.0,<2.10.0/tensorflow~=${{ matrix.tf-version }}/" ./submarine-sdk/pysubmarine/setup.py
- sed -i "s/tensorflow-estimator>=2.6.0,<2.10.0/tensorflow-estimator~=${{ matrix.tf-version }}/" ./submarine-sdk/pysubmarine/setup.py
+ sed -i "s/tensorflow>=2.12.0,<2.15.0/tensorflow~=${{ matrix.tf-version }}/" ./submarine-sdk/pysubmarine/setup.py
+ sed -i "s/tensorflow-estimator>=2.12.0,<2.15.0/tensorflow-estimator~=${{ matrix.tf-version }}/" ./submarine-sdk/pysubmarine/setup.py
pip install --no-cache-dir -e ./submarine-sdk/pysubmarine/.[tf2,pytorch]
pip install -r ./submarine-sdk/pysubmarine/github-actions/test-requirements.txt
pip cache purge
@@ -209,4 +182,4 @@
args: >
-Dsonar.organization=apache
-Dsonar.projectKey=apache_submarine_python_sdk
- -Dsonar.python.version=3.7,3.8,3.9,3.10
+ -Dsonar.python.version=3.8,3.9,3.10,3.11
diff --git a/submarine-sdk/pysubmarine/github-actions/test-requirements.txt b/submarine-sdk/pysubmarine/github-actions/test-requirements.txt
index cf767b7..3e04701 100644
--- a/submarine-sdk/pysubmarine/github-actions/test-requirements.txt
+++ b/submarine-sdk/pysubmarine/github-actions/test-requirements.txt
@@ -16,14 +16,14 @@
certifi>=14.05.14
freezegun==1.2.2
moto[s3]==4.0.5
-pandas>=1.2.0,<=1.3.5 # 1.4.x does not support cp37
+pandas>=1.2.0
pylint==2.15.2
PyMySQL==1.0.2
pytest==7.1.3
pytest-cov==3.0.0
pytest-localserver==0.7.0
python_dateutil>=2.5.3
-scikit-learn>=0.24.2,<=1.0.2 # 1.1.x does not support cp37
+scikit-learn>=0.24.2
setuptools>=21.0.0
urllib3>=1.15.1
pipdeptree==2.5.2
diff --git a/submarine-sdk/pysubmarine/setup.py b/submarine-sdk/pysubmarine/setup.py
index 69320be..3fd516a 100644
--- a/submarine-sdk/pysubmarine/setup.py
+++ b/submarine-sdk/pysubmarine/setup.py
@@ -45,35 +45,27 @@
"pyaml",
],
extras_require={
- "tf": ["tensorflow==1.15.5", "numpy>=1.16.0,<1.19.0", "protobuf>=3.6.1,<3.20"],
"tf2": [
- "tensorflow>=2.6.0,<2.10.0",
+ "tensorflow>=2.12.0,<2.15.0",
"numpy>=1.14.5",
"keras>=2.6.0",
- "protobuf>=3.9.2,<3.20",
- "tensorflow-addons==0.17.0",
- "tensorflow-estimator>=2.6.0,<2.10.0",
+ "tensorflow-addons>=0.17.0",
+ "tensorflow-estimator>=2.12.0,<2.15.0",
"tf_slim==1.1.0",
# todo(cdmikechen): Based on SUBMARINE-1372, typeguard has recently been upgraded to version 3.0,
# which will restrict some python syntax and types more tightly.
# We are not upgrading this in submarine 0.8.0 for now,
# and will fix version compatibility issues in 0.8.1 or 0.9.0.
"typeguard<3.0.0",
- # todo(cdmikechen): SUBMARINE-1389. From scipy 1.11.0
- # (https://github.com/scipy/scipy/releases/tag/v1.11.0),
- # scipy need numpy 1.21.6 or geater in python 3.9.
- # So that we need to restrict scipy < 1.11.0 to support tf2.6.
- # From submarine 0.8.1 or 0.9.0, we may no longer support tensorflow 2.6
- "scipy<1.11.0",
],
"pytorch": ["torch>=1.5.0", "torchvision>=0.6.0"],
},
classifiers=[
"Intended Audience :: Developers",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
],
entry_points={
"console_scripts": [