Skip to content

Commit 339bca5

Browse files
authored
OpenCV 4.7.0 release preparation
- Python 3.7 as baseline - Python 3.11 support - Various updates
1 parent 7ebbdc3 commit 339bca5

13 files changed

+37
-30
lines changed

.github/workflows/build_wheels_linux.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
strategy:
2828
fail-fast: false
2929
matrix:
30-
python-version: ['3.6']
30+
python-version: ['3.7']
3131
platform: [x64]
3232
with_contrib: [0, 1]
3333
without_gui: [0, 1]
@@ -84,7 +84,7 @@ jobs:
8484
strategy:
8585
fail-fast: false
8686
matrix:
87-
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10']
87+
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
8888
platform: [x64]
8989
with_contrib: [0, 1]
9090
without_gui: [0, 1]
@@ -93,7 +93,7 @@ jobs:
9393
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
9494
MB_PYTHON_VERSION: ${{ matrix.python-version }}
9595
NP_TEST_DEP: numpy==1.19.4
96-
NP_TEST_DEP_LATEST: numpy==1.21.2
96+
NP_TEST_DEP_LATEST: numpy==1.24.0
9797
CONFIG_PATH: travis_config.sh
9898
PLAT: x86_64
9999
steps:
@@ -106,7 +106,7 @@ jobs:
106106
submodules: true
107107
fetch-depth: 0
108108
- name: Setup Environment variables
109-
run: if [ "3.10" == "${{ matrix.python-version }}" ]; then echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_LATEST)" >> $GITHUB_ENV; else echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; fi
109+
run: if [ "3.10" == "${{ matrix.python-version }}" -o "3.11" == "${{ matrix.python-version }}" ]; then echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_LATEST)" >> $GITHUB_ENV; else echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; fi
110110
- name: Download a wheel accordingly to matrix
111111
uses: actions/download-artifact@v3
112112
with:

.github/workflows/build_wheels_linux_arm.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
strategy:
2828
fail-fast: false
2929
matrix:
30-
python-version: ['3.6']
30+
python-version: ['3.7']
3131
platform: [x64]
3232
with_contrib: [0, 1]
3333
without_gui: [0, 1]
@@ -84,7 +84,7 @@ jobs:
8484
strategy:
8585
fail-fast: false
8686
matrix:
87-
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10']
87+
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
8888
platform: [x64]
8989
with_contrib: [0, 1]
9090
without_gui: [0, 1]
@@ -94,7 +94,7 @@ jobs:
9494
MB_PYTHON_VERSION: ${{ matrix.python-version }}
9595
PLAT: aarch64
9696
NP_TEST_DEP: numpy==1.19.4
97-
NP_TEST_DEP_LATEST: numpy==1.21.4
97+
NP_TEST_DEP_LATEST: numpy==1.24.0
9898
CONFIG_PATH: travis_config.sh
9999
DOCKER_TEST_IMAGE: multibuild/focal_arm64v8
100100
UNICODE_WIDTH: 32
@@ -108,7 +108,7 @@ jobs:
108108
submodules: true
109109
fetch-depth: 0
110110
- name: Setup Environment variables
111-
run: if [ "3.10" == "${{ matrix.python-version }}" ]; then echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_LATEST)" >> $GITHUB_ENV; else echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; fi
111+
run: if [ "3.10" == "${{ matrix.python-version }}" -o "3.11" == "${{ matrix.python-version }}" ]; then echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_LATEST)" >> $GITHUB_ENV; else echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; fi
112112
- name: Download a wheel accordingly to matrix
113113
uses: actions/download-artifact@v3
114114
with:

.github/workflows/build_wheels_macos.yml

+11-5
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
strategy:
2828
fail-fast: false
2929
matrix:
30-
python-version: ['3.6']
30+
python-version: ['3.7']
3131
platform: [x64]
3232
with_contrib: [0, 1]
3333
without_gui: [0, 1]
@@ -58,6 +58,12 @@ jobs:
5858
if [[ "${{ github.event_name }}" == "schedule" || "${{ github.event_name }}" == "workflow_dispatch" ]]; then
5959
echo "ENABLE_ROLLING=1" >> $GITHUB_ENV
6060
fi
61+
# hack for image issue on mac: https://github.com/actions/runner-images/issues/6817
62+
rm /usr/local/bin/2to3*
63+
rm /usr/local/bin/idle3*
64+
rm /usr/local/bin/pydoc3*
65+
rm /usr/local/bin/python3*
66+
# end hack
6167
- name: Checkout
6268
uses: actions/checkout@v3
6369
with:
@@ -100,7 +106,7 @@ jobs:
100106
strategy:
101107
fail-fast: false
102108
matrix:
103-
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10']
109+
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
104110
platform: [x64]
105111
with_contrib: [0, 1]
106112
without_gui: [0, 1]
@@ -109,7 +115,7 @@ jobs:
109115
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
110116
MB_PYTHON_VERSION: ${{ matrix.python-version }}
111117
NP_TEST_DEP: numpy==1.19.4
112-
NP_TEST_DEP_LATEST: numpy==1.21.4
118+
NP_TEST_DEP_LATEST: numpy==1.24.0
113119
CONFIG_PATH: travis_config.sh
114120
PLAT: x86_64
115121
OPENCV_TEST_DATA_PATH: ${{ github.workspace }}/opencv_extra/testdata
@@ -129,7 +135,7 @@ jobs:
129135
python-version: ${{ matrix.python-version }}
130136
architecture: ${{ matrix.platform }}
131137
- name: Setup Environment variables
132-
run: if [ "3.10" == "${{ matrix.python-version }}" ]; then echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_LATEST)" >> $GITHUB_ENV; else echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; fi
138+
run: if [ "3.10" == "${{ matrix.python-version }}" -o "3.11" == "${{ matrix.python-version }}" ]; then echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_LATEST)" >> $GITHUB_ENV; else echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; fi
133139
- name: Download a wheel accordingly to matrix
134140
uses: actions/download-artifact@v3
135141
with:
@@ -146,7 +152,7 @@ jobs:
146152
python modules/python/test/test.py -v --repo .
147153
- name: Pylint test
148154
run: |
149-
python -m pip install pylint==2.12.2
155+
python -m pip install pylint==2.15.9
150156
cd ${{ github.workspace }}/tests
151157
python -m pylint $PYLINT_TEST_FILE
152158

.github/workflows/build_wheels_macos_m1.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ jobs:
7575
strategy:
7676
fail-fast: false
7777
matrix:
78-
python-version: ['3.7', '3.8', '3.9', '3.10']
78+
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
7979
platform: [x64]
8080
with_contrib: [0, 1]
8181
without_gui: [0, 1]
@@ -109,7 +109,7 @@ jobs:
109109
arch -arm64 python${{ matrix.python-version }} modules/python/test/test.py -v --repo .
110110
- name: Pylint test
111111
run: |
112-
arch -arm64 python${{ matrix.python-version }} -m pip install pylint==2.12.2
112+
arch -arm64 python${{ matrix.python-version }} -m pip install pylint==2.15.9
113113
cd ${{ github.workspace }}/tests
114114
arch -arm64 python${{ matrix.python-version }} -m pylint $PYLINT_TEST_FILE
115115

.github/workflows/build_wheels_windows.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
strategy:
2424
fail-fast: false
2525
matrix:
26-
python-version: ['3.6']
26+
python-version: ['3.7']
2727
platform: [x86, x64]
2828
with_contrib: [0, 1]
2929
without_gui: [0, 1]
@@ -67,7 +67,7 @@ jobs:
6767
python -m pip install --upgrade setuptools
6868
python -m pip install cmake==3.24.2
6969
python -m pip install toml && python -c "import toml; c = toml.load('pyproject.toml'); print('\n'.join(c['build-system']['requires']))" >> requirements.txt | python -m pip install -r requirements.txt
70-
set "CI_BUILD=1" && python setup.py bdist_wheel --py-limited-api=cp36 --dist-dir=%cd%\wheelhouse -v
70+
set "CI_BUILD=1" && python setup.py bdist_wheel --py-limited-api=cp37 --dist-dir=%cd%\wheelhouse -v
7171
shell: cmd
7272
- name: Saving all wheels
7373
uses: actions/upload-artifact@v3
@@ -89,7 +89,7 @@ jobs:
8989
strategy:
9090
fail-fast: false
9191
matrix:
92-
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10']
92+
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
9393
platform: [x86, x64]
9494
with_contrib: [0, 1]
9595
without_gui: [0, 1]
@@ -133,7 +133,7 @@ jobs:
133133
python modules\python\test\test.py -v --repo .
134134
- name: Pylint test
135135
run: |
136-
python -m pip install pylint==2.12.2
136+
python -m pip install pylint==2.15.9
137137
cd ${{ github.workspace }}\tests
138138
python -m pylint $PYLINT_TEST_FILE
139139

opencv

Submodule opencv updated 282 files

opencv_contrib

Submodule opencv_contrib updated 123 files

patch_auditwheel_whitelist.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ def add_zlib_versions():
1212
for line in manylinux_policy_lines:
1313
if "ZLIB" in line:
1414
if len(line) > 22:
15-
updated_line = line[:-2] + ', "1.2.9", "1.2.12"]'
15+
updated_line = line[:-2] + ', "1.2.9", "1.2.12", "1.2.13"]'
1616
else:
17-
updated_line = line[:-2] + '"1.2.9", "1.2.12"]'
17+
updated_line = line[:-2] + '"1.2.9", "1.2.12", "1.2.13"]'
18+
print("auditwheel patch: replace policy line \"%s\" with \"%s\"" % (line, updated_line))
1819
manylinux_policy_replacement = line.replace(line, updated_line)
1920
else:
2021
manylinux_policy_replacement = line

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ requires = [
33
"setuptools==59.2.0", "wheel==0.37.0", "cmake>=3.1", "pip",
44
"scikit-build>=0.13.2",
55
"numpy==1.13.3; python_version=='3.6' and platform_machine != 'aarch64' and platform_machine != 'arm64'",
6-
"numpy==1.14.5; python_version=='3.7' and platform_machine != 'aarch64' and platform_machine != 'arm64'",
6+
"numpy==1.17.0; python_version=='3.7' and platform_machine != 'aarch64' and platform_machine != 'arm64'",
77
"numpy==1.17.3; python_version=='3.8' and platform_machine != 'aarch64' and platform_machine != 'arm64'",
88
"numpy==1.19.3; python_version<='3.9' and sys_platform == 'linux' and platform_machine == 'aarch64'",
99
"numpy==1.21.0; python_version<='3.9' and sys_platform == 'darwin' and platform_machine == 'arm64'",

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def main():
2525

2626
install_requires = [
2727
'numpy>=1.13.3; python_version<"3.7"',
28-
'numpy>=1.14.5; python_version>="3.7"',
28+
'numpy>=1.17.0; python_version>="3.7"', # https://github.com/numpy/numpy/pull/13725
2929
'numpy>=1.17.3; python_version>="3.8"',
3030
'numpy>=1.19.3; python_version>="3.9"',
3131
'numpy>=1.21.2; python_version>="3.10"',

travis_config.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function bdist_wheel_cmd {
1616
local abs_wheelhouse=$1
1717
# install all required packages in pyproject.toml, because bdist_wheel does not do it
1818
python${PYTHON_VERSION} -m pip install toml && python${PYTHON_VERSION} -c 'import toml; c = toml.load("pyproject.toml"); print("\n".join(c["build-system"]["requires"]))' | python${PYTHON_VERSION} -m pip install -r /dev/stdin
19-
CI_BUILD=1 python${PYTHON_VERSION} setup.py bdist_wheel --py-limited-api=cp36 -v
19+
CI_BUILD=1 python${PYTHON_VERSION} setup.py bdist_wheel --py-limited-api=cp37 -v
2020
cp dist/*.whl $abs_wheelhouse
2121
if [ -z "$IS_OSX" ]; then
2222
# this path can be changed in the latest manylinux image
@@ -143,7 +143,7 @@ function run_tests {
143143

144144
echo "Running for linux"
145145

146-
if [ $PYTHON == "python3.6" ]; then
146+
if [ $PYTHON == "python3.7" ]; then
147147
$PYTHON -m pip install -U numpy==1.19.4
148148
fi
149149
cd /io/tests
@@ -168,7 +168,7 @@ function pylint_test {
168168

169169
echo "Starting Pylint tests..."
170170

171-
$PYTHON -m pip install pylint==2.12.2
171+
$PYTHON -m pip install pylint==2.15.9
172172
cd /io/tests
173173
$PYTHON -m pylint /io/opencv/samples/python/squares.py
174174
}

0 commit comments

Comments
 (0)