From ffb76c30b6efbb76885666c27df9a8e55020a0c3 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 08:41:40 -0400 Subject: [PATCH 01/15] CI: Try to create a Cygwin workflow. Let's see if this works better than the matplotlib one. --- .github/workflows/cygwin.yml | 51 ++++++++++++++++++++++++++++++++++++ 1 file changed, 51 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..b45ac00e6c2a --- /dev/null +++ b/.github/workflows/cygwin.yml @@ -0,0 +1,51 @@ +name: Linux 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 + steps: + - uses: cygwin/cygwin-install-action@v2 + packages: >- + gcc-g++ gcc-fortran liblapack-devel 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 + - run: git config --global core.autocrlf input + - uses: actions/checkout@v3 + with: + submodules: recursive + - 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 + python3.8 -m pip uninstall -y nose + cd .. + - name: Building SciPy + run: python3.8 -u runtests.py -g -j2 --build-only + - name: Test SciPy + run: | + python3.8 -u runtests.py -n -g -j2 -m fast -- -rfEX --durations=10 2>&1 | tee runtests.log + python3.8 tools/validate_runtests_log.py fast < runtests.log From 14b48704fc980ded57a2262d66d96cfa7cb68e2b Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 08:46:12 -0400 Subject: [PATCH 02/15] CI: Fix names in Cygwin workflow. --- .github/workflows/cygwin.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index b45ac00e6c2a..cdd7128b3bb9 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -1,4 +1,4 @@ -name: Linux Tests +name: Cygwin Tests on: push: @@ -45,7 +45,7 @@ jobs: cd .. - name: Building SciPy run: python3.8 -u runtests.py -g -j2 --build-only - - name: Test SciPy + - name: Testing SciPy run: | python3.8 -u runtests.py -n -g -j2 -m fast -- -rfEX --durations=10 2>&1 | tee runtests.log python3.8 tools/validate_runtests_log.py fast < runtests.log From 2218e489dd9ee8e3006c88fcaba6dbaf2c82802b Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 08:56:39 -0400 Subject: [PATCH 03/15] CI: Add more build dependencies. --- .github/workflows/cygwin.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index cdd7128b3bb9..f342109637b8 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -29,6 +29,7 @@ jobs: 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 - run: git config --global core.autocrlf input - uses: actions/checkout@v3 with: From ff938f1a027a6b16d5847a5e4ef097307d75d3a8 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 09:00:10 -0400 Subject: [PATCH 04/15] CI: Specify bash shell for Cygwin builds --- .github/workflows/cygwin.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index f342109637b8..cdddba4b14ea 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -45,6 +45,7 @@ jobs: python3.8 -m pip uninstall -y nose cd .. - name: Building SciPy + shell: bash.exe -eo pipefail -o igncr "{0}" run: python3.8 -u runtests.py -g -j2 --build-only - name: Testing SciPy run: | From c75a1258e83dfe03058d2ea614577857b9b542de Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 09:01:45 -0400 Subject: [PATCH 05/15] CI: Specify bash shell for Cygwin runtests. --- .github/workflows/cygwin.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index cdddba4b14ea..dbab5e2f2889 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -48,6 +48,7 @@ jobs: shell: bash.exe -eo pipefail -o igncr "{0}" run: python3.8 -u runtests.py -g -j2 --build-only - name: Testing SciPy + shell: bash.exe -eo pipefail -o igncr "{0}" run: | python3.8 -u runtests.py -n -g -j2 -m fast -- -rfEX --durations=10 2>&1 | tee runtests.log python3.8 tools/validate_runtests_log.py fast < runtests.log From 5fe3722400cef969a646bd366d5b4f9c4ba3bb58 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 09:03:26 -0400 Subject: [PATCH 06/15] CI: Fix syntax for cygwin-install-action --- .github/workflows/cygwin.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index dbab5e2f2889..0bd9109511cd 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -24,12 +24,13 @@ jobs: CYGWIN_NOWINPATH: 1 steps: - uses: cygwin/cygwin-install-action@v2 - packages: >- - gcc-g++ gcc-fortran liblapack-devel 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 + with: + packages: >- + gcc-g++ gcc-fortran liblapack-devel 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 - run: git config --global core.autocrlf input - uses: actions/checkout@v3 with: From 31f886773b103805ce42774e38f87999d2ecaff8 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 12:37:07 -0400 Subject: [PATCH 07/15] CI: Add /usr/local site-packages to PYTHONPATH --- .github/workflows/cygwin.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 0bd9109511cd..24501bc27ea3 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -22,6 +22,7 @@ jobs: SHELLOPTS: igncr CHERE_INVOKING: 1 CYGWIN_NOWINPATH: 1 + PYTHONPATH: /usr/local/lib/python3.8/site-packages steps: - uses: cygwin/cygwin-install-action@v2 with: From c3dbac6b5309ac9bcc9cc885598114c225ca6518 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 13:13:30 -0400 Subject: [PATCH 08/15] CI: Check NumPy install SciPy can't find it, so make sure it imports. --- .github/workflows/cygwin.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 24501bc27ea3..7de52dc9e859 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -31,7 +31,7 @@ jobs: 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 + meson ninja cmake make git - run: git config --global core.autocrlf input - uses: actions/checkout@v3 with: @@ -46,6 +46,9 @@ jobs: python3.8 -m pip install --upgrade mpmath gmpy2 pythran threadpoolctl python3.8 -m pip uninstall -y nose cd .. + - name: Check NumPy import + shell: bash.exe -eo pipefail -o igncr "{0}" + run: python3.8 -c "import numpy as np; print(np.__version__)" - name: Building SciPy shell: bash.exe -eo pipefail -o igncr "{0}" run: python3.8 -u runtests.py -g -j2 --build-only From f01bf72fe3192b92502e4a9bf0aac18520e126ff Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 14:57:30 -0400 Subject: [PATCH 09/15] BUG: Run checkout before installing Cygwin --- .github/workflows/cygwin.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 7de52dc9e859..6d94c35378c2 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -24,6 +24,10 @@ jobs: 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: >- @@ -32,10 +36,6 @@ jobs: python38-devel python38-pip python38-setuptools python38-wheel python38-numpy python38-cython python38-pytest meson ninja cmake make git - - run: git config --global core.autocrlf input - - uses: actions/checkout@v3 - with: - submodules: recursive - name: Install Python dependencies shell: bash.exe -eo pipefail -o igncr "{0}" run: | From dda0be23684d16481ded20c07661a902c94dbb07 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 15:20:02 -0400 Subject: [PATCH 10/15] CI: Update PATH to ensure lapack is present. The NumPy import can't find _umath_linalg again. --- .github/workflows/cygwin.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 6d94c35378c2..433a44188d92 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -31,7 +31,7 @@ jobs: - uses: cygwin/cygwin-install-action@v2 with: packages: >- - gcc-g++ gcc-fortran liblapack-devel libmpfr-devel ccache swig libmpc-devel + 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 @@ -48,12 +48,18 @@ jobs: cd .. - name: Check NumPy import shell: bash.exe -eo pipefail -o igncr "{0}" + env: + PATH: "/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" run: python3.8 -c "import numpy as np; print(np.__version__)" - name: Building SciPy shell: bash.exe -eo pipefail -o igncr "{0}" + env: + PATH: "/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" run: python3.8 -u runtests.py -g -j2 --build-only - name: Testing SciPy shell: bash.exe -eo pipefail -o igncr "{0}" + env: + PATH: "/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" run: | python3.8 -u runtests.py -n -g -j2 -m fast -- -rfEX --durations=10 2>&1 | tee runtests.log python3.8 tools/validate_runtests_log.py fast < runtests.log From c6fc253987fe28abee99c03783d970cd8875db31 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Wed, 25 May 2022 17:24:51 -0400 Subject: [PATCH 11/15] BUG: Change how I specify PATH CYGWIN_NOWINPATH=1 means the old way got ignored. --- .github/workflows/cygwin.yml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 433a44188d92..814539bd4de2 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -48,18 +48,12 @@ jobs: cd .. - name: Check NumPy import shell: bash.exe -eo pipefail -o igncr "{0}" - env: - PATH: "/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" - run: python3.8 -c "import numpy as np; print(np.__version__)" + 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: - PATH: "/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" - run: python3.8 -u runtests.py -g -j2 --build-only + run: /usr/bin/env PATH="/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" python3.8 -u runtests.py -g -j2 --build-only - name: Testing SciPy shell: bash.exe -eo pipefail -o igncr "{0}" - env: - PATH: "/bin:/usr/bin:/usr/local/bin:/usr/lib/lapack" run: | - python3.8 -u runtests.py -n -g -j2 -m fast -- -rfEX --durations=10 2>&1 | tee runtests.log + /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 2>&1 | tee runtests.log python3.8 tools/validate_runtests_log.py fast < runtests.log From 0e6f06c9bb6e2e8f151481996ee87da7b83c6204 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Thu, 26 May 2022 10:09:07 -0400 Subject: [PATCH 12/15] CI: Mark checkout as safe repo Idea stolen from numpy/numpy#21347 --- .github/workflows/cygwin.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 814539bd4de2..9751f2fb1149 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -36,6 +36,9 @@ jobs: 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: | From e02fb999940b782435e083c48d6452a913cf8b5d Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Thu, 26 May 2022 11:28:17 -0400 Subject: [PATCH 13/15] CI: Define _XOPEN_SOURCE for posix_memalign pythran should have taken care of this. --- .github/workflows/cygwin.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 9751f2fb1149..96a383496f29 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -54,6 +54,8 @@ jobs: 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: Testing SciPy shell: bash.exe -eo pipefail -o igncr "{0}" From aafcb0ec49d7490d093c6a0e0714d1075e3a145d Mon Sep 17 00:00:00 2001 From: Ralf Gommers Date: Wed, 8 Jun 2022 07:47:37 +0200 Subject: [PATCH 14/15] MAINT: update Boost submodule to include Cygwin fix Closes gh-15296 (now really) --- scipy/_lib/boost | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scipy/_lib/boost b/scipy/_lib/boost index d8626c9d2d93..2a1a7e920f39 160000 --- a/scipy/_lib/boost +++ b/scipy/_lib/boost @@ -1 +1 @@ -Subproject commit d8626c9d2d937abf6a38a844522714ad72e63281 +Subproject commit 2a1a7e920f39c44440d6908a080810abe9510f42 From b3e520a53178bfa5a68ad9d8177e4f9b03d706ff Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Fri, 10 Jun 2022 13:17:21 -0400 Subject: [PATCH 15/15] CI: Check pip editable install on SciPy main. This hasn't been working on other repositories, and started failing on the 1.6.x branch. --- .github/workflows/cygwin.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 96a383496f29..a5ff119db40f 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -57,6 +57,11 @@ jobs: 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: |