88 GH_TOKEN : ${{ secrets.SEMANTIC_RELEASE_TOKEN }}
99 PYTHONUTF8 : 1
1010 PYTHON_VERSION : 3.11
11- DOTNET_VERSION : 8 .0.x
12- NODE_VERSION : 20
11+ DOTNET_VERSION : 10 .0.x
12+ NODE_VERSION : 24
1313 JAVA_VERSION : 21
14- GO_VERSION : " ^1.22 .0"
15- ANDROID_NDK_VERSION : 26.3.11579264
14+ GO_VERSION : " ^1.25 .0"
15+ ANDROID_NDK_VERSION : 27.2.12479018
1616 ANDROID_SDK_VERSION : 21
17- EMSCRIPTEN_VERSION : 3.1.47
18- MINGW_VERSION : 12.2.0
17+ EMSCRIPTEN_VERSION : 6.0.2
1918
2019# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
2120permissions :
@@ -195,10 +194,9 @@ jobs:
195194
196195 - name : Setup MinGW
197196 if : matrix.arch != 'arm64'
198- uses : egor-tensin/setup-mingw@v2
197+ uses : egor-tensin/setup-mingw@v3
199198 with :
200199 platform : ${{ matrix.arch }}
201- version : ${{ env.MINGW_VERSION }}
202200
203201 - name : Setup MSVC for ARM64
204202 if : matrix.arch == 'arm64'
@@ -750,7 +748,7 @@ jobs:
750748 strategy :
751749 matrix :
752750 os : [ubuntu-24.04, macos-14, windows-2022]
753- python-version : ["310", "311", "312", "313", "313t", " 314", "314t"]
751+ python-version : ["310", "311", "312", "313", "314", "314t"]
754752 steps :
755753 - name : Check out refreshed version
756754 uses : actions/checkout@v6
@@ -767,12 +765,11 @@ jobs:
767765 if : matrix.os == 'ubuntu-24.04' # We only need QEMU for Linux builds
768766 uses : docker/setup-qemu-action@v3
769767 - name : Install cibuildwheel
770- run : python -m pip install cibuildwheel
768+ run : python -m pip install " cibuildwheel~=4.1"
771769 - name : Build wheels
772770 run : cibuildwheel --output-dir wheelhouse
773771 env :
774772 CIBW_BUILD : cp${{ matrix.python-version }}-*
775- CIBW_ENABLE : cpython-freethreading # No-GIL 3.13t builds
776773 CIBW_TEST_SKIP : " *-win_arm64" # Too complex to emulate Windows ARM
777774 - name : Upload wheels
778775 uses : actions/upload-artifact@v5
@@ -813,19 +810,9 @@ jobs:
813810 strategy :
814811 fail-fast : false
815812 matrix :
816- arch : [x64, x86]
817- # Windows pre-build is not working
818- # - windows-latest
819- os : [macos-14, ubuntu-24.04]
820- exclude :
821- - arch : x86
822- os : macos-14
823- - arch : x86
824- os : ubuntu-24.04
813+ arch : [x64]
814+ os : [macos-14, ubuntu-24.04, windows-2022]
825815 runs-on : ${{ matrix.os }}
826- env :
827- CC : gcc
828- CXX : g++
829816
830817 steps :
831818 - name : Checkout the latest code
@@ -852,7 +839,16 @@ jobs:
852839 run : |
853840 npm install --ignore-scripts
854841 - run : npm run prebuild-single
855- if : matrix.os != 'macos-14'
842+ env :
843+ CC : gcc
844+ CXX : g++
845+ if : matrix.os == 'ubuntu-24.04'
846+ # Leave CC/CXX unset on Windows. node-gyp builds with MSVC regardless,
847+ # but NumKong's ISA probe takes the compiler from $CC while still
848+ # passing MSVC flag syntax, so a `gcc` here fails every probe and
849+ # silently yields a scalar-only binary with no SIMD kernels.
850+ - run : npm run prebuild-single
851+ if : matrix.os == 'windows-2022'
856852 - run : npm run prebuild-darwin-x64+arm64
857853 env :
858854 CC : clang
@@ -1136,6 +1132,7 @@ jobs:
11361132 cmake --build build_artifacts --config Release
11371133 mkdir -p "${{ github.workspace }}/csharp/lib/runtimes/linux-x64/native"
11381134 cp "${{ github.workspace }}/build_artifacts/libusearch_c.so" "${{ github.workspace }}/csharp/lib/runtimes/linux-x64/native"
1135+ cp "${{ github.workspace }}/build_artifacts/numkong/libnumkong.so" "${{ github.workspace }}/csharp/lib/runtimes/linux-x64/native"
11391136
11401137 - name : Build C library for MacOS
11411138 if : matrix.os == 'macos-15'
@@ -1146,15 +1143,19 @@ jobs:
11461143 cmake --build build_artifacts --config Release
11471144 mkdir -p "${{ github.workspace }}/csharp/lib/runtimes/osx-arm64/native"
11481145 cp "${{ github.workspace }}/build_artifacts/libusearch_c.dylib" "${{ github.workspace }}/csharp/lib/runtimes/osx-arm64/native"
1146+ cp "${{ github.workspace }}/build_artifacts/numkong/libnumkong.dylib" "${{ github.workspace }}/csharp/lib/runtimes/osx-arm64/native"
11491147
11501148 - name : Build C library for Windows
11511149 if : matrix.os == 'windows-2022'
1150+ shell : pwsh
11521151 run : |
1153- choco install cmake
1154- cmake -B build_artifacts -DCMAKE_BUILD_TYPE=Release -DUSEARCH_BUILD_TEST_CPP=0 -DUSEARCH_BUILD_TEST_C=0 -DUSEARCH_BUILD_LIB_C=1 -DUSEARCH_USE_OPENMP=0 -DUSEARCH_USE_NUMKONG=0 -DUSEARCH_USE_JEMALLOC=0
1152+ choco install cmake -y
1153+ cmake -B build_artifacts -DCMAKE_BUILD_TYPE=Release -DUSEARCH_BUILD_TEST_CPP=0 -DUSEARCH_BUILD_TEST_C=0 -DUSEARCH_BUILD_LIB_C=1 -DUSEARCH_USE_OPENMP=0 -DUSEARCH_USE_NUMKONG=1 -DUSEARCH_USE_JEMALLOC=0
11551154 cmake --build build_artifacts --config Release
1156- mkdir -p "${{ github.workspace }}\csharp\lib\runtimes\win-x64\native"
1157- cp "${{ github.workspace }}\build_artifacts\libusearch_c.dll" "${{ github.workspace }}\csharp\lib\runtimes\win-x64\native"
1155+ $nativeDir = "${{ github.workspace }}\csharp\lib\runtimes\win-x64\native"
1156+ New-Item -ItemType Directory -Force -Path $nativeDir | Out-Null
1157+ Copy-Item "${{ github.workspace }}\build_artifacts\libusearch_c.dll" -Destination $nativeDir
1158+ Copy-Item "${{ github.workspace }}\build_artifacts\numkong.dll" -Destination $nativeDir
11581159
11591160 - name : Upload Artifacts
11601161 uses : actions/upload-artifact@v5
@@ -1188,6 +1189,15 @@ jobs:
11881189 merge-multiple : true
11891190 path : ${{ env.USEARCH_LIBS }}
11901191
1192+ - name : Verify native package inputs
1193+ run : |
1194+ test -f "${{ env.USEARCH_LIBS }}/runtimes/linux-x64/native/libusearch_c.so"
1195+ test -f "${{ env.USEARCH_LIBS }}/runtimes/linux-x64/native/libnumkong.so"
1196+ test -f "${{ env.USEARCH_LIBS }}/runtimes/osx-arm64/native/libusearch_c.dylib"
1197+ test -f "${{ env.USEARCH_LIBS }}/runtimes/osx-arm64/native/libnumkong.dylib"
1198+ test -f "${{ env.USEARCH_LIBS }}/runtimes/win-x64/native/libusearch_c.dll"
1199+ test -f "${{ env.USEARCH_LIBS }}/runtimes/win-x64/native/numkong.dll"
1200+
11911201 - name : Setup .NET
11921202 uses : actions/setup-dotnet@v5
11931203 with :
0 commit comments