This is an automated email from the ASF dual-hosted git repository.

isapego pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 6e6990c7a42 IGNITE-27158 DB API: Update supported versions (#7256)
6e6990c7a42 is described below

commit 6e6990c7a42df45f23ffe76428cab47ae4d154cb
Author: Igor Sapego <[email protected]>
AuthorDate: Tue Dec 23 03:33:28 2025 +0400

    IGNITE-27158 DB API: Update supported versions (#7256)
---
 .github/workflows/python_dbapi_wheels.yml          | 69 ++++++++++------------
 .../platform_tests/PlatformPythonTestsLinux.kt     | 21 ++++---
 modules/platforms/python/README.md                 |  8 +--
 modules/platforms/python/scripts/BuildWheels.ps1   |  4 +-
 modules/platforms/python/scripts/build_wheels.sh   |  2 +-
 modules/platforms/python/scripts/create_distr.sh   |  2 +-
 modules/platforms/python/scripts/create_sdist.sh   |  2 +-
 modules/platforms/python/setup.py                  |  4 +-
 modules/platforms/python/tox.ini                   | 12 ++--
 9 files changed, 60 insertions(+), 64 deletions(-)

diff --git a/.github/workflows/python_dbapi_wheels.yml 
b/.github/workflows/python_dbapi_wheels.yml
index 661de5a40a0..d8dccd213d1 100644
--- a/.github/workflows/python_dbapi_wheels.yml
+++ b/.github/workflows/python_dbapi_wheels.yml
@@ -13,15 +13,17 @@ jobs:
     runs-on: ubuntu-latest
 
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
         with:
           sparse-checkout: |
             modules/platforms/
 
-      - uses: actions/setup-python@v5
+      - uses: actions/setup-python@v6
+        with:
+          python-version: 3.11
 
       - name: Install setuptools
-        run: python -m pip install setuptools
+        run: python -m pip install --upgrade setuptools packaging>=24.2
 
       - name: Copy C++ sources
         run: cp -r modules/platforms/cpp modules/platforms/python/
@@ -40,46 +42,34 @@ jobs:
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        # macos-13 is an intel runner, macos-14 is apple silicon
-        os: [ubuntu-22.04, ubuntu-24.04-arm, windows-2022, macos-13, macos-14]
+        include:
+          - os: macos-latest
+            arch: arm64
+            macos_deployment_target: "14.0"
+
+          - os: macos-15-intel
+            arch: x86_64
+            macos_deployment_target: "15.0"
+
+          - os: ubuntu-latest
+            arch: auto64
+            cibw_build: "cp31{0,1,2,3,4}-manylinux*"
+
+          - os: windows-latest
+            arch: AMD64
 
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
         with:
           sparse-checkout: |
             modules/platforms/
 
-      - uses: actions/setup-python@v5
+      - uses: actions/setup-python@v6
+        with:
+          python-version: 3.11
 
       - name: Install cibuildwheel
-        run: python -m pip install cibuildwheel==2.23.1
-
-      - name: Build wheels macOS 14
-        if: matrix.os == 'macos-14'
-        run: python -m cibuildwheel --output-dir 
modules/platforms/python/wheels modules/platforms/python
-        env:
-          CIBW_BUILD: cp39-* cp310-* cp311-* cp312-* cp313-*
-          CIBW_ARCHS: arm64
-          MACOSX_DEPLOYMENT_TARGET: 14.0
-          CIBW_BUILD_VERBOSITY: 1
-
-      - name: Build wheels macOS 13
-        if: matrix.os == 'macos-13'
-        run: python -m cibuildwheel --output-dir 
modules/platforms/python/wheels modules/platforms/python
-        env:
-          CIBW_BUILD: cp39-* cp310-* cp311-* cp312-* cp313-*
-          CIBW_ARCHS: x86_64
-          MACOSX_DEPLOYMENT_TARGET: 13.0
-          CIBW_BUILD_VERBOSITY: 1
-
-      - name: Build wheels Linux
-        if: runner.os == 'Linux'
-        run: python -m cibuildwheel --output-dir 
modules/platforms/python/wheels modules/platforms/python
-        env:
-          CIBW_BUILD: cp39-manylinux* cp31{0,1,2,3}-manylinux*
-          CIBW_ARCHS: auto64
-          CIBW_BEFORE_ALL: yum -y install openssl-devel
-          CIBW_BUILD_VERBOSITY: 1
+        run: python -m pip install cibuildwheel==3.3.0
 
       - name: Install OpenSSL (Windows)
         if: runner.os == 'Windows'
@@ -88,13 +78,14 @@ jobs:
           echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath 
$env:GITHUB_ENV -Append
           vcpkg install openssl:x64-windows-static-md
 
-      - name: Build wheels Windows
-        if: runner.os == 'Windows'
+      - name: Build wheels ${{ matrix.os }}
         run: python -m cibuildwheel --output-dir 
modules/platforms/python/wheels modules/platforms/python
         env:
-          CIBW_BUILD: cp39-* cp310-* cp311-* cp312-* cp313-*
-          CIBW_ARCHS: AMD64
+          CIBW_BUILD: ${{ matrix.cibw_build || 'cp31{0,1,2,3,4}-*' }}
+          CIBW_ARCHS: ${{ matrix.arch }}
+          MACOSX_DEPLOYMENT_TARGET: ${{ matrix.macos_deployment_target || '' }}
           CIBW_BUILD_VERBOSITY: 1
+          CIBW_BEFORE_ALL_LINUX: "yum install -y openssl-devel"
 
       - uses: actions/upload-artifact@v4
         with:
diff --git a/.teamcity/test/platform_tests/PlatformPythonTestsLinux.kt 
b/.teamcity/test/platform_tests/PlatformPythonTestsLinux.kt
index fa6f3fa86b0..10cf479f42c 100644
--- a/.teamcity/test/platform_tests/PlatformPythonTestsLinux.kt
+++ b/.teamcity/test/platform_tests/PlatformPythonTestsLinux.kt
@@ -19,6 +19,8 @@ object PlatformPythonTestsLinux : BuildType({
         text("PATH__WORKING_DIR", 
"""%VCSROOT__IGNITE3%\modules\platforms\python""", display = 
ParameterDisplay.HIDDEN, allowEmpty = true)
         param("env.IGNITE_CPP_TESTS_USE_SINGLE_NODE", "")
         param("env.CPP_STAGING", """%PATH__WORKING_DIR%\cpp_staging""")
+        param("TOX_ENV", "py310")
+        param("PYTHON_VERSION", "3.10")
     }
 
     steps {
@@ -34,11 +36,20 @@ object PlatformPythonTestsLinux : BuildType({
                 set -o errexit; set -o pipefail; set -o errtrace; set -o 
functrace
                 set -x
                 
-                
                 eval "${'$'}(pyenv init --path)" || echo 'first'
                 eval "${'$'}(pyenv init --no-rehash -)" || echo 'second'
                 
-                tox -e py39 || exit 0
+                pyenv install %PYTHON_VERSION% || echo 'third'
+                pyenv shell %PYTHON_VERSION% || exit 1
+
+                pyenv exec python -m venv .venv_tox || exit 2
+                . .venv_tox/bin/activate || exit 3
+                
+                pyenv exec python -m pip install --upgrade pip || exit 4
+                pyenv exec python -m pip install --upgrade tox || exit 5
+                pyenv rehash || exit 6
+
+                pyenv exec tox -e %TOX_ENV% || exit 7
             """.trimIndent()
         }
     }
@@ -74,11 +85,7 @@ object PlatformPythonTestsLinux : BuildType({
         }
     }
 
-    /**
-     *  Temporary lock Platform Linux jobs on old-type agents
-     *  until execution of these tests is fixed on DIND agents
-     */
     requirements {
-        doesNotExist("env.DIND_ENABLED")
+        equals("env.DIND_ENABLED", "true")
     }
 })
diff --git a/modules/platforms/python/README.md 
b/modules/platforms/python/README.md
index 3f311e1bf86..53377035e7e 100644
--- a/modules/platforms/python/README.md
+++ b/modules/platforms/python/README.md
@@ -3,7 +3,7 @@ Apache Ignite 3 DB API Driver.
 
 ## Prerequisites
 
-- Python 3.9 or above (3.9, 3.10, 3.11, 3.12 and 3.13 are tested),
+- Python 3.10 or above (3.10, 3.11, 3.12, 3.13 and 3.14 are tested),
 - Access to Ignite 3 node, local or remote.
 
 ## Installation
@@ -47,7 +47,7 @@ Linux building requirements:
 - CMake version >=3.18;
 - OpenSSL (dev version of the package);
 - Docker to build wheels;
-- Supported versions of Python (3.9, 3.10, 3.11, 3.12 and 3.13).
+- Supported versions of Python (3.10, 3.11, 3.12, 3.13 and 3.14).
   You can disable some of these versions, but you'd need to edit the script 
for that.
 
 For building universal `wheels` (binary packages) for Linux, just invoke 
script `./scripts/create_distr.sh`.
@@ -56,7 +56,7 @@ Windows building requirements:
 - MSVC 14.x, and it should be in path;
 - CMake version >=3.18;
 - OpenSSL (headers are required for the build);
-- Supported versions of Python (3.9, 3.10, 3.11, 3.12 and 3.13).
+- Supported versions of Python (3.10, 3.11, 3.12, 3.13 and 3.14).
   You can disable some of these versions, but you'd need to edit the script 
for that.
 
 For building `wheels` for Windows, invoke script `.\scripts\BuildWheels.ps1` 
using PowerShell.
@@ -65,7 +65,7 @@ The script only works with Python distributions installed in 
a standard path, wh
 
 Ready wheels will be located in `distr` directory.
 
-### Updating from older version
+### Updating from an older version
 
 To upgrade an existing package, use the following command:
 ```
diff --git a/modules/platforms/python/scripts/BuildWheels.ps1 
b/modules/platforms/python/scripts/BuildWheels.ps1
index fa52327abda..45dffb5eadf 100644
--- a/modules/platforms/python/scripts/BuildWheels.ps1
+++ b/modules/platforms/python/scripts/BuildWheels.ps1
@@ -27,8 +27,8 @@
 .PARAMETER PyVers
     Python versions to use, through coma.
 .EXAMPLE
-    PS> .\scripts\BuildWheels.ps1 -PyVers "3.9,3.10,3.11,3.12,3.13"
-    Build wheels for Python versions 3.9-3.13
+    PS> .\scripts\BuildWheels.ps1 -PyVers "3.10,3.11,3.12,3.13,3.14"
+    Build wheels for Python versions 3.10-3.14
 .EXAMPLE
     PS> .\scripts\BuildWheels.ps1 -PyVers 3.11
     Build wheels for Python versions 3.11 only
diff --git a/modules/platforms/python/scripts/build_wheels.sh 
b/modules/platforms/python/scripts/build_wheels.sh
index a9e5a189ed6..ecd1f5ae1ee 100755
--- a/modules/platforms/python/scripts/build_wheels.sh
+++ b/modules/platforms/python/scripts/build_wheels.sh
@@ -19,7 +19,7 @@ set -e -u -x
 PACKAGE_NAME="pyignite_dbapi"
 PY_VERS=$1
 
-# Converting input from '3.9,3.10...' to '39 310...'
+# Converting input from '3.10,3.11...' to '310 311...'
 PREPARED_VERS=$(echo $PY_VERS | sed -r 's/\.//g' | tr ',' ' ')
 
 
diff --git a/modules/platforms/python/scripts/create_distr.sh 
b/modules/platforms/python/scripts/create_distr.sh
index 1da15ceaf58..ae6e28cb783 100755
--- a/modules/platforms/python/scripts/create_distr.sh
+++ b/modules/platforms/python/scripts/create_distr.sh
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-PY_VERS="3.9,3.10,3.11,3.12,3.13"
+PY_VERS="3.10,3.11,3.12,3.13,3.14"
 PACKAGE_NAME="pyignite_dbapi"
 SRC_DIR="$(pwd)"
 DISTR_DIR="$SRC_DIR/distr/"
diff --git a/modules/platforms/python/scripts/create_sdist.sh 
b/modules/platforms/python/scripts/create_sdist.sh
index 8794e141264..4b397a54626 100755
--- a/modules/platforms/python/scripts/create_sdist.sh
+++ b/modules/platforms/python/scripts/create_sdist.sh
@@ -19,7 +19,7 @@ set -e -u -x
 PACKAGE_NAME="pyignite_dbapi"
 PY_VERS=$1
 
-# Converting input from '3.9,3.10...' to '39 310...'
+# Converting input from '3.10,3.11...' to '310 311...'
 PREPARED_VERS=$(echo $PY_VERS | sed -r 's/\.//g' | tr ',' ' ')
 
 # Copying cpp directory.
diff --git a/modules/platforms/python/setup.py 
b/modules/platforms/python/setup.py
index 5c5908e62e2..72539ed8ea6 100644
--- a/modules/platforms/python/setup.py
+++ b/modules/platforms/python/setup.py
@@ -130,7 +130,7 @@ def run_setup():
     setuptools.setup(
         name=PACKAGE_NAME,
         version=version,
-        python_requires='>=3.8',
+        python_requires='>=3.10',
         author='The Apache Software Foundation',
         author_email='[email protected]',
         description='Apache Ignite 3 DB API Driver',
@@ -148,11 +148,11 @@ def run_setup():
             'Programming Language :: C++',
             'Programming Language :: Python',
             'Programming Language :: Python :: 3',
-            'Programming Language :: Python :: 3.9',
             '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',
             'Programming Language :: Python :: 3 :: Only',
             'Intended Audience :: Developers',
             'Topic :: Database :: Front-Ends',
diff --git a/modules/platforms/python/tox.ini b/modules/platforms/python/tox.ini
index 5cd65c54a7d..30b72d12dea 100644
--- a/modules/platforms/python/tox.ini
+++ b/modules/platforms/python/tox.ini
@@ -14,17 +14,15 @@
 # limitations under the License.
 
 [tox]
-skipsdist = True
-envlist = codestyle,py{39,310,311,312,313}
+env_list = codestyle,py31{0,1,2,3,4}
+isolated_build = True
 
 [testenv]
-passenv = TEAMCITY_VERSION IGNITE_HOME
-envdir = {homedir}/.virtualenvs/pyignite_dbapi_{envname}
+passenv = *
+use_develop = True
 deps =
     -r ./requirements/install.txt
     -r ./requirements/tests.txt
 recreate = True
-usedevelop = True
-commands =
-    pytest {env:PYTESTARGS:} {posargs}
+commands = pytest -s --teamcity tests
 

Reply via email to