Skip to content

Commit 5e7d739

Browse files
authored
Add support for python-3.13 in wheel builds. Also: (#228)
- Drop support for python-3.9, which is past end-of-life. Remove pinned dependency on astropy, which was needed for python-3.9 and numpy-1 compatibility. - Update macos wheel builds to use macos-15 on github CI runners. - Bump cibuildwheel version to 3.3.0.
1 parent e2f9b15 commit 5e7d739

2 files changed

Lines changed: 34 additions & 48 deletions

File tree

.github/workflows/wheels.yml

Lines changed: 32 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@ jobs:
2121
matrix:
2222
include:
2323
# Linux 64 bit manylinux
24-
- os: ubuntu-latest
25-
arch: x86_64
26-
python: 39
27-
builder: manylinux
2824
- os: ubuntu-latest
2925
arch: x86_64
3026
python: 310
@@ -37,61 +33,54 @@ jobs:
3733
arch: x86_64
3834
python: 312
3935
builder: manylinux
40-
# - os: ubuntu-latest
41-
# arch: x86_64
42-
# python: 313
43-
# builder: manylinux
44-
45-
# MacOS x86_64. The macos-13 runner is the last
46-
# Intel-based runner version. At some point we'll
47-
# need to switch to macos-14 and test cross compiling.
48-
- os: macos-13
36+
- os: ubuntu-latest
4937
arch: x86_64
50-
python: 39
51-
builder: macosx
52-
deploy: 13.0
53-
- os: macos-13
38+
python: 313
39+
builder: manylinux
40+
41+
# MacOS x86_64.
42+
- os: macos-15-intel
5443
arch: x86_64
5544
python: 310
5645
builder: macosx
57-
deploy: 13.0
58-
- os: macos-13
46+
deploy: 15.0
47+
- os: macos-15-intel
5948
arch: x86_64
6049
python: 311
6150
builder: macosx
62-
deploy: 13.0
63-
- os: macos-13
51+
deploy: 15.0
52+
- os: macos-15-intel
6453
arch: x86_64
6554
python: 312
6655
builder: macosx
67-
deploy: 13.0
68-
# - os: macos-13
69-
# arch: x86_64
70-
# python: 313
71-
# builder: macosx
72-
# deploy: 13.0
56+
deploy: 15.0
57+
- os: macos-15-intel
58+
arch: x86_64
59+
python: 313
60+
builder: macosx
61+
deploy: 15.0
7362

7463
# MacOS arm64
75-
- os: macos-14
64+
- os: macos-15
7665
arch: arm64
7766
python: 310
7867
builder: macosx
79-
deploy: 14.0
80-
- os: macos-14
68+
deploy: 15.0
69+
- os: macos-15
8170
arch: arm64
8271
python: 311
8372
builder: macosx
84-
deploy: 14.0
85-
- os: macos-14
73+
deploy: 15.0
74+
- os: macos-15
8675
arch: arm64
8776
python: 312
8877
builder: macosx
89-
deploy: 14.0
90-
# - os: macos-latest
91-
# arch: arm64
92-
# python: 313
93-
# builder: macosx
94-
# deploy: 14.0
78+
deploy: 15.0
79+
- os: macos-15
80+
arch: arm64
81+
python: 313
82+
builder: macosx
83+
deploy: 15.0
9584
env:
9685
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.builder }}_${{ matrix.arch }}
9786
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.builder }}_2_28
@@ -121,9 +110,11 @@ jobs:
121110
./wheels/install_deps_osx.sh
122111
CIBW_REPAIR_WHEEL_COMMAND_LINUX: ./wheels/repair_wheel_linux.sh {dest_dir} {wheel}
123112
CIBW_REPAIR_WHEEL_COMMAND_MACOS: ./wheels/repair_wheel_macos.sh {dest_dir} {wheel} {delocate_archs}
124-
CIBW_BEFORE_TEST: >
125-
python -m pip install -r test-requirements.txt &&
113+
CIBW_BEFORE_TEST_LINUX: >
114+
python -m pip install pytest pixell &&
126115
export OMP_NUM_THREADS=2
116+
CIBW_BEFORE_TEST_MACOS: >
117+
python -m pip install pytest
127118
CIBW_TEST_COMMAND: >
128119
python -c 'import so3g.smurf.reader; from spt3g import core' &&
129120
python -m pytest {package}/test
@@ -138,7 +129,7 @@ jobs:
138129

139130
- name: Install cibuildwheel
140131
run: |
141-
python -m pip install cibuildwheel==2.23.3
132+
python -m pip install cibuildwheel==3.3.0
142133
143134
- name: Build wheel
144135
run: |

pyproject.toml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@ requires = [
55
"wheel",
66
"numpy",
77
"scipy",
8-
# Astropy depends on numpy 1.x with python-3.9. Place
9-
# a build-time dependency here so that we build with a
10-
# compatible version of numpy. Remove this after dropping
11-
# python-3.9 support.
12-
"astropy",
138
]
149
build-backend = "setuptools.build_meta"
1510

@@ -19,7 +14,7 @@ readme = "README.rst"
1914
description = "Tools for Simons Observatory work with spt3g_software"
2015
urls = {source = "https://github.com/simonsobs/so3g"}
2116
license = {file = "LICENSE"}
22-
requires-python = ">=3.9"
17+
requires-python = ">=3.10"
2318
dependencies = [
2419
"numpy",
2520
"scipy",
@@ -39,10 +34,10 @@ classifiers = [
3934
"Intended Audience :: Science/Research",
4035
"License :: OSI Approved :: BSD License",
4136
"Topic :: Scientific/Engineering :: Astronomy",
42-
"Programming Language :: Python :: 3.9",
4337
"Programming Language :: Python :: 3.10",
4438
"Programming Language :: Python :: 3.11",
4539
"Programming Language :: Python :: 3.12",
40+
"Programming Language :: Python :: 3.13",
4641
]
4742

4843
[tool.pytest.ini_options]

0 commit comments

Comments
 (0)