Repository: photosynthesis-team/piq (language: python)

Issue:
CI Testing Pipeline: Update Versions
Current testing CI pipeline covers `python 3.6`, which has end of life on 23.12.2021. 
As a result, on case of some libraries with new releases, the CI pipeline could fail or take too long to validate the code.
Fore example, CI pipeline for testing (`python 3.6`) takes significantly more time to install opencv.
Partially it was tackled in #329 to reenable the CI pipeline. However, current CI does not represent library functionality with newer releases of `pytorch` and `python`.

**Suggestion**
Shift the supported versions of `python` and `torchvision` and update the CI/CD pipelines accordingly.
New versions:
- `python`: 3.7 - 1.10
- `torchvision`: 0.6.1 - 0.14.1
 

**To Reproduce**
Steps to reproduce the behavior:
1. Go to [action](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454) for latest commits 
2. Choose pipeline for `python 3.6`, any `torchvision` version.
3. Expand `Install Dependencies`
4. Scroll to the section with `opencv` installation

**Expected behavior**
Quick installation of the dependencies similar to `python 3.7` pipeline. 

**Observation**
Opencv cannot be installed using pipit package. It is build from source code.
```
Building wheels for collected packages: opencv-python
[206](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:207)
  Building wheel for opencv-python (pyproject.toml): started
[207](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:208)
  Building wheel for opencv-python (pyproject.toml): still running...
[208](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:209)
  Building wheel for opencv-python (pyproject.toml): still running...
[209](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:210)
  Building wheel for opencv-python (pyproject.toml): still running...
[210](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:211)
  Building wheel for opencv-python (pyproject.toml): still running...
[211](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:212)
  Building wheel for opencv-python (pyproject.toml): still running...
[212](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:213)
  Building wheel for opencv-python (pyproject.toml): still running...
[213](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:214)
  Building wheel for opencv-python (pyproject.toml): still running...
[214](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:215)
  Building wheel for opencv-python (pyproject.toml): still running...
[215](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:216)
  Building wheel for opencv-python (pyproject.toml): still running...
[216](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:217)
  Building wheel for opencv-python (pyproject.toml): still running...
[217](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:218)
  Building wheel for opencv-python (pyproject.toml): still running...
[218](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:219)
  Building wheel for opencv-python (pyproject.toml): still running...
[219](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:220)
  Building wheel for opencv-python (pyproject.toml): still running...
[220](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:221)
  Building wheel for opencv-python (pyproject.toml): still running...
[221](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:222)
  Building wheel for opencv-python (pyproject.toml): still running...
[222](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:223)
  Building wheel for opencv-python (pyproject.toml): still running...
[223](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:224)
  Building wheel for opencv-python (pyproject.toml): still running...
[224](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:225)
  Building wheel for opencv-python (pyproject.toml): still running...
[225](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:226)
  Building wheel for opencv-python (pyproject.toml): still running...
[226](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:227)
  Building wheel for opencv-python (pyproject.toml): still running...
[227](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:228)
  Building wheel for opencv-python (pyproject.toml): still running...
[228](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:229)
  Building wheel for opencv-python (pyproject.toml): still running...
[229](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:230)
  Building wheel for opencv-python (pyproject.toml): still running...
[230](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:231)
  Building wheel for opencv-python (pyproject.toml): still running...
[231](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:232)
  Building wheel for opencv-python (pyproject.toml): still running...
[232](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:233)
  Building wheel for opencv-python (pyproject.toml): still running...
[233](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:234)
  Building wheel for opencv-python (pyproject.toml): still running...
[234](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:235)
  Building wheel for opencv-python (pyproject.toml): still running...
[235](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:236)
  Building wheel for opencv-python (pyproject.toml): still running...
[236](https://github.com/photosynthesis-team/piq/actions/runs/3960946662/jobs/6785755454#step:5:237)
  Building wheel for opencv-python (pyproject.toml): finished with status 'done'
```




Discussion / hints:

Fix patch:
diff --git a/.github/workflows/ci-linting.yml b/.github/workflows/ci-linting.yml
index 3ba6641b..58260d6a 100644
--- a/.github/workflows/ci-linting.yml
+++ b/.github/workflows/ci-linting.yml
@@ -10,11 +10,11 @@ on:
 jobs:
   build:
 
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-latest
     strategy:
       max-parallel: 4
       matrix:
-        python-version: [3.6]
+        python-version: "3.10"
 
     steps:
       - uses: actions/checkout@v2
diff --git a/.github/workflows/ci-mypy.yml b/.github/workflows/ci-mypy.yml
index 990391b2..17a657f8 100644
--- a/.github/workflows/ci-mypy.yml
+++ b/.github/workflows/ci-mypy.yml
@@ -10,11 +10,11 @@ on:
 jobs:
   build:
 
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-latest
     strategy:
       max-parallel: 4
       matrix:
-        python-version: [3.8]
+        python-version: "3.10"
 
     steps:
       - uses: actions/checkout@v2
diff --git a/README.rst b/README.rst
index c7015972..a7b7666b 100644
--- a/README.rst
+++ b/README.rst
@@ -43,7 +43,7 @@ We provide:
 * Extensive user input validation. Your code will not crash in the middle of the training.
 * Fast (GPU computations available) and reliable.
 * Most metrics can be backpropagated for model optimization.
-* Supports python 3.6-3.8.
+* Supports python 3.7-3.10.
 
 PIQ was initially named `PhotoSynthesis.Metrics <https://pypi.org/project/photosynthesis-metrics/0.4.0/>`_.
 


Test patch:
diff --git a/.github/workflows/ci-testing.yml b/.github/workflows/ci-testing.yml
index 2a32ef95..39e793e0 100644
--- a/.github/workflows/ci-testing.yml
+++ b/.github/workflows/ci-testing.yml
@@ -9,15 +9,20 @@ on:
 jobs:
   build:
 
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-latest
     env:
-      USING_COVERAGE: '3.6'
+      USING_COVERAGE: '3.7'
 
     strategy:
       max-parallel: 4
       matrix:
-        python-version: [3.6, 3.7, 3.8]
-        torchvision-version: [0.6.1, 0.9.1]
+        include:
+          - python-version: "3.7"
+            torchvision-version: "0.6.1"
+          - python-version: "3.7"
+            torchvision-version: "0.14.1"
+          - python-version: "3.10"
+            torchvision-version: "0.14.1"
 
     steps:
       - uses: actions/checkout@v2
@@ -36,7 +41,7 @@ jobs:
             ${{ runner.os }}-
       - name: Install dependencies
         run: |
-          python -m pip install --upgrade pip
+          python -m pip install --upgrade pip setuptools wheel
           pip install torchvision==${{ matrix.torchvision-version }}
           pip install -r requirements.txt
           pip install pytest \
diff --git a/tests/test_gs.py b/tests/test_gs.py
index a2a132b5..1f092da1 100644
--- a/tests/test_gs.py
+++ b/tests/test_gs.py
@@ -35,12 +35,12 @@ def prepare_test(scipy_version='1.3.3', gudhi_version='3.2') -> None:
     try:
         import scipy  # noqa: F401
     except ImportError:
-        install('scipy' + '==' + scipy_version)
+        install('scipy' + '>=' + scipy_version)
 
     try:
         import gudhi  # noqa: F401
     except ImportError:
-        install('gudhi' + '==' + gudhi_version)
+        install('gudhi' + '>=' + gudhi_version)
 
 
 @pytest.fixture