@@ -16,70 +16,27 @@ jobs:
1616 lint :
1717 runs-on : ubuntu-latest
1818 steps :
19- - uses : actions/checkout@v3
20-
21- - name : Set up Python
22- uses : actions/setup-python@v4
19+ - uses : actions/checkout@v6
20+ - uses : actions/setup-python@v6
2321 with :
24- python-version : 3.9
25-
26- - name : Install dependencies
27- run : |
28- python -m pip install --upgrade pip
29- pip install -r requirements-dev.txt
30- - name : Lint with flake8
31- run : |
32- # stop the build if there are Python syntax errors or undefined names
33- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
34- # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
35- flake8 . --count --exit-zero --max-complexity=11 --max-line-length=127 --statistics
36- flake8 --filename='*.pyx,*.px*' --ignore E901,E225,E226,E227,E402,E999
37- - name : Lint with black
38- run : |
39- black --check .
40- - name : Lint with clang-format
41- run : |
42- sudo apt install clang-format
43- find implicit | grep -E '\.(cu|cuh|h|cpp)$' | xargs clang-format --dry-run --Werror
44- if : runner.os == 'Linux'
45- - name : Lint with isort
46- run : |
47- isort -c .
48- - name : Lint with codespell
49- run : |
50- codespell
51- - name : Lint with pylint
52- run : |
53- pylint implicit tests benchmarks examples
22+ python-version : 3.12
23+ - uses : pre-commit/action@v3.0.1
5424
5525 build-wheels :
5626 needs : [lint]
5727 runs-on : ${{ matrix.os }}
5828 strategy :
5929 matrix :
60- os : [macos-latest, ubuntu-latest, windows-latest]
61- python-version : [36, 37, 38, 39, 310, 311, 312]
62- cibw-arch : [auto, aarch64]
63- exclude :
64- - os : macos-latest
65- cibw-arch : aarch64
66- - os : windows-latest
67- cibw-arch : aarch64
30+ os : [macos-latest, ubuntu-latest, windows-latest, ubuntu-24.04-arm]
31+ python-version : [39, 310, 311, 312, 313, 314]
6832
6933 steps :
70- - uses : actions/checkout@v3
71-
72- - name : Set up QEMU
73- if : runner.os == 'Linux'
74- uses : docker/setup-qemu-action@v3
75- with :
76- platforms : all
34+ - uses : actions/checkout@v6
7735
7836 - name : Build wheels
79- uses : pypa/cibuildwheel@v2.16.2
8037 env :
8138 CIBW_BUILD : cp${{matrix.python-version}}-*
82- CIBW_ARCHS_LINUX : ${{ matrix.cibw-arch }}
39+ uses : pypa/cibuildwheel@v3.4.1
8340
8441 - name : Build sdist
8542 run : |
@@ -93,42 +50,39 @@ jobs:
9350 if : runner.os == 'Linux'
9451
9552 - name : Upload Binaries
96- uses : actions/upload-artifact@v3
53+ uses : actions/upload-artifact@v7
9754 with :
98- name : wheels
99- path : wheelhouse
55+ name : wheels-${{ matrix.os }}-${{ matrix.python-version }}
56+ path : ./ wheelhouse/*.whl
10057
10158 test-wheels :
10259 needs : [build-wheels]
10360 runs-on : ${{ matrix.os }}
10461 strategy :
10562 matrix :
106- python-version : [3.7, 3.8, 3.9 , '3.10 ', '3.11 ', '3.12 ']
107- os : [macos-latest, ubuntu-latest, windows-latest]
63+ python-version : [3.9, '3.10', '3.11' , '3.12 ', '3.13 ', '3.14 ']
64+ os : [macos-latest, ubuntu-latest, windows-latest, ubuntu-24.04-arm ]
10865
10966 steps :
110- - uses : actions/checkout@v3
67+ - uses : actions/checkout@v6
11168 with :
11269 path : implicit_source
113- - uses : actions/download-artifact@v3
70+ - uses : actions/download-artifact@v8
11471 with :
115- name : wheels
72+ pattern : wheels-${{ matrix.os }}-*
73+ merge-multiple : true
11674 - name : Set up Python ${{ matrix.python-version }}
117- uses : actions/setup-python@v4
75+ uses : actions/setup-python@v6
11876 with :
11977 python-version : ${{ matrix.python-version }}
12078 - name : Install dependencies
12179 run : |
12280 python -m pip install --upgrade pip
12381 pip install pytest
12482 pip install -r implicit_source/requirements.txt
125- - name : Install h5py
126- run : pip install h5py
127-
12883 - name : Install ANN Libraries
12984 run : pip install annoy nmslib
130- if : ${{ matrix.python-version != '3.12' && matrix.python-version != '3.11' && runner.os == 'Linux' }}
131-
85+ if : ${{ matrix.python-version != '3.14' && runner.os == 'Linux' }}
13286 - name : Install wheel
13387 run : |
13488 pip install --force-reinstall --no-deps --no-index --find-links . implicit
@@ -142,15 +96,16 @@ jobs:
14296 if : " startsWith(github.ref, 'refs/tags/')"
14397 needs : [test-wheels]
14498 steps :
145- - uses : actions/download-artifact@v3
99+ - uses : actions/download-artifact@v8
146100 with :
147- name : wheels
101+ pattern : wheels-*
102+ merge-multiple : true
148103 - name : Create GitHub Release
149104 uses : fnkr/github-action-ghr@v1.3
150105 env :
151106 GHR_PATH : .
152107 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
153- - uses : actions/setup-python@v2
108+ - uses : actions/setup-python@v6
154109 with :
155110 python-version : 3.9
156111 - name : Push to PyPi
0 commit comments