diff --git a/.github/windows_arm64_steps/action.yml b/.github/windows_arm64_steps/action.yml new file mode 100644 index 0000000..37b8ebf --- /dev/null +++ b/.github/windows_arm64_steps/action.yml @@ -0,0 +1,21 @@ +name: Build Dependencies(Win-ARM64) +description: "Setup LLVM for Win-ARM64 builds" + +runs: + using: "composite" + steps: + - name: Install LLVM with checksum verification + shell: pwsh + run: | + Invoke-WebRequest https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.6/LLVM-20.1.6-woa64.exe -UseBasicParsing -OutFile LLVM-woa64.exe + $expectedHash = "92f69a1134e32e54b07d51c6e24d9594852f6476f32c3d70471ae00fffc2d462" + $fileHash = (Get-FileHash -Path "LLVM-woa64.exe" -Algorithm SHA256).Hash + if ($fileHash -ne $expectedHash) { + Write-Error "Checksum verification failed. The downloaded file may be corrupted or tampered with." + exit 1 + } + Start-Process -FilePath ".\LLVM-woa64.exe" -ArgumentList "/S" -Wait + echo "C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "CC=clang-cl" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "CXX=clang-cl" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "FC=flang-new" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 341aef3..4526707 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -19,23 +19,26 @@ jobs: fail-fast: false matrix: python: [cp310, cp311, cp312, cp313] - os: [ubuntu-latest, windows-latest, macos-13, macos-latest] + os: [ubuntu-latest, windows-latest, macos-13, macos-latest, windows-11-arm] python_impl: [Python] include: - python: cp312 os: ubuntu-latest python_impl: Pyodide + exclude: + - os: windows-11-arm + python: cp310 env: BUILD_COMMIT: "main" # or a specific version, e.g., v0.13.1 CIBW_BUILD: ${{ matrix.python }}-* CIBW_ARCHS_LINUX: "x86_64 aarch64" # No support for pypy, musl, Win32 for 3.10+ # Skip musl for 3.8 and 3.9 since no upstream wheels - CIBW_SKIP: "pp* *-win32 cp38-musllinux* cp39-musllinux* *musllinux_aarch64*" + CIBW_SKIP: "pp* *-win32 *musllinux_aarch64*" CIBW_TEST_REQUIRES: pytest pytest-xdist CIBW_TEST_COMMAND: python -c "import statsmodels; statsmodels.test(['--skip-examples','--skip-slow','-n','2'], exit=True)" # Avoid testing on emulated architectures and Pyodide - CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x} *pyodide*" + CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x} *pyodide* *win_arm64*" CIBW_REPAIR_WHEEL_COMMAND_LINUX: 'auditwheel repair --strip -w {dest_dir} {wheel}' CIBW_BUILD_VERBOSITY: 1 MULTIBUILD_WHEELS_STAGING_ACCESS: ${{ secrets.MULTIBUILD_WHEELS_STAGING_ACCESS }} diff --git a/statsmodels b/statsmodels index 3095a65..cee5801 160000 --- a/statsmodels +++ b/statsmodels @@ -1 +1 @@ -Subproject commit 3095a6559b549b0da88aebe3bfef05c6b5403ebe +Subproject commit cee5801ce86bb69256ad26227f6234c1d749a2ca