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