Skip to content

Commit 6e6990c

Browse files
authored
IGNITE-27158 DB API: Update supported versions (#7256)
1 parent 6d019ef commit 6e6990c

File tree

9 files changed

+60
-64
lines changed

9 files changed

+60
-64
lines changed

.github/workflows/python_dbapi_wheels.yml

Lines changed: 30 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,17 @@ jobs:
1313
runs-on: ubuntu-latest
1414

1515
steps:
16-
- uses: actions/checkout@v4
16+
- uses: actions/checkout@v6
1717
with:
1818
sparse-checkout: |
1919
modules/platforms/
2020
21-
- uses: actions/setup-python@v5
21+
- uses: actions/setup-python@v6
22+
with:
23+
python-version: 3.11
2224

2325
- name: Install setuptools
24-
run: python -m pip install setuptools
26+
run: python -m pip install --upgrade setuptools packaging>=24.2
2527

2628
- name: Copy C++ sources
2729
run: cp -r modules/platforms/cpp modules/platforms/python/
@@ -40,46 +42,34 @@ jobs:
4042
runs-on: ${{ matrix.os }}
4143
strategy:
4244
matrix:
43-
# macos-13 is an intel runner, macos-14 is apple silicon
44-
os: [ubuntu-22.04, ubuntu-24.04-arm, windows-2022, macos-13, macos-14]
45+
include:
46+
- os: macos-latest
47+
arch: arm64
48+
macos_deployment_target: "14.0"
49+
50+
- os: macos-15-intel
51+
arch: x86_64
52+
macos_deployment_target: "15.0"
53+
54+
- os: ubuntu-latest
55+
arch: auto64
56+
cibw_build: "cp31{0,1,2,3,4}-manylinux*"
57+
58+
- os: windows-latest
59+
arch: AMD64
4560

4661
steps:
47-
- uses: actions/checkout@v4
62+
- uses: actions/checkout@v6
4863
with:
4964
sparse-checkout: |
5065
modules/platforms/
5166
52-
- uses: actions/setup-python@v5
67+
- uses: actions/setup-python@v6
68+
with:
69+
python-version: 3.11
5370

5471
- name: Install cibuildwheel
55-
run: python -m pip install cibuildwheel==2.23.1
56-
57-
- name: Build wheels macOS 14
58-
if: matrix.os == 'macos-14'
59-
run: python -m cibuildwheel --output-dir modules/platforms/python/wheels modules/platforms/python
60-
env:
61-
CIBW_BUILD: cp39-* cp310-* cp311-* cp312-* cp313-*
62-
CIBW_ARCHS: arm64
63-
MACOSX_DEPLOYMENT_TARGET: 14.0
64-
CIBW_BUILD_VERBOSITY: 1
65-
66-
- name: Build wheels macOS 13
67-
if: matrix.os == 'macos-13'
68-
run: python -m cibuildwheel --output-dir modules/platforms/python/wheels modules/platforms/python
69-
env:
70-
CIBW_BUILD: cp39-* cp310-* cp311-* cp312-* cp313-*
71-
CIBW_ARCHS: x86_64
72-
MACOSX_DEPLOYMENT_TARGET: 13.0
73-
CIBW_BUILD_VERBOSITY: 1
74-
75-
- name: Build wheels Linux
76-
if: runner.os == 'Linux'
77-
run: python -m cibuildwheel --output-dir modules/platforms/python/wheels modules/platforms/python
78-
env:
79-
CIBW_BUILD: cp39-manylinux* cp31{0,1,2,3}-manylinux*
80-
CIBW_ARCHS: auto64
81-
CIBW_BEFORE_ALL: yum -y install openssl-devel
82-
CIBW_BUILD_VERBOSITY: 1
72+
run: python -m pip install cibuildwheel==3.3.0
8373

8474
- name: Install OpenSSL (Windows)
8575
if: runner.os == 'Windows'
@@ -88,13 +78,14 @@ jobs:
8878
echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
8979
vcpkg install openssl:x64-windows-static-md
9080
91-
- name: Build wheels Windows
92-
if: runner.os == 'Windows'
81+
- name: Build wheels ${{ matrix.os }}
9382
run: python -m cibuildwheel --output-dir modules/platforms/python/wheels modules/platforms/python
9483
env:
95-
CIBW_BUILD: cp39-* cp310-* cp311-* cp312-* cp313-*
96-
CIBW_ARCHS: AMD64
84+
CIBW_BUILD: ${{ matrix.cibw_build || 'cp31{0,1,2,3,4}-*' }}
85+
CIBW_ARCHS: ${{ matrix.arch }}
86+
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.macos_deployment_target || '' }}
9787
CIBW_BUILD_VERBOSITY: 1
88+
CIBW_BEFORE_ALL_LINUX: "yum install -y openssl-devel"
9889

9990
- uses: actions/upload-artifact@v4
10091
with:

.teamcity/test/platform_tests/PlatformPythonTestsLinux.kt

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ object PlatformPythonTestsLinux : BuildType({
1919
text("PATH__WORKING_DIR", """%VCSROOT__IGNITE3%\modules\platforms\python""", display = ParameterDisplay.HIDDEN, allowEmpty = true)
2020
param("env.IGNITE_CPP_TESTS_USE_SINGLE_NODE", "")
2121
param("env.CPP_STAGING", """%PATH__WORKING_DIR%\cpp_staging""")
22+
param("TOX_ENV", "py310")
23+
param("PYTHON_VERSION", "3.10")
2224
}
2325

2426
steps {
@@ -34,11 +36,20 @@ object PlatformPythonTestsLinux : BuildType({
3436
set -o errexit; set -o pipefail; set -o errtrace; set -o functrace
3537
set -x
3638
37-
3839
eval "${'$'}(pyenv init --path)" || echo 'first'
3940
eval "${'$'}(pyenv init --no-rehash -)" || echo 'second'
4041
41-
tox -e py39 || exit 0
42+
pyenv install %PYTHON_VERSION% || echo 'third'
43+
pyenv shell %PYTHON_VERSION% || exit 1
44+
45+
pyenv exec python -m venv .venv_tox || exit 2
46+
. .venv_tox/bin/activate || exit 3
47+
48+
pyenv exec python -m pip install --upgrade pip || exit 4
49+
pyenv exec python -m pip install --upgrade tox || exit 5
50+
pyenv rehash || exit 6
51+
52+
pyenv exec tox -e %TOX_ENV% || exit 7
4253
""".trimIndent()
4354
}
4455
}
@@ -74,11 +85,7 @@ object PlatformPythonTestsLinux : BuildType({
7485
}
7586
}
7687

77-
/**
78-
* Temporary lock Platform Linux jobs on old-type agents
79-
* until execution of these tests is fixed on DIND agents
80-
*/
8188
requirements {
82-
doesNotExist("env.DIND_ENABLED")
89+
equals("env.DIND_ENABLED", "true")
8390
}
8491
})

modules/platforms/python/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Apache Ignite 3 DB API Driver.
33

44
## Prerequisites
55

6-
- Python 3.9 or above (3.9, 3.10, 3.11, 3.12 and 3.13 are tested),
6+
- Python 3.10 or above (3.10, 3.11, 3.12, 3.13 and 3.14 are tested),
77
- Access to Ignite 3 node, local or remote.
88

99
## Installation
@@ -47,7 +47,7 @@ Linux building requirements:
4747
- CMake version >=3.18;
4848
- OpenSSL (dev version of the package);
4949
- Docker to build wheels;
50-
- Supported versions of Python (3.9, 3.10, 3.11, 3.12 and 3.13).
50+
- Supported versions of Python (3.10, 3.11, 3.12, 3.13 and 3.14).
5151
You can disable some of these versions, but you'd need to edit the script for that.
5252

5353
For building universal `wheels` (binary packages) for Linux, just invoke script `./scripts/create_distr.sh`.
@@ -56,7 +56,7 @@ Windows building requirements:
5656
- MSVC 14.x, and it should be in path;
5757
- CMake version >=3.18;
5858
- OpenSSL (headers are required for the build);
59-
- Supported versions of Python (3.9, 3.10, 3.11, 3.12 and 3.13).
59+
- Supported versions of Python (3.10, 3.11, 3.12, 3.13 and 3.14).
6060
You can disable some of these versions, but you'd need to edit the script for that.
6161

6262
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
6565

6666
Ready wheels will be located in `distr` directory.
6767

68-
### Updating from older version
68+
### Updating from an older version
6969

7070
To upgrade an existing package, use the following command:
7171
```

modules/platforms/python/scripts/BuildWheels.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
.PARAMETER PyVers
2828
Python versions to use, through coma.
2929
.EXAMPLE
30-
PS> .\scripts\BuildWheels.ps1 -PyVers "3.9,3.10,3.11,3.12,3.13"
31-
Build wheels for Python versions 3.9-3.13
30+
PS> .\scripts\BuildWheels.ps1 -PyVers "3.10,3.11,3.12,3.13,3.14"
31+
Build wheels for Python versions 3.10-3.14
3232
.EXAMPLE
3333
PS> .\scripts\BuildWheels.ps1 -PyVers 3.11
3434
Build wheels for Python versions 3.11 only

modules/platforms/python/scripts/build_wheels.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ set -e -u -x
1919
PACKAGE_NAME="pyignite_dbapi"
2020
PY_VERS=$1
2121

22-
# Converting input from '3.9,3.10...' to '39 310...'
22+
# Converting input from '3.10,3.11...' to '310 311...'
2323
PREPARED_VERS=$(echo $PY_VERS | sed -r 's/\.//g' | tr ',' ' ')
2424

2525

modules/platforms/python/scripts/create_distr.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# See the License for the specific language governing permissions and
1515
# limitations under the License.
1616

17-
PY_VERS="3.9,3.10,3.11,3.12,3.13"
17+
PY_VERS="3.10,3.11,3.12,3.13,3.14"
1818
PACKAGE_NAME="pyignite_dbapi"
1919
SRC_DIR="$(pwd)"
2020
DISTR_DIR="$SRC_DIR/distr/"

modules/platforms/python/scripts/create_sdist.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ set -e -u -x
1919
PACKAGE_NAME="pyignite_dbapi"
2020
PY_VERS=$1
2121

22-
# Converting input from '3.9,3.10...' to '39 310...'
22+
# Converting input from '3.10,3.11...' to '310 311...'
2323
PREPARED_VERS=$(echo $PY_VERS | sed -r 's/\.//g' | tr ',' ' ')
2424

2525
# Copying cpp directory.

modules/platforms/python/setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def run_setup():
130130
setuptools.setup(
131131
name=PACKAGE_NAME,
132132
version=version,
133-
python_requires='>=3.8',
133+
python_requires='>=3.10',
134134
author='The Apache Software Foundation',
135135
author_email='[email protected]',
136136
description='Apache Ignite 3 DB API Driver',
@@ -148,11 +148,11 @@ def run_setup():
148148
'Programming Language :: C++',
149149
'Programming Language :: Python',
150150
'Programming Language :: Python :: 3',
151-
'Programming Language :: Python :: 3.9',
152151
'Programming Language :: Python :: 3.10',
153152
'Programming Language :: Python :: 3.11',
154153
'Programming Language :: Python :: 3.12',
155154
'Programming Language :: Python :: 3.13',
155+
'Programming Language :: Python :: 3.14',
156156
'Programming Language :: Python :: 3 :: Only',
157157
'Intended Audience :: Developers',
158158
'Topic :: Database :: Front-Ends',

modules/platforms/python/tox.ini

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,15 @@
1414
# limitations under the License.
1515

1616
[tox]
17-
skipsdist = True
18-
envlist = codestyle,py{39,310,311,312,313}
17+
env_list = codestyle,py31{0,1,2,3,4}
18+
isolated_build = True
1919

2020
[testenv]
21-
passenv = TEAMCITY_VERSION IGNITE_HOME
22-
envdir = {homedir}/.virtualenvs/pyignite_dbapi_{envname}
21+
passenv = *
22+
use_develop = True
2323
deps =
2424
-r ./requirements/install.txt
2525
-r ./requirements/tests.txt
2626
recreate = True
27-
usedevelop = True
28-
commands =
29-
pytest {env:PYTESTARGS:} {posargs}
27+
commands = pytest -s --teamcity tests
3028

0 commit comments

Comments
 (0)