From 4a8a0a9e9120752bc1309acab51bc3fb7f4a4693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 05:27:56 +0200 Subject: [PATCH 01/23] Debug with upterm --- .github/workflows/test.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 50238058..a274f018 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -241,6 +241,13 @@ jobs: run: | bash -el continuous_integration/install.sh + - name: Open SSH debug session + uses: owenthereal/action-upterm@v1 + if: ${{ always() }} + with: + limit-access-to-actor: true + wait-timeout-minutes: 60 + - name: Test library run: | bash -el continuous_integration/run_tests.sh From 5c152cdc4728b39ec843a6a5736c150adbc27df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 05:37:06 +0200 Subject: [PATCH 02/23] debug --- .github/workflows/test.yml | 2 +- continuous_integration/build_test_ext.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a274f018..2ea48d7f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -243,7 +243,7 @@ jobs: - name: Open SSH debug session uses: owenthereal/action-upterm@v1 - if: ${{ always() }} + if: ${{ failure() }} with: limit-access-to-actor: true wait-timeout-minutes: 60 diff --git a/continuous_integration/build_test_ext.sh b/continuous_integration/build_test_ext.sh index 4bc27696..767c4760 100755 --- a/continuous_integration/build_test_ext.sh +++ b/continuous_integration/build_test_ext.sh @@ -12,6 +12,7 @@ fi pushd tests/_openmp_test_helper rm -rf *.c *.so *.dylib build/ +type -a clang python setup_inner.py build_ext -i python setup_outer.py build_ext -i From 8af0d5990bf0b85ee28fd5c7f2b0d0f1fedbc98b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 05:41:49 +0200 Subject: [PATCH 03/23] tweak concurrency to cancel workflow --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2ea48d7f..61818182 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ on: # Cancel in-progress workflows when pushing # a new commit on the same branch concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: From 021105dd71f8a382894cef5bc69b0426939177b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 05:46:28 +0200 Subject: [PATCH 04/23] debug --- continuous_integration/build_test_ext.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/continuous_integration/build_test_ext.sh b/continuous_integration/build_test_ext.sh index 767c4760..cdfcd94e 100755 --- a/continuous_integration/build_test_ext.sh +++ b/continuous_integration/build_test_ext.sh @@ -12,6 +12,7 @@ fi pushd tests/_openmp_test_helper rm -rf *.c *.so *.dylib build/ +echo $PATH type -a clang python setup_inner.py build_ext -i python setup_outer.py build_ext -i From f44b65cc7579662d48eb02515d4240ba21cbb6ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 05:53:58 +0200 Subject: [PATCH 05/23] trigger From 6d21ed3a656d5a5c776bf64f7e9640ba0ed24c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 05:59:41 +0200 Subject: [PATCH 06/23] Avoid inheriting set -e? --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 61818182..769b9116 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -247,6 +247,7 @@ jobs: with: limit-access-to-actor: true wait-timeout-minutes: 60 + shell: bash --noprofile --norc - name: Test library run: | From ed263d47eb3dc45e7fe97146c1f1819826105b6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 06:16:16 +0200 Subject: [PATCH 07/23] debug --- continuous_integration/build_test_ext.sh | 2 +- continuous_integration/install.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) mode change 100644 => 100755 continuous_integration/install.sh diff --git a/continuous_integration/build_test_ext.sh b/continuous_integration/build_test_ext.sh index cdfcd94e..a3a282f7 100755 --- a/continuous_integration/build_test_ext.sh +++ b/continuous_integration/build_test_ext.sh @@ -12,7 +12,7 @@ fi pushd tests/_openmp_test_helper rm -rf *.c *.so *.dylib build/ -echo $PATH +echo "$PATH" type -a clang python setup_inner.py build_ext -i python setup_outer.py build_ext -i diff --git a/continuous_integration/install.sh b/continuous_integration/install.sh old mode 100644 new mode 100755 index 8e6523fc..07d62a62 --- a/continuous_integration/install.sh +++ b/continuous_integration/install.sh @@ -55,6 +55,8 @@ make_conda() { conda create -n testenv -q --yes python=$PYTHON_VERSION $TO_INSTALL conda activate testenv + echo "$PATH" + type -a clang } From 4e421d6bf72953eedc73c85a7b4a23783295f178 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 06:16:59 +0200 Subject: [PATCH 08/23] trigger From 2e40f13b22cbb82aa3abc80e19260a4c2480d6c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 06:21:03 +0200 Subject: [PATCH 09/23] trigger From 8abf650a9c53654d810a3c9f588d20cc14ea7125 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 06:40:15 +0200 Subject: [PATCH 10/23] Remove -el in inner shell --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 769b9116..9b844c12 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -239,7 +239,7 @@ jobs: - name: Install dependencies run: | - bash -el continuous_integration/install.sh + bash continuous_integration/install.sh - name: Open SSH debug session uses: owenthereal/action-upterm@v1 @@ -251,7 +251,7 @@ jobs: - name: Test library run: | - bash -el continuous_integration/run_tests.sh + bash continuous_integration/run_tests.sh - name: Upload test results uses: actions/upload-artifact@v4 From eaaa9a4611b64de1bf4c89736845a154874b0114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 06:44:58 +0200 Subject: [PATCH 11/23] try old source trick --- continuous_integration/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/continuous_integration/install.sh b/continuous_integration/install.sh index 07d62a62..b04e5c49 100755 --- a/continuous_integration/install.sh +++ b/continuous_integration/install.sh @@ -54,6 +54,7 @@ make_conda() { conda config --set solver libmamba conda create -n testenv -q --yes python=$PYTHON_VERSION $TO_INSTALL + source "$(conda info --base)/etc/profile.d/conda.sh" conda activate testenv echo "$PATH" type -a clang From d7b2f6c2eddbec59ca81e35ff07b06d2eb6eb880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 06:48:03 +0200 Subject: [PATCH 12/23] iter --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9b844c12..2229e93d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -239,7 +239,7 @@ jobs: - name: Install dependencies run: | - bash continuous_integration/install.sh + ./continuous_integration/install.sh - name: Open SSH debug session uses: owenthereal/action-upterm@v1 @@ -251,7 +251,7 @@ jobs: - name: Test library run: | - bash continuous_integration/run_tests.sh + ./continuous_integration/run_tests.sh - name: Upload test results uses: actions/upload-artifact@v4 From 1a49ecd35db32ec46c87a79a6cb92e3b1625af89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 06:51:21 +0200 Subject: [PATCH 13/23] fix tests now --- continuous_integration/run_tests.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/continuous_integration/run_tests.sh b/continuous_integration/run_tests.sh index 078bc89a..fb576fad 100755 --- a/continuous_integration/run_tests.sh +++ b/continuous_integration/run_tests.sh @@ -3,6 +3,7 @@ set -xe if [[ "$PACKAGER" == conda* ]] || [[ -z "$PACKAGER" ]]; then + source "$CONDA/etc/profile.d/conda.sh" conda activate testenv conda list elif [[ "$PACKAGER" == pip* ]]; then From 9c58b85083e8744541a6ca6e790e8a45a308603a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 06:54:44 +0200 Subject: [PATCH 14/23] fix for real --- continuous_integration/run_tests.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/continuous_integration/run_tests.sh b/continuous_integration/run_tests.sh index fb576fad..bc36f503 100755 --- a/continuous_integration/run_tests.sh +++ b/continuous_integration/run_tests.sh @@ -8,6 +8,7 @@ if [[ "$PACKAGER" == conda* ]] || [[ -z "$PACKAGER" ]]; then conda list elif [[ "$PACKAGER" == pip* ]]; then # we actually use conda to install the base environment: + source "$CONDA/etc/profile.d/conda.sh" conda activate testenv pip list elif [[ "$PACKAGER" == "ubuntu" ]]; then From dc73c3459b1d4d2fefb45e4b2deaac20d355bdac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 18:17:59 +0200 Subject: [PATCH 15/23] Fix Windows --- .github/workflows/test.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2229e93d..b6302ad7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -239,19 +239,19 @@ jobs: - name: Install dependencies run: | - ./continuous_integration/install.sh + bash -e continuous_integration/install.sh - - name: Open SSH debug session - uses: owenthereal/action-upterm@v1 - if: ${{ failure() }} - with: - limit-access-to-actor: true - wait-timeout-minutes: 60 - shell: bash --noprofile --norc + # - name: Open SSH debug session + # uses: owenthereal/action-upterm@v1 + # if: ${{ failure() }} + # with: + # limit-access-to-actor: true + # wait-timeout-minutes: 60 + # shell: bash --noprofile --norc - name: Test library run: | - ./continuous_integration/run_tests.sh + bash -e continuous_integration/run_tests.sh - name: Upload test results uses: actions/upload-artifact@v4 From 868e89f3acb412f68e968d999256ef65ff01edb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 18:32:21 +0200 Subject: [PATCH 16/23] fix? --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b6302ad7..cb9762ff 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -214,7 +214,7 @@ jobs: run: # Need to use this shell to get conda working properly. # See https://github.com/marketplace/actions/setup-miniconda#important - shell: ${{ matrix.os == 'windows-latest' && 'cmd /C CALL {0}' || 'bash -el {0}' }} + shell: 'bash -el {0}' steps: @@ -239,7 +239,7 @@ jobs: - name: Install dependencies run: | - bash -e continuous_integration/install.sh + ./continuous_integration/install.sh # - name: Open SSH debug session # uses: owenthereal/action-upterm@v1 @@ -251,7 +251,7 @@ jobs: - name: Test library run: | - bash -e continuous_integration/run_tests.sh + ./continuous_integration/run_tests.sh - name: Upload test results uses: actions/upload-artifact@v4 From 4104a66e403427a580bb8726be20ec4c62d88054 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 18:35:42 +0200 Subject: [PATCH 17/23] fix?? --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cb9762ff..4e04d4e2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -239,7 +239,7 @@ jobs: - name: Install dependencies run: | - ./continuous_integration/install.sh + source continuous_integration/install.sh # - name: Open SSH debug session # uses: owenthereal/action-upterm@v1 @@ -251,7 +251,7 @@ jobs: - name: Test library run: | - ./continuous_integration/run_tests.sh + source continuous_integration/run_tests.sh - name: Upload test results uses: actions/upload-artifact@v4 From 5e8af1d66c24452333e2d4eab7ca57486efd243d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 18:47:39 +0200 Subject: [PATCH 18/23] Move profile.d source before first use of conda command --- .github/workflows/test.yml | 4 ++-- continuous_integration/install.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4e04d4e2..cb9762ff 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -239,7 +239,7 @@ jobs: - name: Install dependencies run: | - source continuous_integration/install.sh + ./continuous_integration/install.sh # - name: Open SSH debug session # uses: owenthereal/action-upterm@v1 @@ -251,7 +251,7 @@ jobs: - name: Test library run: | - source continuous_integration/run_tests.sh + ./continuous_integration/run_tests.sh - name: Upload test results uses: actions/upload-artifact@v4 diff --git a/continuous_integration/install.sh b/continuous_integration/install.sh index b04e5c49..ca756911 100755 --- a/continuous_integration/install.sh +++ b/continuous_integration/install.sh @@ -46,6 +46,7 @@ make_conda() { TO_INSTALL="$TO_INSTALL python-gil" fi + source "$CONDA/etc/profile.d/conda.sh" # prevent mixing conda channels conda config --set channel_priority strict conda config --add channels $CHANNEL @@ -54,7 +55,6 @@ make_conda() { conda config --set solver libmamba conda create -n testenv -q --yes python=$PYTHON_VERSION $TO_INSTALL - source "$(conda info --base)/etc/profile.d/conda.sh" conda activate testenv echo "$PATH" type -a clang From 816d47f917e4f6cc09a820677429274b3debefc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 19:11:58 +0200 Subject: [PATCH 19/23] Add faulthandler to have debug info about Windows segfault --- continuous_integration/install.sh | 1 + continuous_integration/run_tests.sh | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/continuous_integration/install.sh b/continuous_integration/install.sh index ca756911..f1ae5b70 100755 --- a/continuous_integration/install.sh +++ b/continuous_integration/install.sh @@ -46,6 +46,7 @@ make_conda() { TO_INSTALL="$TO_INSTALL python-gil" fi + # Need this before first conda command source "$CONDA/etc/profile.d/conda.sh" # prevent mixing conda channels conda config --set channel_priority strict diff --git a/continuous_integration/run_tests.sh b/continuous_integration/run_tests.sh index bc36f503..97814b8d 100755 --- a/continuous_integration/run_tests.sh +++ b/continuous_integration/run_tests.sh @@ -21,7 +21,7 @@ fi python -m threadpoolctl -i numpy scipy.linalg tests._openmp_test_helper.openmp_helpers_inner # Introspect API scope: -PYTHONPATH=. python tests/empirical_scope_observation.py blas -PYTHONPATH=. python tests/empirical_scope_observation.py openmp +PYTHONPATH=. python -X faulthandler tests/empirical_scope_observation.py blas +PYTHONPATH=. python -X faulthandler tests/empirical_scope_observation.py openmp pytest -vlrxXs -W error -k "$TESTS" --junitxml=test_result.xml --cov=threadpoolctl --cov-report xml From 354d21e9ce5043a9b36b3b29bc78f939872779bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 19:44:23 +0200 Subject: [PATCH 20/23] Trigger CI 1 From dc4ee31b520af2f852c96ef6c5853c647d7884f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 20:00:08 +0200 Subject: [PATCH 21/23] Trigger CI 2 From b9b78c64d9bb4b6f49f3157433ba84ef90ffdb1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 20:15:10 +0200 Subject: [PATCH 22/23] Trigger CI 3 From 419f0c6e2a1c912b793a4c52076127801762ae01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Sun, 6 Sep 2026 20:33:27 +0200 Subject: [PATCH 23/23] wip --- .github/workflows/test.yml | 8 -------- continuous_integration/build_test_ext.sh | 2 -- continuous_integration/install.sh | 4 +--- continuous_integration/run_tests.sh | 4 ++-- 4 files changed, 3 insertions(+), 15 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cb9762ff..c0f55b6a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -241,14 +241,6 @@ jobs: run: | ./continuous_integration/install.sh - # - name: Open SSH debug session - # uses: owenthereal/action-upterm@v1 - # if: ${{ failure() }} - # with: - # limit-access-to-actor: true - # wait-timeout-minutes: 60 - # shell: bash --noprofile --norc - - name: Test library run: | ./continuous_integration/run_tests.sh diff --git a/continuous_integration/build_test_ext.sh b/continuous_integration/build_test_ext.sh index a3a282f7..4bc27696 100755 --- a/continuous_integration/build_test_ext.sh +++ b/continuous_integration/build_test_ext.sh @@ -12,8 +12,6 @@ fi pushd tests/_openmp_test_helper rm -rf *.c *.so *.dylib build/ -echo "$PATH" -type -a clang python setup_inner.py build_ext -i python setup_outer.py build_ext -i diff --git a/continuous_integration/install.sh b/continuous_integration/install.sh index f1ae5b70..745cc233 100755 --- a/continuous_integration/install.sh +++ b/continuous_integration/install.sh @@ -46,7 +46,7 @@ make_conda() { TO_INSTALL="$TO_INSTALL python-gil" fi - # Need this before first conda command + # Need to source conda.sh before first conda command source "$CONDA/etc/profile.d/conda.sh" # prevent mixing conda channels conda config --set channel_priority strict @@ -57,8 +57,6 @@ make_conda() { conda create -n testenv -q --yes python=$PYTHON_VERSION $TO_INSTALL conda activate testenv - echo "$PATH" - type -a clang } diff --git a/continuous_integration/run_tests.sh b/continuous_integration/run_tests.sh index 97814b8d..bc36f503 100755 --- a/continuous_integration/run_tests.sh +++ b/continuous_integration/run_tests.sh @@ -21,7 +21,7 @@ fi python -m threadpoolctl -i numpy scipy.linalg tests._openmp_test_helper.openmp_helpers_inner # Introspect API scope: -PYTHONPATH=. python -X faulthandler tests/empirical_scope_observation.py blas -PYTHONPATH=. python -X faulthandler tests/empirical_scope_observation.py openmp +PYTHONPATH=. python tests/empirical_scope_observation.py blas +PYTHONPATH=. python tests/empirical_scope_observation.py openmp pytest -vlrxXs -W error -k "$TESTS" --junitxml=test_result.xml --cov=threadpoolctl --cov-report xml