From f0044055dc7bcc88e9a5fda3f7b28d6678240fa0 Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Thu, 12 Sep 2024 18:33:10 +0100 Subject: [PATCH 1/6] BLD: Add c99 --- .github/workflows/build-wheels.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index e89591f..afe0588 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -64,7 +64,8 @@ jobs: package-dir: statsmodels env: CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}' - CIBW_BUILD_VERBOSITY: 2 + CIBW_BUILD_VERBOSITY: 1 + CIBW_ENVIRONMENT_MACOS: CGLAGS="-std=c99" - name: Build Pyodide wheel if: matrix.python_impl == 'Pyodide' @@ -75,7 +76,7 @@ jobs: env: CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}' CIBW_PLATFORM: pyodide - CIBW_BUILD_VERBOSITY: 2 + CIBW_BUILD_VERBOSITY: 1 - name: Setup Upload Variables if: ${{ always() }} From ec29e2c900d20d6689988ba93c563778a04b53c8 Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Thu, 12 Sep 2024 19:00:49 +0100 Subject: [PATCH 2/6] BLD: Remove arm on OSX --- .github/workflows/build-wheels.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index afe0588..3fdb170 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -29,7 +29,8 @@ jobs: BUILD_COMMIT: "main" # 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: "x86_64" + # TODO: Restore arm64 when feasible # 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*" From 03ccab3df77630c0748681f803d3c00079960454 Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Thu, 12 Sep 2024 19:13:04 +0100 Subject: [PATCH 3/6] BLD: Revert to old config --- .github/workflows/build-wheels.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 3fdb170..e56f7b1 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -29,8 +29,7 @@ jobs: BUILD_COMMIT: "main" # or a specific version, e.g., v0.13.1 CIBW_BUILD: ${{ matrix.python }}-* CIBW_ARCHS_LINUX: "x86_64 aarch64" - CIBW_ARCHS_MACOS: "x86_64" - # TODO: Restore arm64 when feasible + CIBW_ARCHS_MACOS: "x86_64 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*" @@ -51,18 +50,23 @@ jobs: submodules: recursive fetch-depth: 0 + # Used to host cibuildwheel runner + - 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.20.0 + - name: Build wheels - uses: pypa/cibuildwheel@v2.20 - if: matrix.python_impl != 'Pyodide' - with: - output-dir: wheelhouse - package-dir: statsmodels + run: | + python -m cibuildwheel --output-dir wheelhouse statsmodels env: CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}' CIBW_BUILD_VERBOSITY: 1 From 6222793bd45935f930cefca80e560c8930526e4e Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Thu, 12 Sep 2024 19:57:17 +0100 Subject: [PATCH 4/6] Omit x86_64 for now --- .github/workflows/build-wheels.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index e56f7b1..687a712 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -29,7 +29,8 @@ jobs: BUILD_COMMIT: "main" # 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" + # TOdo: reenable x86_64 # 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*" From d33ce95d5189729c1de6ae8b68831941bcfde8c3 Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Thu, 12 Sep 2024 20:05:25 +0100 Subject: [PATCH 5/6] Revert MacOS runner to 13 --- .github/workflows/build-wheels.yml | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 687a712..ea10b6c 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: python: [cp39, cp310, cp311, cp312] - os: [ubuntu-latest, windows-latest, macOS-latest] + os: [ubuntu-latest, windows-latest, macos-13] python_impl: [Python] include: - python: cp312 @@ -29,8 +29,7 @@ jobs: BUILD_COMMIT: "main" # or a specific version, e.g., v0.13.1 CIBW_BUILD: ${{ matrix.python }}-* CIBW_ARCHS_LINUX: "x86_64 aarch64" - CIBW_ARCHS_MACOS: "arm64" - # TOdo: reenable x86_64 + CIBW_ARCHS_MACOS: "x86_64 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*" @@ -39,6 +38,7 @@ jobs: # 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 @@ -51,27 +51,20 @@ jobs: submodules: recursive fetch-depth: 0 - # Used to host cibuildwheel runner - - 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.20.0 - - name: Build wheels - run: | - python -m cibuildwheel --output-dir wheelhouse statsmodels + uses: pypa/cibuildwheel@v2.20 + if: matrix.python_impl != 'Pyodide' + with: + output-dir: wheelhouse + package-dir: statsmodels env: CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}' - CIBW_BUILD_VERBOSITY: 1 - CIBW_ENVIRONMENT_MACOS: CGLAGS="-std=c99" - name: Build Pyodide wheel if: matrix.python_impl == 'Pyodide' @@ -82,7 +75,6 @@ jobs: env: CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}' CIBW_PLATFORM: pyodide - CIBW_BUILD_VERBOSITY: 1 - name: Setup Upload Variables if: ${{ always() }} From 3c4afc551a64298a99fe7098ec31f960a193e00a Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Thu, 12 Sep 2024 22:39:49 +0100 Subject: [PATCH 6/6] BLD: Split out MacOS Builds --- .github/workflows/build-wheels.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index ea10b6c..e2d3ceb 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: python: [cp39, cp310, cp311, cp312] - os: [ubuntu-latest, windows-latest, macos-13] + os: [ubuntu-latest, windows-latest, macos-13, macos-latest] python_impl: [Python] include: - python: cp312 @@ -29,7 +29,6 @@ jobs: BUILD_COMMIT: "main" # 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" # 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*" @@ -57,14 +56,25 @@ jobs: with: platforms: all - - name: Build wheels + - name: Build wheels (Default) uses: pypa/cibuildwheel@v2.20 - if: matrix.python_impl != 'Pyodide' + if: (matrix.python_impl != 'Pyodide') && (matrix.os != 'macos-latest') 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 wheels (MacOS arm64) + if: matrix.os == 'macos-latest' + 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: "arm64" - name: Build Pyodide wheel if: matrix.python_impl == 'Pyodide'