Skip to content

Commit 2452ff4

Browse files
committed
MAINT: Drop Python 3.9
Drop Python 3.9 from the supported Python versions and CI. Python 3.9 is still used in the Cygwin build test because Cygwin does not yet support 3.10.
1 parent e59c074 commit 2452ff4

11 files changed

+33
-39
lines changed

.github/workflows/linux.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
fetch-depth: 0
4040
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
4141
with:
42-
python-version: '3.9'
42+
python-version: '3.10'
4343
- name: Install linter requirements
4444
run:
4545
python -m pip install -r requirements/linter_requirements.txt
@@ -60,7 +60,7 @@ jobs:
6060
fetch-tags: true
6161
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
6262
with:
63-
python-version: '3.9'
63+
python-version: '3.10'
6464
- uses: ./.github/meson_actions
6565

6666
pypy:
@@ -74,7 +74,7 @@ jobs:
7474
fetch-tags: true
7575
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
7676
with:
77-
python-version: 'pypy3.9-v7.3.12'
77+
python-version: 'pypy3.10-v7.3.15'
7878
- name: Setup using scipy-openblas
7979
run: |
8080
python -m pip install -r requirements/ci_requirements.txt
@@ -121,7 +121,7 @@ jobs:
121121
fetch-tags: true
122122
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
123123
with:
124-
python-version: '3.9'
124+
python-version: '3.10'
125125
- name: Install build and test dependencies from PyPI
126126
run: |
127127
pip install -r requirements/build_requirements.txt
@@ -158,7 +158,7 @@ jobs:
158158
fetch-tags: true
159159
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
160160
with:
161-
python-version: '3.9'
161+
python-version: '3.10'
162162
- name: Install build and benchmarking dependencies
163163
run: |
164164
sudo apt-get update

.github/workflows/linux_simd.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
fetch-tags: true
6565
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
6666
with:
67-
python-version: '3.9'
67+
python-version: '3.10'
6868
- uses: ./.github/meson_actions
6969
name: Build/Test
7070

@@ -81,7 +81,7 @@ jobs:
8181
fetch-tags: true
8282
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
8383
with:
84-
python-version: '3.9'
84+
python-version: '3.10'
8585

8686
- name: Install GCC/8/9
8787
run: |
@@ -117,7 +117,7 @@ jobs:
117117
- [
118118
"without optimizations",
119119
"-Dallow-noblas=true -Ddisable-optimization=true",
120-
"3.12-dev"
120+
"3.12"
121121
]
122122
- [
123123
"native",
@@ -132,7 +132,7 @@ jobs:
132132
- [
133133
"without avx512/avx2/fma3",
134134
"-Dallow-noblas=true -Dcpu-dispatch=SSSE3,SSE41,POPCNT,SSE42,AVX,F16C",
135-
"3.9"
135+
"3.10"
136136
]
137137

138138
env:

.github/workflows/mypy.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
os_python:
4949
- [ubuntu-latest, '3.12']
5050
- [windows-2019, '3.11']
51-
- [macos-12, '3.9']
51+
- [macos-12, '3.10']
5252
steps:
5353
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
5454
with:

.github/workflows/wheels.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,15 @@ jobs:
8585
- [macos-14, macosx_arm64, accelerate] # always use accelerate
8686
- [windows-2019, win_amd64, ""]
8787
- [windows-2019, win32, ""]
88-
python: ["cp39", "cp310", "cp311", "cp312", "pp39"]
88+
python: ["cp310", "cp311", "cp312", "pp310"]
8989
exclude:
9090
# Don't build PyPy 32-bit windows
9191
- buildplat: [windows-2019, win32, ""]
92-
python: "pp39"
92+
python: "pp310"
9393
- buildplat: [ ubuntu-20.04, musllinux_x86_64, "" ]
94-
python: "pp39"
94+
python: "pp310"
9595
- buildplat: [ macos-14, macosx_arm64, accelerate ]
96-
python: "pp39"
96+
python: "pp310"
9797
env:
9898
IS_32_BIT: ${{ matrix.buildplat[1] == 'win32' }}
9999
IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }}
@@ -216,7 +216,7 @@ jobs:
216216
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
217217
with:
218218
# Build sdist on lowest supported Python
219-
python-version: "3.9"
219+
python-version: "3.10"
220220
- name: Build sdist
221221
run: |
222222
python -m pip install -U pip build

INSTALL.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ Prerequisites
1414

1515
Building NumPy requires the following installed software:
1616

17-
1) Python__ 3.9.x or newer.
17+
1) Python__ 3.10.x or newer.
1818

1919
Please note that the Python development headers also need to be installed,
2020
e.g., on Debian/Ubuntu one needs to install both `python3` and
2121
`python3-dev`. On Windows and macOS this is normally not an issue.
2222

23-
2) Cython >= 3.0
23+
2) Cython >= 3.0.6
2424

2525
3) pytest__ (optional)
2626

azure-pipelines.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ stages:
4444
steps:
4545
- task: UsePythonVersion@0
4646
inputs:
47-
versionSpec: '3.9'
47+
versionSpec: '3.10'
4848
addToPath: true
4949
architecture: 'x64'
5050
- script: >-
@@ -57,7 +57,7 @@ stages:
5757
displayName: 'Run Lint Checks'
5858
failOnStderr: true
5959
60-
- job: Linux_Python_39_32bit_full_with_asserts
60+
- job: Linux_Python_310_32bit_full_with_asserts
6161
pool:
6262
vmImage: 'ubuntu-20.04'
6363
steps:
@@ -89,8 +89,8 @@ stages:
8989
TEST_MODE: full
9090
BITS: 64
9191
_USE_BLAS_ILP64: '1'
92-
PyPy39-64bit-fast:
93-
PYTHON_VERSION: 'pypy3.9'
92+
PyPy310-64bit-fast:
93+
PYTHON_VERSION: 'pypy3.10'
9494
PYTHON_ARCH: 'x64'
9595
TEST_MODE: fast
9696
BITS: 64

building_with_meson.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
# Building with Meson
22

33
_Note: this is for early adopters. It has been tested on Linux and macOS, and
4-
with Python 3.9-3.12. Windows will be tested soon. There is one CI job to keep
5-
the build stable. This may have rough edges, please open an issue if you run
6-
into a problem._
4+
with Python 3.10-3.12. There is one CI job to keep the build stable. This may
5+
have rough edges, please open an issue if you run into a problem._
76

87
### Developer build
98

pyproject.toml

+1-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ authors = [{name = "Travis E. Oliphant et al."}]
1616
maintainers = [
1717
{name = "NumPy Developers", email="[email protected]"},
1818
]
19-
requires-python = ">=3.9"
19+
requires-python = ">=3.10"
2020
readme = "README.md"
2121
classifiers = [
2222
'Development Status :: 5 - Production/Stable',
@@ -26,7 +26,6 @@ classifiers = [
2626
'Programming Language :: C',
2727
'Programming Language :: Python',
2828
'Programming Language :: Python :: 3',
29-
'Programming Language :: Python :: 3.9',
3029
'Programming Language :: Python :: 3.10',
3130
'Programming Language :: Python :: 3.11',
3231
'Programming Language :: Python :: 3.12',

tools/ci/cirrus_arm.yml

+6-5
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ freebsd_test_task:
7474

7575
install_devtools_script: |
7676
pkg install -y git bash ninja ccache blas cblas lapack pkgconf
77+
pkg install -y python311
7778
7879
<<: *MODIFIED_CLONE
7980

@@ -86,22 +87,22 @@ freebsd_test_task:
8687
prepare_env_script: |
8788
# Create a venv (the `source` command needs bash, not the default sh shell)
8889
chsh -s /usr/local/bin/bash
89-
python -m venv .venv
90+
python3.11 -m venv .venv
9091
source .venv/bin/activate
9192
# Minimal build and test requirements
92-
python -m pip install -U pip
93-
python -m pip install meson-python Cython pytest hypothesis
93+
python3.11 -m pip install -U pip
94+
python3.11 -m pip install meson-python Cython pytest hypothesis
9495
9596
build_script: |
9697
chsh -s /usr/local/bin/bash
9798
source .venv/bin/activate
98-
python -m pip install . --no-build-isolation -v -Csetup-args="-Dallow-noblas=false"
99+
python3.11 -m pip install . --no-build-isolation -v -Csetup-args="-Dallow-noblas=false"
99100
100101
test_script: |
101102
chsh -s /usr/local/bin/bash
102103
source .venv/bin/activate
103104
cd tools
104-
python -m pytest --pyargs numpy -m "not slow"
105+
python3.11 -m pytest --pyargs numpy -m "not slow"
105106
ccache -s
106107
107108
on_failure:

tools/ci/cirrus_wheels.yml

+2-7
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,6 @@ linux_aarch64_task:
2323
# build in a matrix because building and testing all four wheels in a
2424
# single task takes longer than 60 mins (the default time limit for a
2525
# cirrus-ci task).
26-
- env:
27-
CIRRUS_CLONE_SUBMODULES: true
28-
CIBW_BUILD: cp39-*
29-
EXPECT_CPU_FEATURES: NEON NEON_FP16 NEON_VFPV4 ASIMD ASIMDHP ASIMDDP ASIMDFHM
3026
- env:
3127
CIRRUS_CLONE_SUBMODULES: true
3228
CIBW_BUILD: cp310-*
@@ -35,7 +31,6 @@ linux_aarch64_task:
3531
CIBW_BUILD: cp311-*
3632
- env:
3733
CIRRUS_CLONE_SUBMODULES: true
38-
CIBW_PRERELEASE_PYTHONS: True
3934
CIBW_BUILD: cp312-*
4035

4136
initial_setup_script: |
@@ -64,10 +59,10 @@ macosx_arm64_task:
6459
matrix:
6560
- env:
6661
CIRRUS_CLONE_SUBMODULES: true
67-
CIBW_BUILD: cp39-* cp310-*
62+
CIBW_BUILD: cp310-* cp311
6863
- env:
6964
CIRRUS_CLONE_SUBMODULES: true
70-
CIBW_BUILD: cp311-* cp312-*
65+
CIBW_BUILD: cp312-*
7166
env:
7267
PATH: /usr/local/lib:/usr/local/include:$PATH
7368
CIBW_ARCHS: arm64

tools/ci/run_32_bit_linux_docker.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ set -xe
22

33
git config --global --add safe.directory /numpy
44
cd /numpy
5-
/opt/python/cp39-cp39/bin/python -mvenv venv
5+
/opt/python/cp310-cp310/bin/python -mvenv venv
66
source venv/bin/activate
77
pip install -r requirements/ci32_requirements.txt
88
python3 -m pip install -r requirements/test_requirements.txt

0 commit comments

Comments
 (0)