Skip to content

Slsqp2

Slsqp2 #947

Workflow file for this run

name: Windows tests
on:
push:
branches:
- maintenance/**
pull_request:
branches:
- main
- maintenance/**
permissions:
contents: read # to fetch code (actions/checkout)
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
get_commit_message:
name: Get commit message
uses: ./.github/workflows/commit_message.yml
fast_spin:
name: fast, py3.12/npAny, spin
needs: get_commit_message
# Ensure (a) this doesn't run on forks by default, and
# (b) it does run with Act locally (`github` doesn't exist there)
if: >
needs.get_commit_message.outputs.message == 1
&& (github.repository == 'scipy/scipy' || github.repository == '')
runs-on: windows-2025
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
with:
python-version: '3.12'
architecture: 'x64'
cache: 'pip'
cache-dependency-path: 'environment.yml'
- name: Install rtools (mingw-w64)
run: |
choco install rtools -y --no-progress --force --version=4.0.0.20220206
echo "c:\rtools40\ucrt64\bin;" >> $env:GITHUB_PATH
- name: pip-packages
run: |
pip install numpy cython pybind11 pythran meson ninja pytest pytest-xdist pytest-timeout pooch spin hypothesis "click<8.3.0"
python -m pip install -r requirements/openblas.txt
- name: Build
run: |
spin build --with-scipy-openblas
- name: Test
run: |
# test runner parallel clashes with OpenBLAS multithreading
$env:OPENBLAS_NUM_THREADS=1
spin test -j4 -- --durations=25
#############################################################################
full_spin_min_numpy:
name: full, py3.11/npMin, spin
needs: get_commit_message
if: >
needs.get_commit_message.outputs.message == 1
&& (github.repository == 'scipy/scipy' || github.repository == '')
runs-on: windows-2025
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
with:
python-version: '3.11'
cache: 'pip'
cache-dependency-path: 'environment.yml'
- name: Install rtools (mingw-w64)
run: |
choco install rtools -y --no-progress --force --version=4.0.0.20220206
echo "c:\rtools40\ucrt64\bin;" >> $env:GITHUB_PATH
- name: pip-packages
run: |
# 1.26.4 is currently our oldest supported NumPy version
python -m pip install numpy==1.26.4 cython pybind11 pythran meson-python meson ninja pytest pytest-xdist pytest-timeout pooch spin hypothesis "click<8.3.0"
python -m pip install -r requirements/openblas.txt
- name: Build
run: |
spin build --with-scipy-openblas
- name: Test
run: |
# test runner parallel clashes with OpenBLAS multithreading
$env:OPENBLAS_NUM_THREADS=1
spin test -j4 --mode full -- --durations=25 --timeout=60
#############################################################################
full_build_sdist_wheel:
# TODO: enable ILP64 once possible
name: no pythran & sdist+wheel, full, py3.11/npPre, pip+pytest
needs: get_commit_message
if: >
needs.get_commit_message.outputs.message == 1
&& (github.repository == 'scipy/scipy' || github.repository == '')
runs-on: windows-2025
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
with:
python-version: '3.11'
cache: 'pip'
cache-dependency-path: 'environment.yml'
- name: Win_amd64 - install rtools
run: |
# mingw-w64
choco install rtools -y --no-progress --force --version=4.0.0.20220206
echo "c:\rtools40\ucrt64\bin;" >> $env:GITHUB_PATH
- name: Install OpenBLAS
shell: bash
run: |
set -xe
python -m pip install -r requirements/openblas.txt
bash tools/wheels/cibw_before_build_win.sh .
echo "PKG_CONFIG_PATH=${{ github.workspace }}" >> $GITHUB_ENV
- name: pip-packages
run: |
python -m pip install build delvewheel cython pybind11 meson-python meson ninja pytest pytest-xdist pytest-timeout pooch hypothesis
python -m pip install --pre --upgrade --timeout=60 -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy
- name: Build
shell: bash
run: |
python -m build --no-isolation -x -Csetup-args="-Duse-pythran=false"
# Vendor openblas.dll and the DLL's it depends on into the wheel
# Ignore `libsf_error_state.dll` for special function error handling;
# it will be loaded using ctypes in scipy/special/__init__.py.
wheel_name=$(ls dist/*.whl)
openblas_dir=$(python -c"import scipy_openblas32 as sop; print(sop.get_lib_dir())")
delvewheel repair --add-path $openblas_dir --no-dll libsf_error_state.dll -w wheelhouse $wheel_name
python -m pip install wheelhouse/*
- name: Test
run: |
cd $RUNNER_TEMP
# run full test suite
# test runner parallel clashes with OpenBLAS multithreading
$env:OPENBLAS_NUM_THREADS=1
pytest --pyargs scipy
#############################################################################
fast_spin_arm64:
name: fast, py3.12/npAny, spin (Win-ARM64)
runs-on: windows-11-arm
needs: get_commit_message
if: >
needs.get_commit_message.outputs.message == 1 &&
(github.repository == 'scipy/scipy' || github.repository == '')
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
with:
python-version: '3.12'
architecture: 'arm64'
- name: Set up Flang and pkgconf for ARM64
uses: ./.github/windows_arm64_steps
- name: pip-packages
run: |
pip install numpy cython pybind11 pythran meson ninja pytest pytest-xdist pytest-timeout pooch spin hypothesis "click<8.3.0"
python -m pip install -r requirements/openblas.txt
- name: Build
run: |
$env:cc = "clang-cl"
$env:cxx = "clang-cl"
$env:fc = "flang-new"
spin build --with-scipy-openblas
- name: Test
run: |
$env:OPENBLAS_NUM_THREADS = 1
spin test -j2 -- --durations=25
#############################################################################
full_build_sdist_wheel_arm64:
name: no pythran & sdist+wheel, full, py3.11/npPre, pip+pytest (Win-ARM64)
runs-on: windows-11-arm
needs: get_commit_message
if: >
needs.get_commit_message.outputs.message == 1 &&
(github.repository == 'scipy/scipy' || github.repository == '')
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
with:
python-version: '3.11'
architecture: 'arm64'
cache: 'pip'
cache-dependency-path: 'environment.yml'
- name: Set up Flang and pkgconf for ARM64
uses: ./.github/windows_arm64_steps
- name: Install OpenBLAS
shell: bash
run: |
set -xe
export PKG_CONFIG_PATH=$(cygpath -u "$PKG_CONFIG_PATH")
export PATH="$(cygpath -u 'C:\vcpkg\installed\arm64-windows\tools\pkgconf'):$PATH"
python -m pip install -r requirements/openblas.txt
bash tools/wheels/cibw_before_build_win.sh .
echo "PKG_CONFIG_PATH=$(cygpath -w "${{ github.workspace }}")" >> $GITHUB_ENV
- name: pip-packages
run: |
python -m pip install build delvewheel cython pybind11 meson-python meson ninja pytest pytest-xdist pytest-timeout pooch hypothesis numpy
- name: Build
shell: bash
run: |
set -xe
export CC=clang-cl
export CXX=clang-cl
export FC=flang-new
export PATH="$(cygpath -u 'C:\vcpkg\installed\arm64-windows\tools\pkgconf'):$PATH"
python -m build --no-isolation -x -Csetup-args="-Duse-pythran=false"
wheel_name=$(ls dist/*.whl)
openblas_dir=$(python -c"import scipy_openblas32 as sop; print(sop.get_lib_dir())")
delvewheel repair --add-path "$openblas_dir" -w wheelhouse "$wheel_name"
python -m pip install wheelhouse/*
- name: Test
shell: pwsh
run: |
Set-Location $env:RUNNER_TEMP
$env:OPENBLAS_NUM_THREADS = 1
pytest --pyargs scipy -n2