@@ -19,9 +19,9 @@ concurrency:
1919 cancel-in-progress : true
2020
2121jobs :
22- # Build the wheels for Linux, Windows and macOS for Python 3.9 and newer
22+ # Build the wheels for Linux, Windows and macOS for Python 3.11 and newer
2323 build_wheels :
24- name : Build wheel for cp${{ matrix.python }}-${{ matrix.platform_id }}-${{ matrix.manylinux_image }}
24+ name : Build cmf- wheel for cp${{ matrix.python }}-${{ matrix.platform_id }}-${{ matrix.manylinux_image }}
2525 runs-on : ${{ matrix.os }}
2626
2727 strategy :
@@ -33,30 +33,24 @@ jobs:
3333 # Note: windows-2019 is needed for older Python versions:
3434 # https://github.com/scikit-learn/scikit-learn/issues/22530
3535 - os : windows-latest
36- python : 39
36+ python : 311
3737 platform_id : win_amd64
3838 - os : windows-latest
39- python : 310
39+ python : 312
4040 platform_id : win_amd64
4141 - os : windows-latest
42- python : 311
42+ python : 313
4343 platform_id : win_amd64
4444 - os : windows-latest
45- python : 312
45+ python : 313t
4646 platform_id : win_amd64
47+ free_threaded_support : True
4748
4849 # Linux 64 bit manylinux2014
49- - os : ubuntu-latest
50- python : 39
51- platform_id : manylinux_x86_64
52- manylinux_image : manylinux2014
53-
54- # NumPy on Python 3.10 only supports 64bit and is only available with manylinux2014
5550 - os : ubuntu-latest
5651 python : 310
5752 platform_id : manylinux_x86_64
5853 manylinux_image : manylinux2014
59-
6054 - os : ubuntu-latest
6155 python : 311
6256 platform_id : manylinux_x86_64
@@ -65,53 +59,70 @@ jobs:
6559 python : 312
6660 platform_id : manylinux_x86_64
6761 manylinux_image : manylinux2014
62+ - os : ubuntu-latest
63+ python : 313
64+ platform_id : manylinux_x86_64
65+ manylinux_image : manylinux2014
66+ - os : ubuntu-latest
67+ python : 313t
68+ platform_id : manylinux_x86_64
69+ manylinux_image : manylinux2014
70+ free_threaded_support : True
71+
6872
6973 # MacOS x86_64
70- - os : macos-latest
71- python : 39
72- platform_id : macosx_x86_64
73- - os : macos-latest
74+ - os : macos-13
7475 python : 310
7576 platform_id : macosx_x86_64
76- - os : macos-latest
77+ - os : macos-13
7778 python : 311
7879 platform_id : macosx_x86_64
79- - os : macos-latest
80+ - os : macos-13
8081 python : 312
8182 platform_id : macosx_x86_64
83+ - os : macos-13
84+ python : 313
85+ platform_id : macosx_x86_64
86+ - os : macos-13
87+ python : 313t
88+ platform_id : macosx_x86_64
89+ free_threaded_support : True
8290
8391 # MacOS arm64
84- # The wheel for the latest Python version is built and tested on
85- # Cirrus CI but due to limited build time for free accounts on Cirrus
86- # CI, we build the macOS arm64 wheels for the other Python versions on
87- # Github Actions via cross-compilation (without running the tests).
88- - os : macos-latest
89- python : 39
92+ - os : macos-14
93+ python : 311
9094 platform_id : macosx_arm64
91- - os : macos-latest
92- python : 310
95+ - os : macos-14
96+ python : 312
9397 platform_id : macosx_arm64
94- - os : macos-latest
95- python : 311
98+ - os : macos-14
99+ python : 313
100+ platform_id : macosx_arm64
101+ - os : macos-14
102+ python : 313t
96103 platform_id : macosx_arm64
104+ free_threaded_support : True
97105
98106 steps :
99107 - name : Checkout cmf
100- uses : actions/checkout@v3
108+ uses : actions/checkout@v4
101109
102110 - name : Setup Python
103- uses : actions/setup-python@v4
111+ uses : actions/setup-python@v5
104112 with :
105- python-version : ' 3.9' # update once build dependencies are available
106-
113+ python-version : ' 3.11' # update once build dependencies are available
114+ - name : Use VCvarsall.bat
115+ uses : ilammy/msvc-dev-cmd@v1
107116 - name : Install cibuildwheel
108- run : python -m pip install cibuildwheel
117+ run : python -m pip install cibuildwheel setuptools numpy
109118
110119 - name : Build wheels
111120 env :
112121 CIBW_PRERELEASE_PYTHONS : ${{ matrix.prerelease }}
122+ CIBW_FREE_THREADED_SUPPORT : ${{ matrix.free_threaded_support }}
113123 CIBW_BUILD : cp${{ matrix.python }}-${{ matrix.platform_id }}
114124 CIBW_ARCHS : all
125+ CIBW_BEFORE_ALL : python -m pip install numpy cmake setuptools
115126 CIBW_BEFORE_BUILD : python -m pip install numpy cmake setuptools
116127 CIBW_MANYLINUX_X86_64_IMAGE : ${{ matrix.manylinux_image }}
117128 CIBW_MANYLINUX_I686_IMAGE : ${{ matrix.manylinux_image }}
@@ -120,8 +131,9 @@ jobs:
120131 run : python -m cibuildwheel --output-dir wheelhouse
121132
122133 - name : Store artifacts
123- uses : actions/upload-artifact@v3
134+ uses : actions/upload-artifact@v4
124135 with :
136+ name : cibw-wheels-cp${{ matrix.python }}-${{ matrix.platform_id }}
125137 path : wheelhouse/*.whl
126138
127139 # Build the source distribution under Linux
@@ -130,21 +142,20 @@ jobs:
130142 runs-on : ubuntu-latest
131143 steps :
132144 - name : Checkout cmf
133- uses : actions/checkout@v3
145+ uses : actions/checkout@v4
134146
135147 - name : Setup Python
136- uses : actions/setup-python@v4
148+ uses : actions/setup-python@v5
137149 with :
138- python-version : ' 3.9' # update once build dependencies are available
139-
150+ python-version : ' 3.11' # update once build dependencies are available
151+ - name : Setup dependencies
152+ run : python -m pip install setuptools numpy
140153 - name : Build source distribution
141154 run : python setup.py sdist
142155
143- - name : Test source distribution
144- run : bash build_tools/github/test_source.sh
145-
146156 - name : Store artifacts
147- uses : actions/upload-artifact@v3
157+ uses : actions/upload-artifact@v4
148158 with :
159+ name : cmf-sdist
149160 path : dist/*.tar.gz
150161
0 commit comments