diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 2c330e7..7363b30 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -18,13 +18,20 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel] + os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel, windows-11-arm] python: [cp310, cp311, cp312, cp313, cp314] python_impl: [Python] include: - python: cp312 os: ubuntu-latest python_impl: Pyodide + exclude: + - os: windows-11-arm + python: cp310 + - os: windows-11-arm + python: cp311 + - os: windows-11-arm + python: cp312 env: BUILD_COMMIT: "main" # or a specific version, e.g., v0.13.1 CIBW_BUILD: ${{ matrix.python }}-* @@ -33,8 +40,8 @@ jobs: # 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 *musllinux_aarch64*" - CIBW_TEST_REQUIRES: pytest pytest-xdist - CIBW_TEST_COMMAND: python -c "import statsmodels; statsmodels.test(['-m','(not slow and not example)','-n','2'], exit=True)" + CIBW_TEST_REQUIRES: pytest pytest-xdist pytest-randomly threadpoolctl + CIBW_TEST_COMMAND: python -c "import numpy; numpy.show_runtime(); import statsmodels; statsmodels.test(['-m','(not slow and not example)','-n','2'], exit=True)" # Avoid testing on emulated architectures and Pyodide CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x} *pyodide*" CIBW_REPAIR_WHEEL_COMMAND_LINUX: 'auditwheel repair --strip -w {dest_dir} {wheel}' @@ -101,6 +108,7 @@ jobs: - name: Install conda uses: conda-incubator/setup-miniconda@v3 + if: (runner.os != 'Windows') || ((runner.os == 'Windows') && (runner.arch != 'ARM64')) with: # for installation of anaconda-client, required for upload to # anaconda.org @@ -112,11 +120,20 @@ jobs: miniforge-version: latest conda-remove-defaults: "true" - - name: Inspect conda + - name: Inspect conda and install anaconda-client shell: pwsh + if: (runner.os != 'Windows') || ((runner.os == 'Windows') && (runner.arch != 'ARM64')) run: | conda info conda list + conda install -y anaconda-client + + - name: Install anaconda-client (Windows ARM64) + shell: pwsh + if: ((runner.os == 'Windows') && (runner.arch == 'ARM64')) + run: | + python -m pip install pip -U + pip install --only-binary :all: anaconda-client - name: Upload wheels if: ${{ always() }} @@ -137,7 +154,6 @@ jobs: echo ${PWD} if ( $env:ANACONDA_UPLOAD -eq "true") { - conda install -y anaconda-client echo "Uploading to $env:ANACONDA_ORG" # main branches of these two packages ls ./wheelhouse/*.whl diff --git a/statsmodels b/statsmodels index e1efaa5..ba664a0 160000 --- a/statsmodels +++ b/statsmodels @@ -1 +1 @@ -Subproject commit e1efaa5741df495ad6afeb4fc0867d3d87c93cfe +Subproject commit ba664a0303ccb0b0137a50d85e14604307fef681