From 0c739c2861e8044732795ce90be5104e23fd7e21 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Fri, 3 Feb 2023 20:33:12 -0500 Subject: [PATCH 01/28] Add Cygwin CI run This probably uses setuptools instead of meson, but let's try this anyway. --- .github/workflows/cygwin.yml | 69 ++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/cygwin.yml diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml new file mode 100644 index 000000000000..7fab969c2de5 --- /dev/null +++ b/.github/workflows/cygwin.yml @@ -0,0 +1,69 @@ +name: Cygwin Tests + +on: + push: + branches: + - main + - maintenance/** + pull_request: + branches: + - main + - maintenance/** + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + cygwin: + name: Cygwin tests + runs-on: windows-latest + env: + SHELLOPTS: igncr + CHERE_INVOKING: 1 + CYGWIN_NOWINPATH: 1 + PYTHONPATH: /usr/local/lib/python3.8/site-packages + steps: + - run: git config --global core.autocrlf input + - uses: actions/checkout@v3 + with: + submodules: recursive + - uses: cygwin/cygwin-install-action@v2 + with: + packages: >- + gcc-g++ gcc-fortran liblapack-devel libopenblas libmpfr-devel ccache swig libmpc-devel + libumfpack-devel libsliplu-devel libldl-devel libklu-devel libcxsparse-devel libcholmod-devel libamd-devel + python38-devel python38-pip python38-setuptools python38-wheel python38-numpy python38-cython + python38-pytest + meson ninja cmake make git + - name: Fix git config + shell: bash.exe -eo pipefail -o igncr "{0}" + run: /usr/bin/git config --system --add safe.directory /cygdrive/d/a/*/scipy + - name: Install Python dependencies + shell: bash.exe -eo pipefail -o igncr "{0}" + run: | + mkdir builds + cd builds + python3.8 -m pip install --upgrade pip 'setuptools<60' wheel + python3.8 -m pip install --upgrade numpy cython pytest pytest-xdist pybind11 + python3.8 -m pip install --upgrade mpmath gmpy2 pythran threadpoolctl pooch + python3.8 -m pip uninstall -y nose + cd .. + - name: Check NumPy import + shell: bash.exe -eo pipefail -o igncr "{0}" + run: /usr/bin/env PATH="/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" python3.8 -c "import numpy as np; print(np.__version__)" + - name: Building SciPy + shell: bash.exe -eo pipefail -o igncr "{0}" + env: + CPPFLAGS: -D_XOPEN_SOURCE=600 + run: /usr/bin/env PATH="/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" python3.8 -u runtests.py -g -j2 --build-only + - name: Check SciPy installs + shell: bash.exe -eo pipefail -o igncr "{0}" + env: + CPPFLAGS: -D_XOPEN_SOURCE=600 + run: /usr/bin/env PATH="/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" python3.8 -m pip install -e . + - name: Testing SciPy + shell: bash.exe -eo pipefail -o igncr "{0}" + run: | + /usr/bin/env PATH="/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" python3.8 -u runtests.py -n -g -j2 -m fast -- -rfEX --durations=10 --timeout=60 2>&1 | tee runtests.log + python3.8 tools/validate_runtests_log.py fast < runtests.log From 6cb5d2d2a8da583b00990c8dabb6e1450da56636 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Fri, 3 Feb 2023 22:23:39 -0500 Subject: [PATCH 02/28] CI,FIX: Don't pip install scipy I don't know how to tell SciPy to link to netlib blas and lapack. --- .github/workflows/cygwin.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 7fab969c2de5..cd30b8290322 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -59,6 +59,7 @@ jobs: run: /usr/bin/env PATH="/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" python3.8 -u runtests.py -g -j2 --build-only - name: Check SciPy installs shell: bash.exe -eo pipefail -o igncr "{0}" + if: false env: CPPFLAGS: -D_XOPEN_SOURCE=600 run: /usr/bin/env PATH="/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" python3.8 -m pip install -e . From 43b1341ad19ef5db7363c58c6163f0b084841391 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 08:00:03 -0500 Subject: [PATCH 03/28] CI,FIX: Install pytest-timeout before using. --- .github/workflows/cygwin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index cd30b8290322..a8a294985fb6 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -45,7 +45,7 @@ jobs: mkdir builds cd builds python3.8 -m pip install --upgrade pip 'setuptools<60' wheel - python3.8 -m pip install --upgrade numpy cython pytest pytest-xdist pybind11 + python3.8 -m pip install --upgrade numpy cython pytest pytest-xdist pytest-timeout pybind11 python3.8 -m pip install --upgrade mpmath gmpy2 pythran threadpoolctl pooch python3.8 -m pip uninstall -y nose cd .. From 18d1958d4b6eb0885a536195cbf628fe8cd0f7c5 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 08:23:26 -0500 Subject: [PATCH 04/28] CI: Add Cygwin-Meson workflow Actually test the build that people are complaining about. --- .github/workflows/cygwin_meson.yml | 174 +++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 .github/workflows/cygwin_meson.yml diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml new file mode 100644 index 000000000000..647742583588 --- /dev/null +++ b/.github/workflows/cygwin_meson.yml @@ -0,0 +1,174 @@ +name: Cygwin Meson tests + +# This is a single job: Python 3.9, building with Meson, using -Werror to +# ensure we remain at zero build warnings. Other Meson CI jobs are running +# on https://github.com/rgommers/scipy/tree/meson + +on: + push: + branches: + - main + - maintenance/** + pull_request: + branches: + - main + - maintenance/** + +permissions: + contents: read # to fetch code (actions/checkout) + +env: + CCACHE_DIR: "${{ github.workspace }}/.ccache" + INSTALLDIR: "build-install" + CPPFLAGS: "-D_XOPEN_SOURCE=600" + SHELLOPTS: igncr + CHERE_INVOKING: 1 + CYGWIN_NOWINPATH: 1 + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + test_meson: + name: Cygwin Meson build + # If using act to run CI locally the github object does not exist and the usual skipping should not be enforced + if: "github.repository == 'scipy/scipy' || github.repository == '' || github.repository == 'DWesl/scipy'" + runs-on: windows-latest + strategy: + matrix: + python-minor-version: ['9'] + maintenance-branch: + - ${{ contains(github.ref, 'maintenance/') || contains(github.base_ref, 'maintenance/') }} + exclude: + - maintenance-branch: true + python-version: '3.11-dev' + env: + PYTHONPATH: "/usr/local/lib/python3.${{ matrix.python-minor-version }}/site-packages" + + steps: + - run: git config --global core.autocrlf input + + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cygwin/cygwin-install-action@v3 + with: + packages: >- + gcc-g++ gcc-fortran liblapack-devel libopenblas libmpfr-devel ccache swig libmpc-devel + libumfpack-devel libsliplu-devel libldl-devel libklu-devel libcxsparse-devel libcholmod-devel libamd-devel + python3${{ matrix.python-minor-version }}-devel + python3${{ matrix.python-minor-version }}-pip + python3${{ matrix.python-minor-version }}-setuptools + python3${{ matrix.python-minor-version }}-wheel + python3${{ matrix.python-minor-version }}-numpy + python3${{ matrix.python-minor-version }}-cython + python3${{ matrix.python-minor-version }}-pytest + meson ninja cmake make git + - name: Fix git config + shell: bash.exe -eo pipefail -o igncr "{0}" + run: /usr/bin/git config --system --add safe.directory /cygdrive/d/a/*/scipy + + - name: Install Python packages + shell: bash.exe -eo pipefail -o igncr "{0}" + run: | + python -m pip install numpy cython pytest pytest-xdist pytest-timeout pybind11 mpmath gmpy2 pythran ninja meson click rich-click doit pydevtool pooch + + - name: Prepare compiler cache + id: prep-ccache + shell: bash.exe -eo pipefail -o igncr "{0}" + run: | + mkdir -p "${CCACHE_DIR}" + echo "dir=$(cygpath -wa $CCACHE_DIR)" >> $GITHUB_OUTPUT + NOW=$(date -u +"%F-%T") + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT + - name: Setup compiler cache + uses: actions/cache@v3 + id: cache-ccache + # Reference: https://docs.github.com/en/actions/guides/caching-dependencies-to-speed-up-workflows#matching-a-cache-key + # NOTE: The caching strategy is modeled in a way that it will always have a unique cache key for each workflow run + # (even if the same workflow is run multiple times). The restore keys are not unique and for a partial match, they will + # return the most recently created cache entry, according to the GitHub Action Docs. + with: + path: ${{ steps.prep-ccache.outputs.dir }} + # Restores ccache from either a previous build on this branch or on main + key: ${{ github.workflow }}-${{ matrix.python-version }}-ccache-linux-${{ steps.prep-ccache.outputs.timestamp }} + # This evaluates to `Linux Tests-3.9-ccache-linux-` which is not unique. As the CI matrix is expanded, this will + # need to be updated to be unique so that the cache is not restored from a different job altogether. + restore-keys: | + ${{ github.workflow }}-${{ matrix.python-version }}-ccache-linux- + - name: Setup build and install scipy + shell: bash.exe -eo pipefail -o igncr "{0}" + run: | + meson setup build -Dblas=blas -Dlapack=lapack --prefix=$(pwd)/${INSTALLDIR} + python dev.py build -j 2 --werror + - name: Ccache performance + shell: bash -l -eo pipefail -o igncr "{0}" + run: ccache -s + + - name: Check installation + shell: bash.exe -eo pipefail -o igncr "{0}" + run: | + pushd tools + python check_installation.py ${{ env.INSTALLDIR }} + ./check_pyext_symbol_hiding.sh ../build + popd + - name: Mypy + shell: bash.exe -eo pipefail -o igncr "{0}" + run: | + # Packages that are only needed for their annotations + python -m pip install -r mypy_requirements.txt + python -m pip install types-psutil pybind11 sphinx + python -u dev.py mypy + - name: Test SciPy + shell: bash.exe -eo pipefail -o igncr "{0}" + run: | + export OMP_NUM_THREADS=2 + export SCIPY_USE_PROPACK=1 + python dev.py --no-build test -j 2 -- --durations 10 --timeout=60 + + test_venv_install: + name: Pip install into venv + if: "github.repository == 'scipy/scipy' || github.repository == '' || github.repository == 'DWesl/scipy'" + runs-on: windows-latest + steps: + - run: git config --global core.autocrlf input + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cygwin/cygwin-install-action@v3 + with: + packages: >- + gcc-g++ gcc-fortran liblapack-devel libopenblas libmpfr-devel ccache swig libmpc-devel + libumfpack-devel libsliplu-devel libldl-devel libklu-devel libcxsparse-devel libcholmod-devel libamd-devel + python3${{ matrix.python-minor-version }}-devel + python3${{ matrix.python-minor-version }}-pip + python3${{ matrix.python-minor-version }}-setuptools + python3${{ matrix.python-minor-version }}-wheel + python3${{ matrix.python-minor-version }}-numpy + python3${{ matrix.python-minor-version }}-cython + python3${{ matrix.python-minor-version }}-pytest + meson ninja cmake make git + + - name: Fix git config + shell: bash.exe -eo pipefail -o igncr "{0}" + run: /usr/bin/git config --system --add safe.directory /cygdrive/d/a/*/scipy + + - name: Create venv, install SciPy + run: | + python -m venv ../venvs/scipy-venv + source ../venvs/scipy-venv/bin/activate + # Note that this uses build isolation. That's why we don't need build + # dependencies to be installed in the venv itself. + meson setup build -Dblas=blas -Dlapack=lapack --prefix=$(pwd)/${INSTALLDIR} + python -m pip install . -vv + - name: Basic imports and tests + run: | + source ../venvs/scipy-venv/bin/activate + cd .. + python -c "import scipy" + python -c "import scipy.linalg" + python -m pip install pytest + python -c "from scipy import cluster; cluster.test()" From b792cf9a421111a01b9f130e363bd2de1d802297 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 08:41:51 -0500 Subject: [PATCH 05/28] CI,FIX: Fix syntax of Meson workflow file --- .github/workflows/cygwin_meson.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 647742583588..5ae2933db41d 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -54,18 +54,19 @@ jobs: submodules: recursive - uses: cygwin/cygwin-install-action@v3 - with: - packages: >- - gcc-g++ gcc-fortran liblapack-devel libopenblas libmpfr-devel ccache swig libmpc-devel - libumfpack-devel libsliplu-devel libldl-devel libklu-devel libcxsparse-devel libcholmod-devel libamd-devel - python3${{ matrix.python-minor-version }}-devel - python3${{ matrix.python-minor-version }}-pip - python3${{ matrix.python-minor-version }}-setuptools - python3${{ matrix.python-minor-version }}-wheel - python3${{ matrix.python-minor-version }}-numpy - python3${{ matrix.python-minor-version }}-cython - python3${{ matrix.python-minor-version }}-pytest - meson ninja cmake make git + with: + packages: >- + gcc-g++ gcc-fortran liblapack-devel libopenblas libmpfr-devel ccache swig libmpc-devel + libumfpack-devel libsliplu-devel libldl-devel libklu-devel libcxsparse-devel libcholmod-devel libamd-devel + python3${{ matrix.python-minor-version }}-devel + python3${{ matrix.python-minor-version }}-pip + python3${{ matrix.python-minor-version }}-setuptools + python3${{ matrix.python-minor-version }}-wheel + python3${{ matrix.python-minor-version }}-numpy + python3${{ matrix.python-minor-version }}-cython + python3${{ matrix.python-minor-version }}-pytest + meson ninja cmake make git + - name: Fix git config shell: bash.exe -eo pipefail -o igncr "{0}" run: /usr/bin/git config --system --add safe.directory /cygdrive/d/a/*/scipy From 25bc80f06393efc55f00646c074d349b0e668a54 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 08:44:09 -0500 Subject: [PATCH 06/28] CI,FIX: Fix Cygwin-Meson workflow file syntax. --- .github/workflows/cygwin_meson.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 5ae2933db41d..bdd5d05ecce3 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -68,8 +68,8 @@ jobs: meson ninja cmake make git - name: Fix git config - shell: bash.exe -eo pipefail -o igncr "{0}" - run: /usr/bin/git config --system --add safe.directory /cygdrive/d/a/*/scipy + shell: bash.exe -eo pipefail -o igncr "{0}" + run: /usr/bin/git config --system --add safe.directory /cygdrive/d/a/*/scipy - name: Install Python packages shell: bash.exe -eo pipefail -o igncr "{0}" From bf020683ab021d56a419341b0c3997eca91dc692 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 08:46:04 -0500 Subject: [PATCH 07/28] CI,FIX: Fix syntax in Cygwin-Meson workflow file --- .github/workflows/cygwin_meson.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index bdd5d05ecce3..bd03563c6089 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -140,22 +140,22 @@ jobs: submodules: recursive - uses: cygwin/cygwin-install-action@v3 - with: - packages: >- - gcc-g++ gcc-fortran liblapack-devel libopenblas libmpfr-devel ccache swig libmpc-devel - libumfpack-devel libsliplu-devel libldl-devel libklu-devel libcxsparse-devel libcholmod-devel libamd-devel - python3${{ matrix.python-minor-version }}-devel - python3${{ matrix.python-minor-version }}-pip - python3${{ matrix.python-minor-version }}-setuptools - python3${{ matrix.python-minor-version }}-wheel - python3${{ matrix.python-minor-version }}-numpy - python3${{ matrix.python-minor-version }}-cython - python3${{ matrix.python-minor-version }}-pytest - meson ninja cmake make git + with: + packages: >- + gcc-g++ gcc-fortran liblapack-devel libopenblas libmpfr-devel ccache swig libmpc-devel + libumfpack-devel libsliplu-devel libldl-devel libklu-devel libcxsparse-devel libcholmod-devel libamd-devel + python3${{ matrix.python-minor-version }}-devel + python3${{ matrix.python-minor-version }}-pip + python3${{ matrix.python-minor-version }}-setuptools + python3${{ matrix.python-minor-version }}-wheel + python3${{ matrix.python-minor-version }}-numpy + python3${{ matrix.python-minor-version }}-cython + python3${{ matrix.python-minor-version }}-pytest + meson ninja cmake make git - name: Fix git config - shell: bash.exe -eo pipefail -o igncr "{0}" - run: /usr/bin/git config --system --add safe.directory /cygdrive/d/a/*/scipy + shell: bash.exe -eo pipefail -o igncr "{0}" + run: /usr/bin/git config --system --add safe.directory /cygdrive/d/a/*/scipy - name: Create venv, install SciPy run: | From 4a08a7f49f3ecb9dd81ac28724bebefaf8b55023 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 08:56:57 -0500 Subject: [PATCH 08/28] CI,FIX: Run venv tests in Cygwin shell. --- .github/workflows/cygwin_meson.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index bd03563c6089..ba22ca18f514 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -158,6 +158,7 @@ jobs: run: /usr/bin/git config --system --add safe.directory /cygdrive/d/a/*/scipy - name: Create venv, install SciPy + shell: bash.exe -eo pipefail -o igncr "{0}" run: | python -m venv ../venvs/scipy-venv source ../venvs/scipy-venv/bin/activate @@ -165,7 +166,9 @@ jobs: # dependencies to be installed in the venv itself. meson setup build -Dblas=blas -Dlapack=lapack --prefix=$(pwd)/${INSTALLDIR} python -m pip install . -vv + - name: Basic imports and tests + shell: bash.exe -eo pipefail -o igncr "{0}" run: | source ../venvs/scipy-venv/bin/activate cd .. From d303abe22549d71e809e0eb1d09d5342e1901384 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 09:18:21 -0500 Subject: [PATCH 09/28] CI,DBG: Try to find failing command It doesn't give me details. --- .github/workflows/cygwin_meson.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index ba22ca18f514..56ab5fb81fef 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -160,11 +160,15 @@ jobs: - name: Create venv, install SciPy shell: bash.exe -eo pipefail -o igncr "{0}" run: | + echo Creating venv python -m venv ../venvs/scipy-venv + echo Activating venv source ../venvs/scipy-venv/bin/activate + echo Configuring blas and lapack + meson setup build -Dblas=blas -Dlapack=lapack --prefix=$(pwd)/${INSTALLDIR} # Note that this uses build isolation. That's why we don't need build # dependencies to be installed in the venv itself. - meson setup build -Dblas=blas -Dlapack=lapack --prefix=$(pwd)/${INSTALLDIR} + echo Installing SciPy python -m pip install . -vv - name: Basic imports and tests From 5a2dfddcd5455302deee71dcbcaef4471cc9900a Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 09:44:22 -0500 Subject: [PATCH 10/28] CI,DBG: Try printing more debug info. There's a consistent failure for no reason I can find. --- .github/workflows/cygwin_meson.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 56ab5fb81fef..aed68e762a28 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -160,8 +160,9 @@ jobs: - name: Create venv, install SciPy shell: bash.exe -eo pipefail -o igncr "{0}" run: | + python -V echo Creating venv - python -m venv ../venvs/scipy-venv + python -v -m venv ../venvs/scipy-venv echo Activating venv source ../venvs/scipy-venv/bin/activate echo Configuring blas and lapack From b7f8b4d360ba06f84dbc049b85f2e09e8b20f475 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 15:58:03 -0500 Subject: [PATCH 11/28] CI: Remove the Cygwin pip/venv tests It wasn't actually running, just crashing during venv creation for no discernible reason. --- .github/workflows/cygwin_meson.yml | 53 ------------------------------ 1 file changed, 53 deletions(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index aed68e762a28..d7f3e61bbcb4 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -128,56 +128,3 @@ jobs: export OMP_NUM_THREADS=2 export SCIPY_USE_PROPACK=1 python dev.py --no-build test -j 2 -- --durations 10 --timeout=60 - - test_venv_install: - name: Pip install into venv - if: "github.repository == 'scipy/scipy' || github.repository == '' || github.repository == 'DWesl/scipy'" - runs-on: windows-latest - steps: - - run: git config --global core.autocrlf input - - uses: actions/checkout@v3 - with: - submodules: recursive - - - uses: cygwin/cygwin-install-action@v3 - with: - packages: >- - gcc-g++ gcc-fortran liblapack-devel libopenblas libmpfr-devel ccache swig libmpc-devel - libumfpack-devel libsliplu-devel libldl-devel libklu-devel libcxsparse-devel libcholmod-devel libamd-devel - python3${{ matrix.python-minor-version }}-devel - python3${{ matrix.python-minor-version }}-pip - python3${{ matrix.python-minor-version }}-setuptools - python3${{ matrix.python-minor-version }}-wheel - python3${{ matrix.python-minor-version }}-numpy - python3${{ matrix.python-minor-version }}-cython - python3${{ matrix.python-minor-version }}-pytest - meson ninja cmake make git - - - name: Fix git config - shell: bash.exe -eo pipefail -o igncr "{0}" - run: /usr/bin/git config --system --add safe.directory /cygdrive/d/a/*/scipy - - - name: Create venv, install SciPy - shell: bash.exe -eo pipefail -o igncr "{0}" - run: | - python -V - echo Creating venv - python -v -m venv ../venvs/scipy-venv - echo Activating venv - source ../venvs/scipy-venv/bin/activate - echo Configuring blas and lapack - meson setup build -Dblas=blas -Dlapack=lapack --prefix=$(pwd)/${INSTALLDIR} - # Note that this uses build isolation. That's why we don't need build - # dependencies to be installed in the venv itself. - echo Installing SciPy - python -m pip install . -vv - - - name: Basic imports and tests - shell: bash.exe -eo pipefail -o igncr "{0}" - run: | - source ../venvs/scipy-venv/bin/activate - cd .. - python -c "import scipy" - python -c "import scipy.linalg" - python -m pip install pytest - python -c "from scipy import cluster; cluster.test()" From 57cb6225bc4c475fa5de17bb3950aba2d1eb40a0 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 16:01:36 -0500 Subject: [PATCH 12/28] CI: Simplify the Cygwin-Meson build conditions --- .github/workflows/cygwin_meson.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index d7f3e61bbcb4..9e13836e592b 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -32,17 +32,10 @@ concurrency: jobs: test_meson: name: Cygwin Meson build - # If using act to run CI locally the github object does not exist and the usual skipping should not be enforced - if: "github.repository == 'scipy/scipy' || github.repository == '' || github.repository == 'DWesl/scipy'" runs-on: windows-latest strategy: matrix: python-minor-version: ['9'] - maintenance-branch: - - ${{ contains(github.ref, 'maintenance/') || contains(github.base_ref, 'maintenance/') }} - exclude: - - maintenance-branch: true - python-version: '3.11-dev' env: PYTHONPATH: "/usr/local/lib/python3.${{ matrix.python-minor-version }}/site-packages" From f8805d3b65bd6c736e4f9b5ec1d58a4363af104d Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 16:16:07 -0500 Subject: [PATCH 13/28] CI,FIX: Update meson --- .github/workflows/cygwin_meson.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 9e13836e592b..6b89c4373577 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -67,7 +67,8 @@ jobs: - name: Install Python packages shell: bash.exe -eo pipefail -o igncr "{0}" run: | - python -m pip install numpy cython pytest pytest-xdist pytest-timeout pybind11 mpmath gmpy2 pythran ninja meson click rich-click doit pydevtool pooch + python -m pip install numpy cython pytest pytest-xdist pytest-timeout pybind11 mpmath gmpy2 pythran click rich-click doit pydevtool pooch + python -m pip install meson'>=0.64.0' ninja - name: Prepare compiler cache id: prep-ccache From 6070d1f45c5a42294e2203299b02ba2e080e46d3 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 16:34:58 -0500 Subject: [PATCH 14/28] CI,FIX: Add /usr/local/bin to path Still not sure why python defaults to /usr/local over /usr here, nor how best to change it. --- .github/workflows/cygwin_meson.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 6b89c4373577..89687ccd7374 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -96,6 +96,7 @@ jobs: - name: Setup build and install scipy shell: bash.exe -eo pipefail -o igncr "{0}" run: | + export PATH="/usr/local/bin:/usr/bin:/bin:/usr/lib/lapack" meson setup build -Dblas=blas -Dlapack=lapack --prefix=$(pwd)/${INSTALLDIR} python dev.py build -j 2 --werror - name: Ccache performance @@ -105,6 +106,7 @@ jobs: - name: Check installation shell: bash.exe -eo pipefail -o igncr "{0}" run: | + export PATH="/usr/local/bin:/usr/bin:/bin:/usr/lib/lapack" pushd tools python check_installation.py ${{ env.INSTALLDIR }} ./check_pyext_symbol_hiding.sh ../build @@ -112,6 +114,7 @@ jobs: - name: Mypy shell: bash.exe -eo pipefail -o igncr "{0}" run: | + export PATH="/usr/local/bin:/usr/bin:/bin:/usr/lib/lapack" # Packages that are only needed for their annotations python -m pip install -r mypy_requirements.txt python -m pip install types-psutil pybind11 sphinx @@ -119,6 +122,7 @@ jobs: - name: Test SciPy shell: bash.exe -eo pipefail -o igncr "{0}" run: | + export PATH="/usr/local/bin:/usr/bin:/bin:/usr/lib/lapack" export OMP_NUM_THREADS=2 export SCIPY_USE_PROPACK=1 python dev.py --no-build test -j 2 -- --durations 10 --timeout=60 From 2c1661f8ef9cd45b8701f909c8a81ec6eafa409d Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sat, 4 Feb 2023 16:53:21 -0500 Subject: [PATCH 15/28] CI,FIX: Update _XOPEN_SOURCE to 700 to match pyconfig.h --- .github/workflows/cygwin_meson.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 89687ccd7374..2b00aff2e76c 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -20,7 +20,7 @@ permissions: env: CCACHE_DIR: "${{ github.workspace }}/.ccache" INSTALLDIR: "build-install" - CPPFLAGS: "-D_XOPEN_SOURCE=600" + CPPFLAGS: "-D_XOPEN_SOURCE=700" SHELLOPTS: igncr CHERE_INVOKING: 1 CYGWIN_NOWINPATH: 1 From 92c62a95a11c9dfa01a144fac044c3bd5307c43d Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sun, 5 Feb 2023 07:58:52 -0500 Subject: [PATCH 16/28] CI: Install tomli. --- .github/workflows/cygwin_meson.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 2b00aff2e76c..22bdb5d808f0 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -68,7 +68,7 @@ jobs: shell: bash.exe -eo pipefail -o igncr "{0}" run: | python -m pip install numpy cython pytest pytest-xdist pytest-timeout pybind11 mpmath gmpy2 pythran click rich-click doit pydevtool pooch - python -m pip install meson'>=0.64.0' ninja + python -m pip install meson'>=0.64.0' ninja tomli - name: Prepare compiler cache id: prep-ccache From 9610d10aeb0e3140164891999533ba89752cf6cc Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sun, 5 Feb 2023 12:05:50 -0500 Subject: [PATCH 17/28] BLD,BUG: Link flapack against blas. Apparently there are blas symbols in the object. Not entirely sure how they got there since the Windows build succeeds. --- scipy/linalg/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scipy/linalg/meson.build b/scipy/linalg/meson.build index ce383e5d51cb..c0f446e092fd 100644 --- a/scipy/linalg/meson.build +++ b/scipy/linalg/meson.build @@ -76,7 +76,7 @@ py3.extension_module('_flapack', c_args: [numpy_nodepr_api, Wno_empty_body], include_directories: [inc_np, inc_f2py], link_args: version_link_args, - dependencies: [lapack, fortranobject_dep], + dependencies: [lapack, blas, fortranobject_dep], install: true, link_language: 'fortran', subdir: 'scipy/linalg' From d221d44b5f4549b6af20717cb4fa6034cf57c68c Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sun, 5 Feb 2023 12:07:09 -0500 Subject: [PATCH 18/28] BUG: Include pyconfig.h before standard headers. We need the visibility macros set before using them to define things. --- scipy/special/_faddeeva.cxx | 1 + scipy/special/_faddeeva.h | 1 + scipy/special/wright.hh | 1 + 3 files changed, 3 insertions(+) diff --git a/scipy/special/_faddeeva.cxx b/scipy/special/_faddeeva.cxx index 6b619fb70bc5..7378b2770078 100644 --- a/scipy/special/_faddeeva.cxx +++ b/scipy/special/_faddeeva.cxx @@ -1,3 +1,4 @@ +#include #include #include diff --git a/scipy/special/_faddeeva.h b/scipy/special/_faddeeva.h index d4ec3a755e2c..4def793ec61d 100644 --- a/scipy/special/_faddeeva.h +++ b/scipy/special/_faddeeva.h @@ -9,6 +9,7 @@ #define EXTERN_C_END #endif +#include #include #include diff --git a/scipy/special/wright.hh b/scipy/special/wright.hh index ef168cba00ec..749f5f67af31 100644 --- a/scipy/special/wright.hh +++ b/scipy/special/wright.hh @@ -1,6 +1,7 @@ #ifndef WRIGHT_HH #define WRIGHT_HH +#include #include namespace wright { From b91928f3ea826f21a854813a1de3211f25771a01 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sun, 5 Feb 2023 17:42:04 -0500 Subject: [PATCH 19/28] BLD,BUG: Link more libraries against BLAS. They call BLAS functions but do not link against BLAS, only Lapack. --- scipy/integrate/meson.build | 2 +- scipy/optimize/_trlib/meson.build | 2 +- scipy/optimize/meson.build | 2 +- scipy/sparse/linalg/_eigen/arpack/meson.build | 2 +- scipy/sparse/linalg/_isolve/meson.build | 2 +- scipy/sparse/linalg/_propack/meson.build | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scipy/integrate/meson.build b/scipy/integrate/meson.build index 97c85b99dcf4..1b38a9ed9f46 100644 --- a/scipy/integrate/meson.build +++ b/scipy/integrate/meson.build @@ -136,7 +136,7 @@ py3.extension_module('_vode', c_args: [numpy_nodepr_api, Wno_unused_variable], include_directories: [inc_np, inc_f2py], link_args: version_link_args, - dependencies: [lapack, fortranobject_dep], + dependencies: [lapack, blas, fortranobject_dep], install: true, link_language: 'fortran', subdir: 'scipy/integrate' diff --git a/scipy/optimize/_trlib/meson.build b/scipy/optimize/_trlib/meson.build index 66fa0a39205c..c2cabb6c9796 100644 --- a/scipy/optimize/_trlib/meson.build +++ b/scipy/optimize/_trlib/meson.build @@ -8,7 +8,7 @@ _trlib = py3.extension_module('_trlib', 'trlib_tri_factor.c' ], c_args: cython_c_args, - dependencies: [lapack], + dependencies: [lapack, blas], include_directories: [ inc_np, '../../_lib', diff --git a/scipy/optimize/meson.build b/scipy/optimize/meson.build index 05db6a680404..595febb1d896 100644 --- a/scipy/optimize/meson.build +++ b/scipy/optimize/meson.build @@ -109,7 +109,7 @@ _lbfgsb = py3.extension_module('_lbfgsb', fortran_args: fortran_ignore_warnings, include_directories: [inc_np, inc_f2py], link_args: version_link_args, - dependencies: [lapack, fortranobject_dep], + dependencies: [lapack, blas, fortranobject_dep], install: true, link_language: 'fortran', subdir: 'scipy/optimize' diff --git a/scipy/sparse/linalg/_eigen/arpack/meson.build b/scipy/sparse/linalg/_eigen/arpack/meson.build index bc77d411aabb..5b469a37914f 100644 --- a/scipy/sparse/linalg/_eigen/arpack/meson.build +++ b/scipy/sparse/linalg/_eigen/arpack/meson.build @@ -103,7 +103,7 @@ _arpack = py3.extension_module('_arpack', link_with: [arpack_lib], include_directories: [incdir_numpy, incdir_f2py], link_args: version_link_args, - dependencies: [lapack, fortranobject_dep], + dependencies: [lapack, blas, fortranobject_dep], install: true, link_language: 'fortran', subdir: 'scipy/sparse/linalg/_eigen/arpack' diff --git a/scipy/sparse/linalg/_isolve/meson.build b/scipy/sparse/linalg/_isolve/meson.build index 3009201862af..9af9fa146e6e 100644 --- a/scipy/sparse/linalg/_isolve/meson.build +++ b/scipy/sparse/linalg/_isolve/meson.build @@ -74,7 +74,7 @@ _iterative = py3.extension_module('_iterative', fortran_args: fortran_ignore_warnings, include_directories: [inc_np, inc_f2py], link_args: version_link_args, - dependencies: [lapack, fortranobject_dep], + dependencies: [lapack, blas, fortranobject_dep], install: true, link_language: 'fortran', subdir: 'scipy/sparse/linalg/_isolve' diff --git a/scipy/sparse/linalg/_propack/meson.build b/scipy/sparse/linalg/_propack/meson.build index 745d010ceb0a..898ecfb6b9be 100644 --- a/scipy/sparse/linalg/_propack/meson.build +++ b/scipy/sparse/linalg/_propack/meson.build @@ -109,7 +109,7 @@ foreach ele: elements link_with: propack_lib, c_args: ['-U_OPENMP', _cpp_Wno_cpp], fortran_args: _fflag_Wno_maybe_uninitialized, - dependencies: [lapack, fortranobject_dep], + dependencies: [lapack, blas, fortranobject_dep], include_directories: [inc_np, inc_f2py], link_args: version_link_args, install: true, From e851779c273bec474bf06bf2586e8e6614f50ecd Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sun, 5 Feb 2023 18:50:15 -0500 Subject: [PATCH 20/28] CI: Don't run Mypy with Cygwin Meson Linux-Meson already runs MyPy and should catch all errors. I don't think that would catch many errors that Linux wouldn't. Also, there's 17 errors in scipy.stats I don't feel like dealing with. --- .github/workflows/cygwin_meson.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 22bdb5d808f0..bd7e4f8542b1 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -111,14 +111,6 @@ jobs: python check_installation.py ${{ env.INSTALLDIR }} ./check_pyext_symbol_hiding.sh ../build popd - - name: Mypy - shell: bash.exe -eo pipefail -o igncr "{0}" - run: | - export PATH="/usr/local/bin:/usr/bin:/bin:/usr/lib/lapack" - # Packages that are only needed for their annotations - python -m pip install -r mypy_requirements.txt - python -m pip install types-psutil pybind11 sphinx - python -u dev.py mypy - name: Test SciPy shell: bash.exe -eo pipefail -o igncr "{0}" run: | From 19058034e676759079a8135c1f93ee5c33805480 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Sun, 5 Feb 2023 20:18:04 -0500 Subject: [PATCH 21/28] CI: Cygwin: Add an explicit "Does this import" test. --- .github/workflows/cygwin_meson.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index bd7e4f8542b1..009db368fd71 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -111,6 +111,13 @@ jobs: python check_installation.py ${{ env.INSTALLDIR }} ./check_pyext_symbol_hiding.sh ../build popd + - name: Check import + shell: bash.exe -eo pipefail -o igncr "{0}" + run: | + export PATH="/usr/local/bin:/usr/bin:/bin:/usr/lib/lapack" + pushd build + python -vvv -d "import scipy" + popd - name: Test SciPy shell: bash.exe -eo pipefail -o igncr "{0}" run: | From caa3b747c142a4b1cccab8ac1328b2aa82901f47 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Mon, 6 Feb 2023 10:31:42 -0500 Subject: [PATCH 22/28] CI: Properly set PYTHONPATH for import test. --- .github/workflows/cygwin_meson.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 009db368fd71..defff1bddd73 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -115,9 +115,12 @@ jobs: shell: bash.exe -eo pipefail -o igncr "{0}" run: | export PATH="/usr/local/bin:/usr/bin:/bin:/usr/lib/lapack" - pushd build + pushd build-install + export PYTHONPATH="$(pwd)/lib/python3.${{ matrix.python-minor-version }}/site-packages/" + ls ${PYTHONPATH} ${PYTHONPATH}/scipy/* python -vvv -d "import scipy" popd + - name: Test SciPy shell: bash.exe -eo pipefail -o igncr "{0}" run: | From cbb27c8bf8110e323e8db524831728ef1e951db5 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Mon, 6 Feb 2023 16:11:49 -0500 Subject: [PATCH 23/28] CI,FIX: Fix scipy import check. I forgot the -c to say the args were code, not a file. --- .github/workflows/cygwin_meson.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index defff1bddd73..177f484d8c51 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -118,7 +118,7 @@ jobs: pushd build-install export PYTHONPATH="$(pwd)/lib/python3.${{ matrix.python-minor-version }}/site-packages/" ls ${PYTHONPATH} ${PYTHONPATH}/scipy/* - python -vvv -d "import scipy" + python -vvv -d -c "import scipy" popd - name: Test SciPy From 29778dcd5c222887552040cc888056c8bc51af2e Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Mon, 6 Feb 2023 18:51:13 -0500 Subject: [PATCH 24/28] BLD: Cygwin: Set Netlib reference as default BLAS/LAPACK. There are no prebuilt development files for OpenBLAS, but linking against the Netlib reference BLAS/LAPack files will usually pull in the OpenBLAS BLAS at runtime. I feel making people build and install OpenBLAS before they can successfully run "pip install scipy" is the kind of thing SciPy is trying to move away from. --- dev.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dev.py b/dev.py index 1594931996e0..c5659cedb4d5 100644 --- a/dev.py +++ b/dev.py @@ -436,6 +436,13 @@ def setup_build(cls, dirs, args): raise RuntimeError("Can't build into non-empty directory " f"'{build_dir.absolute()}'") + if sys.platform == "cygwin": + # Cygwin only has netlib lapack, but can link against + # OpenBLAS rather than netlib blas at runtime. There is + # no libopenblas-devel to enable linking against + # openblas-specific functions or OpenBLAS Lapack + cmd.extend(["-Dlapack=lapack", "-Dblas=blas"]) + build_options_file = ( build_dir / "meson-info" / "intro-buildoptions.json") if build_options_file.exists(): From ea3536db7172fbd0d50557e78c0d36ba6b02f68b Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Tue, 7 Feb 2023 00:10:29 -0500 Subject: [PATCH 25/28] BLD: Cygwin: Rebase libraries after dev.py install. --- dev.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dev.py b/dev.py index c5659cedb4d5..26f46274ec4c 100644 --- a/dev.py +++ b/dev.py @@ -554,6 +554,11 @@ def install_project(cls, dirs, args): with open(dirs.installed / ".gitignore", "w") as f: f.write("*") + if sys.platform == "cygwin": + rebase_cmd = ["/usr/bin/rebase", "--database", "--oblivious"] + rebase_cmd.extend(Path(dirs.installed).glob("**/*.dll")) + subprocess.check_call(rebase_cmd) + print("Installation OK") return From 0091be6c2caf04d2720b5901528efc52c5eabf4f Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Tue, 7 Feb 2023 10:06:40 -0500 Subject: [PATCH 26/28] CI,FIX: Cygwin: Include failing imports in import test It skipped this, before. --- .github/workflows/cygwin_meson.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 177f484d8c51..7fb22a587a87 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -118,7 +118,7 @@ jobs: pushd build-install export PYTHONPATH="$(pwd)/lib/python3.${{ matrix.python-minor-version }}/site-packages/" ls ${PYTHONPATH} ${PYTHONPATH}/scipy/* - python -vvv -d -c "import scipy" + python -vvv -d -c "import scipy.linalg" popd - name: Test SciPy From db9ae7ce865362da73e42432f8a84a1971dd61c0 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Tue, 7 Feb 2023 12:53:10 -0500 Subject: [PATCH 27/28] CI,DBG: Allow manual trigger of Cygwin-Meson workflow --- .github/workflows/cygwin_meson.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cygwin_meson.yml b/.github/workflows/cygwin_meson.yml index 7fb22a587a87..a24db6c56941 100644 --- a/.github/workflows/cygwin_meson.yml +++ b/.github/workflows/cygwin_meson.yml @@ -13,6 +13,7 @@ on: branches: - main - maintenance/** + workflow_dispatch: permissions: contents: read # to fetch code (actions/checkout) From 6d9ea8d981ff99ba966b51fcea91e8a0dbf02292 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Fri, 17 Feb 2023 10:03:29 -0500 Subject: [PATCH 28/28] BLD,BUG: Ensure proper dependency order for Lapack/BLAS. Lapack depends on BLAS, so BLAS should be later in the dependency list. --- scipy/linalg/meson.build | 6 +++--- scipy/sparse/linalg/_dsolve/meson.build | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scipy/linalg/meson.build b/scipy/linalg/meson.build index c0f446e092fd..241a80272be2 100644 --- a/scipy/linalg/meson.build +++ b/scipy/linalg/meson.build @@ -55,7 +55,7 @@ py3.extension_module('_fblas', c_args: numpy_nodepr_api, include_directories: [inc_np, inc_f2py], link_args: version_link_args, - dependencies: [blas, lapack, fortranobject_dep], + dependencies: [lapack, blas, fortranobject_dep], install: true, link_language: 'fortran', subdir: 'scipy/linalg' @@ -204,7 +204,7 @@ cython_blas = py3.extension_module('cython_blas', link_with: fwrappers, include_directories: inc_np, link_args: version_link_args, - dependencies: [blas, lapack], + dependencies: [lapack, blas], install: true, link_language: 'fortran', subdir: 'scipy/linalg' @@ -220,7 +220,7 @@ cython_lapack = py3.extension_module('cython_lapack', link_with: fwrappers, include_directories: inc_np, link_args: version_link_args, - dependencies: [blas, lapack], + dependencies: [lapack, blas], install: true, link_language: 'fortran', subdir: 'scipy/linalg' diff --git a/scipy/sparse/linalg/_dsolve/meson.build b/scipy/sparse/linalg/_dsolve/meson.build index bf16643fe94c..4634cae247f8 100644 --- a/scipy/sparse/linalg/_dsolve/meson.build +++ b/scipy/sparse/linalg/_dsolve/meson.build @@ -199,7 +199,7 @@ _superlu = py3.extension_module('_superlu', link_with: [superlu_lib], include_directories: [incdir_numpy, 'SuperLU/SRC'], link_args: version_link_args, - dependencies: [blas, lapack], + dependencies: [lapack, blas], install: true, subdir: 'scipy/sparse/linalg/_dsolve' )