From a45720f27071d137d6d752a7802ab2c486c195e3 Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Fri, 13 Sep 2024 07:13:11 +0100 Subject: [PATCH] Port main changes to 0.14.0 branch --- .github/workflows/build-wheels.yml | 55 +++++++++++++++++++++--------- statsmodels | 2 +- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 808b869..786b12f 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -8,7 +8,7 @@ on: jobs: build_wheels: - name: ${{ matrix.os }}, Python ${{ matrix.python }} + name: ${{ matrix.os }}, ${{matrix.python_impl }} ${{ matrix.python }} runs-on: ${{ matrix.os }} defaults: run: @@ -17,20 +17,26 @@ jobs: fail-fast: false matrix: python: [cp39, cp310, cp311, cp312] - os: [ubuntu-latest, windows-latest, macOS-latest] + os: [ubuntu-latest, windows-latest, macos-13, macos-latest] + python_impl: [Python] + include: + - python: cp312 + os: ubuntu-latest + python_impl: Pyodide env: BUILD_COMMIT: "v0.14.2" # or a specific version, e.g., v0.13.1 CIBW_BUILD: ${{ matrix.python }}-* CIBW_ARCHS_LINUX: "x86_64 aarch64" - CIBW_ARCHS_MACOS: "x86_64 arm64" + CIBW_ARCHS_MACOS: "arm64" # 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_TEST_REQUIRES: pytest==7.4.4 pytest-xdist - CIBW_TEST_COMMAND: python -c "import statsmodels; statsmodels.test(['--skip-examples','--skip-slow','-n','2'])" - # Avoid testing on emulated architectures - CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x}" + 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_REPAIR_WHEEL_COMMAND_LINUX: 'auditwheel repair --strip -w {dest_dir} {wheel}' + CIBW_BUILD_VERBOSITY: 1 MULTIBUILD_WHEELS_STAGING_ACCESS: ${{ secrets.MULTIBUILD_WHEELS_STAGING_ACCESS }} SCIENTIFIC_PYTHON_NIGHTLY_WHEELS: ${{ secrets.SCIENTIFIC_PYTHON_NIGHTLY_WHEELS }} MKL_NUM_THREADS: 1 @@ -43,25 +49,40 @@ jobs: submodules: recursive fetch-depth: 0 - # Used to host cibuildwheel - - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - name: Set up QEMU if: runner.os == 'Linux' uses: docker/setup-qemu-action@v3 with: platforms: all - - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.16.5 + - name: Build wheels (Default) + uses: pypa/cibuildwheel@v2.20 + if: (matrix.python_impl != 'Pyodide') && (matrix.os != 'macos-13') + with: + output-dir: wheelhouse + package-dir: statsmodels + env: + CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}' - - name: Build wheels - run: | - python -m cibuildwheel --output-dir wheelhouse statsmodels + - name: Build wheels (MacOS x86_64) + if: matrix.os == 'macos-13' + uses: pypa/cibuildwheel@v2.20 + with: + output-dir: wheelhouse + package-dir: statsmodels + env: + CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}' + CIBW_ARCHS_OSX: "x86_64" + + - name: Build Pyodide wheel + if: matrix.python_impl == 'Pyodide' + uses: pypa/cibuildwheel@v2.20 + with: + output-dir: wheelhouse + package-dir: statsmodels env: CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}' + CIBW_PLATFORM: pyodide - name: Setup Upload Variables if: ${{ always() }} diff --git a/statsmodels b/statsmodels index 5598e10..2571862 160000 --- a/statsmodels +++ b/statsmodels @@ -1 +1 @@ -Subproject commit 5598e1034a76a515fa0d71e28bdb8d1c32d9ecd7 +Subproject commit 2571862da163840bf23d106c9bfdd231bbce764f