8000 MNT Bump min Python version to 3.10 and dependencies (#30895) · scikit-learn/scikit-learn@a76b029 · GitHub
[go: up one dir, main page]

Skip to content

Commit a76b029

Browse files
authored
MNT Bump min Python version to 3.10 and dependencies (#30895)
1 parent 239112a commit a76b029

20 files changed

+222
-243
lines changed

.github/workflows/wheels.yml

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,6 @@ jobs:
6060
matrix:
6161
include:
6262
# Window 64 bit
63-
- os: windows-latest
64-
python: 39
65-
platform_id: win_amd64
6663
- os: windows-latest
6764
python: 310
6865
platform_id: win_amd64
@@ -81,17 +78,10 @@ jobs:
8178
free_threaded_support: True
8279

8380
# Linux 64 bit manylinux2014
84-
- os: ubuntu-latest
85-
python: 39
86-
platform_id: manylinux_x86_64
87-
manylinux_image: manylinux2014
88-
89-
# NumPy on Python 3.10 only supports 64bit and is only available with manylinux2014
9081
- os: ubuntu-latest
9182
python: 310
9283
platform_id: manylinux_x86_64
9384
manylinux_image: manylinux2014
94-
9585
- os: ubuntu-latest
9686
python: 311
9787
platform_id: manylinux_x86_64
@@ -111,10 +101,6 @@ jobs:
111101
free_threaded_support: True
112102

113103
# # Linux 64 bit manylinux2014
114-
- os: ubuntu-24.04-arm
115-
python: 39
116-
platform_id: manylinux_aarch64
117-
manylinux_image: manylinux2014
118104
- os: ubuntu-24.04-arm
119105
python: 310
120106
platform_id: manylinux_aarch64
@@ -133,9 +119,6 @@ jobs:
133119
manylinux_image: manylinux2014
134120

135121
# MacOS x86_64
136-
- os: macos-13
137-
python: 39
138-
platform_id: macosx_x86_64
139122
- os: macos-13
140123
python: 310
141124
platform_id: macosx_x86_64
@@ -154,9 +137,6 @@ jobs:
154137
free_threaded_support: True
155138

156139
# MacOS arm64
157-
- os: macos-14
158-
python: 39
159-
platform_id: macosx_arm64
160140
- os: macos-14
161141
python: 310
162142
platform_id: macosx_arm64
@@ -244,7 +224,7 @@ jobs:
244224
- name: Setup Python
245225
uses: actions/setup-python@v5
246226
with:
247-
python-version: "3.9" # update once build dependencies are available
227+
python-version: "3.12"
248228

249229
- name: Build source distribution
250230
run: bash build_tools/github/build_source.sh

README.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@
2929
.. |Benchmark| image:: https://img.shields.io/badge/Benchmarked%20by-asv-blue
3030
:target: https://scikit-learn.org/scikit-learn-benchmarks
3131

32-
.. |PythonMinVersion| replace:: 3.9
33-
.. |NumPyMinVersion| replace:: 1.19.5
34-
.. |SciPyMinVersion| replace:: 1.6.0
32+
.. |PythonMinVersion| replace:: 3.10
33+
.. |NumPyMinVersion| replace:: 1.22.0
34+
.. |SciPyMinVersion| replace:: 1.8.0
3535
.. |JoblibMinVersion| replace:: 1.2.0
3636
.. |ThreadpoolctlMinVersion| replace:: 3.1.0
37-
.. |MatplotlibMinVersion| replace:: 3.3.4
38-
.. |Scikit-ImageMinVersion| replace:: 0.17.2
39-
.. |PandasMinVersion| replace:: 1.2.0
37+
.. |MatplotlibMinVersion| replace:: 3.5.0
38+
.. |Scikit-ImageMinVersion| replace:: 0.19.0
39+
.. |PandasMinVersion| replace:: 1.4.0
4040
.. |SeabornMinVersion| replace:: 0.9.0
4141
.. |PytestMinVersion| replace:: 7.1.2
4242
.. |PlotlyMinVersion| replace:: 5.14.0

azure-pipelines.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
steps:
3232
- task: UsePythonVersion@0
3333
inputs:
34-
versionSpec: '3.9'
34+
versionSpec: '3.12'
3535
- bash: |
3636
source build_tools/shared.sh
3737
# Include pytest compatibility with mypy
@@ -173,7 +173,7 @@ jobs:
173173
- template: build_tools/azure/posix.yml
174174
parameters:
175175
name: Ubuntu_Atlas
176-
vmImage: ubuntu-22.04
176+
vmImage: ubuntu-24.04
177177
dependsOn: [linting, git_commit, Ubuntu_Jammy_Jellyfish]
178178
# Runs when dependencies succeeded or skipped
179179
condition: |
@@ -183,8 +183,8 @@ jobs:
183183
)
184184
matrix:
185185
# Linux environment to test that scikit-learn can be built against
186-
# versions of numpy, scipy with ATLAS that comes with Ubuntu Jammy Jellyfish 22.04
187-
# i.e. numpy 1.21.5 and scipy 1.8.0
186+
# versions of numpy, scipy with ATLAS that comes with Ubuntu 24.04 Noble Numbat
187+
# i.e. numpy 1.26.4 and scipy 1.11.4
188188
ubuntu_atlas:
189189
DISTRIB: 'ubuntu'
190190
LOCK_FILE: './build_tools/azure/ubuntu_atlas_lock.txt'
@@ -203,7 +203,7 @@ jobs:
203203
not(contains(dependencies['git_commit']['outputs']['commit.message'], '[ci skip]'))
204204
)
205205
matrix:
206-
# Linux + Python 3.9 build with minimum supported version of dependencies
206+
# Linux build with minimum supported version of dependencies
207207
pymin_conda_forge_openblas_min_dependencies:
208208
DISTRIB: 'conda'
209209
LOCK_FILE: './build_tools/azure/pymin_conda_forge_openblas_min_dependencies_linux-64_conda.lock'

build_tools/azure/pymin_conda_forge_mkl_environment.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
channels:
55
- conda-forge
66
dependencies:
7-
- python=3.9
7+
- python=3.10
88
- numpy
99
- blas[build=mkl]
1010
- scipy

build_tools/azure/pymin_conda_forge_mkl_win-64_conda.lock

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Generated by conda-lock.
22
# platform: win-64
3-
# input_hash: 87a29e7d9b188909e497647025ecbe46efa3f52882a6e2b4668d96e6dcb556bc
3+
# input_hash: b3869076628274fd49d96cadc2692c963f26cbed79ec7498ecbfd50011a55e67
44
@EXPLICIT
55
https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2025.1.31-h56e8100_0.conda#5304a31607974dfc2110dfbb662ed092
66
https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2#0c96522c6bdaed4b1566d11387caaf45
@@ -9,7 +9,7 @@ https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77
99
https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda#49023d73832ef61042f6a237cb2687e7
1010
https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda#2d89243bfb53652c182a7c73182cce4f
1111
https://conda.anaconda.org/conda-forge/win-64/mkl-include-2024.2.2-h66d3029_15.conda#e2f516189b44b6e042199d13e7015361
12-
https://conda.anaconda.org/conda-forge/win-64/python_abi-3.9-5_cp39.conda#86ba1bbcf9b259d1592201f3c345c810
12+
https://conda.anaconda.org/conda-forge/win-64/python_abi-3.10-5_cp310.conda#3c510f4c4383f5fbdb12fdd971b30d49
1313
https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda#dbcace4706afdfb7eb891f7b37d07c04
1414
https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda#6797b005cd0f439c4c5c9ac565783700
1515
https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2#f766549260d6815b0c52253f1fb1bb29
@@ -48,18 +48,17 @@ https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda#2c
4848
https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.47-had7236b_0.conda#7d717163d9dab337c65f2bf21a676b8f
4949
https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.6-he286e8c_0.conda#c66d5bece33033a9c028bbdf1e627ec5
5050
https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda#a3a3baddcfb8c80db84bec3cb7746fb8
51-
https://conda.anaconda.org/conda-forge/win-64/python-3.9.21-h37870fc_1_cpython.conda#436316266ec1b6c23065b398e43d3a44
51+
https://conda.anaconda.org/conda-forge/win-64/python-3.10.16-h37870fc_1_cpython.conda#5c292a7bd9c32a256ba7939b3e6dee03
5252
https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-hbeecb71_1.conda#bf190adcc22f146d8ec66da215c9d78b
5353
https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-h2466b09_2.conda#d22534a9be5771fc58eb7564947f669d
54-
https://conda.anaconda.org/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda#c207fa5ac7ea99b149344385a9c0880d
5554
https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda#962b9857ee8e7018c22f2776ffa0b2d7
5655
https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_1.conda#44600c4667a319d67dbe0681fc0bc833
57-
https://conda.anaconda.org/conda-forge/win-64/cython-3.0.12-py39h99035ae_0.conda#80e5c7867a45d9c59b4beae47884eae1
56+
https://conda.anaconda.org/conda-forge/win-64/cython-3.0.12-py310h6bd2d47_0.conda#8b4e32766e91dfad20bdfd9747e66d54
5857
https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda#a16662747cdeb9abbac74d0057cc976e
5958
https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda#a71efeae2c160f6789900ba2631a2c90
6059
https://conda.anaconda.org/conda-forge/win-64/freetype-2.13.3-h0b5ce68_0.conda#9c461ed7b07fb360d2c8cfe726c7d521
6160
https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda#6837f3eff7dcea42ecd714ce1ac2b108
62-
https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.7-py39h2b77a98_0.conda#c116c25e2e36f770f065559ad2a1da73
61+
https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.7-py310hc19bc0b_0.conda#50d96539497fc7493cbe469fbb6b8b6e
6362
https://conda.anaconda.org/conda-forge/win-64/libclang13-19.1.7-default_ha5278ca_1.conda#9b1f1d408bea019772a06be7719a58c0
6463
https://conda.anaconda.org/conda-forge/win-64/libglib-2.82.2-h7025463_1.conda#40596e78a77327f271acea904efdc911
6564
https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.2-default_ha69328c_1001.conda#b87a0ac5ab6495d8225db5dc72dd21cd
@@ -75,16 +74,14 @@ https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda#a451
7574
https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.6.0-pyhecae5ae_0.conda#9d64911b31d57ca443e9f1e36b04385f
7675
https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda#b0dd904de08b7db706167240bf37b164
7776
https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda#ac944244f1fed2eb49bae07193ae8215
78-
https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.2-py39ha55e580_0.conda#96e4fc4c6aaaa23d99bf1ed008e7b1e1
79-
https://conda.anaconda.org/conda-forge/win-64/unicodedata2-16.0.0-py39ha55e580_0.conda#f4008ff992172eebb8fa6b19fe075e92
77+
https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.2-py310ha8f682b_0.conda#e6819d3a0cae0f1b1838875f858421d1
78+
https://conda.anaconda.org/conda-forge/win-64/unicodedata2-16.0.0-py310ha8f682b_0.conda#b28aead44c6e19a1fbba7752aa242b34
8079
https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda#75cb7132eb58d97896e173ef12ac9986
8180
https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.12-h0e40799_0.conda#2ffbfae4548098297c033228256eb96e
8281
https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda#8393c0f7e7870b4eb45553326f81f0ff
83-
https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda#0c3cc595284c5e8f0f9900a9b228a332
8482
https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-h2466b09_2.conda#378f1c9421775dfe644731cb121c8979
85-
https://conda.anaconda.org/conda-forge/win-64/coverage-7.7.0-py39hf73967f_0.conda#7de6593a75c8ef78bdf68bc0e05ff051
83+
https://conda.anaconda.org/conda-forge/win-64/coverage-7.7.0-py310h38315fa_0.conda#2e2a90e1f695d76f4f64e821b770606e
8684
https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda#9bb0026a2131b09404c59c4290c697cd
87-
https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda#c85c76dc67d75619a92f51dfbce06992
8885
https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_1.conda#bf8243ee348f3a10a14ed0cae323e0c1
8986
https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda#3538827f77b82a837fa681a4579e37a1
9087
https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda#a69bbf778a462da324489976c84cfc8c
@@ -96,11 +93,10 @@ https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.5-pyhd8ed1ab_0.conda#c3
9693
https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda#5ba79d7c71f03c678c8ead841f347d6e
9794
https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h62715c5_1.conda#9190dd0a23d925f7602f9628b3aed511
9895
https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h5782bbf_0.conda#20e32ced54300292aff690a69c5e7b97
99-
https://conda.anaconda.org/conda-forge/win-64/fonttools-4.56.0-py39hf73967f_0.conda#a46ce06755e392a444bd2a11fbb8b36b
100-
https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.5.2-pyhd8ed1ab_0.conda#e376ea42e9ae40f3278b0f79c9bf9826
96+
https://conda.anaconda.org/conda-forge/win-64/fonttools-4.56.0-py310h38315fa_0.conda#fd7c0f52022a6bbd9bc7f71c11faf59c
10197
https://conda.anaconda.org/conda-forge/noarch/meson-python-0.17.1-pyh70fd9c4_1.conda#7a02679229c6c2092571b4c025055440
10298
https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_15.conda#302dff2807f2927b3e9e0d19d60121de
103-
https://conda.anaconda.org/conda-forge/win-64/pillow-11.1.0-py39h73ef694_0.conda#281e124453ea6dc02e9638a4d6c0a8b6
99+
https://conda.anaconda.org/conda-forge/win-64/pillow-11.1.0-py310h9595edc_0.conda#67a38507ac20bd85226fe6dd7ed87462
104100
https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_1.conda#79963c319d1be62c8fd3e34555816e01
105101
https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_1.conda#59aad4fb37cabc0bacc73cf344612ddd
106102
https://conda.anaconda.org/conda-forge/win-64/harfbuzz-10.4.0-h9e37d49_0.conda#63185f1b04a3f5ebd728cf1bec2dbedc
@@ -110,11 +106,11 @@ https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-31_h5e41251_mkl.con
110106
https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-31_h1aa476e_mkl.conda#40b47ee720a185289760960fc6185750
111107
https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.8.2-h1259614_0.conda#d4efb20c96c35ad07dc9be1069f1c5f4
112108
https://conda.anaconda.org/conda-forge/win-64/liblapacke-3.9.0-31_h845c4fa_mkl.conda#003a2041cb07a7cf698f48dd26301273
113-
https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.2-py39h60232e0_1.conda#d8801e13476c0ae89e410307fbc5a612
114-
https://conda.anaconda.org/conda-forge/win-64/pyside6-6.8.2-py39h0285922_1.conda#bab5404f1f948a7c1338734fe7951a2a
109+
https://conda.anaconda.org/conda-forge/win-64/numpy-2.2.4-py310h4987827_0.conda#f345b8969677cf68503d28ce0c28e756
110+
https://conda.anaconda.org/conda-forge/win-64/pyside6-6.8.2-py310h60c6385_1.conda#2401abaa374670bfe50cd18e605c346a
115111
https://conda.anaconda.org/conda-forge/win-64/blas-devel-3.9.0-31_hfb1a452_mkl.conda#0deeb3d9d6f0e56393c55ef382899010
116-
https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.0-py39h2b77a98_2.conda#37f8619ee96710220ead6bb386b9b24b
117-
https://conda.anaconda.org/conda-forge/win-64/scipy-1.13.1-py39h1a10956_0.conda#9f8e571406af04d2f5fdcbecec704505
112+
https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.1-py310hc19bc0b_0.conda#741bcc6a07e77d3102aa23c580cad4f0
113+
https://conda.anaconda.org/conda-forge/win-64/scipy-1.15.2-py310h15c175c_0.conda#81798168111d1021e3d815217c444418
118114
https://conda.anaconda.org/conda-forge/win-64/blas-2.131-mkl.conda#1842bfaa4e349875c47bde1d9871bda6
119-
https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.9.4-py39h5376392_0.conda#5424884b703d67e412584ed241f0a9b1
120-
https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.9.4-py39hcbf5309_0.conda#61326dfe02e88b609166814c47316063
115+
https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.1-py310h37e0a56_0.conda#1b78c5c0741473537e39e425ff30ea80
116+
https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.10.1-py310h5588dad_0.conda#246bfc9ca36dccad2d78a020ab8d2aab

build_tools/azure/pymin_conda_forge_openblas_min_dependencies_environment.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
channels:
55
- conda-forge
66
dependencies:
7-
- python=3.9
8-
- numpy=1.19.5 # min
7+
- python=3.10
8+
- numpy=1.22.0 # min
99
- blas[build=openblas]
10-
- scipy=1.6.0 # min
10+
- scipy=1.8.0 # min
1111
- cython=3.0.10 # min
1212
- joblib=1.2.0 # min
1313
- threadpoolctl=3.1.0 # min
14-
- matplotlib=3.3.4 # min
15-
- pandas=1.2.0 # min
14+
- matplotlib=3.5.0 # min
15+
- pandas=1.4.0 # min
1616
- pyamg
1717
- pytest
1818
- pytest-xdist

0 commit comments

Comments
 (0)
0