From 04a701db8d99ecc65f058da826fe62d0e93f2ca6 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 15 Jul 2025 13:31:31 -0400 Subject: [PATCH 01/10] WIP: Try free-threaded build [skip azp] [skip circle] --- .github/workflows/tests.yml | 44 ++++++++++++++-------------- tools/github_actions_dependencies.sh | 3 +- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 97928c95e30..2256164413f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -67,29 +67,29 @@ jobs: matrix: include: - os: ubuntu-latest - python: '3.13' + python: '3.13t' # free-threaded kind: pip - - os: ubuntu-latest - python: '3.12' - kind: pip-pre - - os: ubuntu-latest - python: '3.12' - kind: conda - - os: macos-latest # arm64 (Apple Silicon) - python: '3.12' - kind: mamba - - os: macos-13 # latest Intel release - python: '3.12' - kind: mamba - - os: windows-latest - python: '3.10' - kind: mamba - - os: ubuntu-latest - python: '3.10' - kind: minimal - - os: ubuntu-22.04 - python: '3.10' - kind: old + # - os: ubuntu-latest + # python: '3.12' + # kind: pip-pre + # - os: ubuntu-latest + # python: '3.12' + # kind: conda + # - os: macos-latest # arm64 (Apple Silicon) + # python: '3.12' + # kind: mamba + # - os: macos-13 # latest Intel release + # python: '3.12' + # kind: mamba + # - os: windows-latest + # python: '3.10' + # kind: mamba + # - os: ubuntu-latest + # python: '3.10' + # kind: minimal + # - os: ubuntu-22.04 + # python: '3.10' + # kind: old steps: - uses: actions/checkout@v4 with: diff --git a/tools/github_actions_dependencies.sh b/tools/github_actions_dependencies.sh index c44f1f5859e..b364645c0ba 100755 --- a/tools/github_actions_dependencies.sh +++ b/tools/github_actions_dependencies.sh @@ -21,7 +21,8 @@ if [ ! -z "$CONDA_ENV" ]; then STD_ARGS="--progress-bar off" fi elif [[ "${MNE_CI_KIND}" == "pip" ]]; then - INSTALL_KIND="full-pyside6,$INSTALL_KIND" + # This one is free-threaded so can't have numba as of 2025/07/15 + INSTALL_DEPS="nibabel scikit-learn numpydoc PySide6!=6.9.1 mne-qt-browser pandas h5io mffpy defusedxml numba pyvistaqt edfio mffpy" else test "${MNE_CI_KIND}" == "pip-pre" STD_ARGS="$STD_ARGS --pre" From e42e1370e7e058bb57a67ac1cc90cff4fca7e702 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 15 Jul 2025 14:37:50 -0400 Subject: [PATCH 02/10] MAINT: Try again [skip azp] [skip circle] --- pyproject.toml | 2 +- tools/github_actions_dependencies.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f970f02294a..aa4a6d274af 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -152,7 +152,6 @@ test = [ "ruff", "toml-sort", "tomli; python_version<'3.11'", - "twine", "vulture", "wheel", ] @@ -174,6 +173,7 @@ test_extra = [ "snirf", "sphinx-gallery", "statsmodels", + "twine", ] [project.urls] diff --git a/tools/github_actions_dependencies.sh b/tools/github_actions_dependencies.sh index b364645c0ba..ba58c53bc10 100755 --- a/tools/github_actions_dependencies.sh +++ b/tools/github_actions_dependencies.sh @@ -21,8 +21,8 @@ if [ ! -z "$CONDA_ENV" ]; then STD_ARGS="--progress-bar off" fi elif [[ "${MNE_CI_KIND}" == "pip" ]]; then - # This one is free-threaded so can't have numba as of 2025/07/15 - INSTALL_DEPS="nibabel scikit-learn numpydoc PySide6!=6.9.1 mne-qt-browser pandas h5io mffpy defusedxml numba pyvistaqt edfio mffpy" + # This one is free-threaded so can't have numba, h5py (or h5io), cryptography (thus twine) as of 2025/07/15 + INSTALL_DEPS="nibabel scikit-learn numpydoc PySide6!=6.9.1 mne-qt-browser pandas mffpy defusedxml numba pyvistaqt edfio mffpy" else test "${MNE_CI_KIND}" == "pip-pre" STD_ARGS="$STD_ARGS --pre" From 5a42e3462bd16cb6d30de888c94310476f171ec6 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 15 Jul 2025 14:46:40 -0400 Subject: [PATCH 03/10] FIX: Azure --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c6a36af99d0..d3b3ebe46f0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -52,7 +52,7 @@ stages: - bash: | set -eo pipefail python -m pip install --progress-bar off --upgrade pip build - python -m pip install --progress-bar off -ve .[hdf5,test] + python -m pip install --progress-bar off -ve .[hdf5,test,twine] python -m pip uninstall -yq pytest-qt # don't want to set up display, etc. for this pre-commit install --install-hooks displayName: Install dependencies From 225279764f93d5daefc6a83b61b316fdd2c76485 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 15 Jul 2025 14:47:53 -0400 Subject: [PATCH 04/10] FIX: Kind [skip azp] [skip actions] --- tools/github_actions_dependencies.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/github_actions_dependencies.sh b/tools/github_actions_dependencies.sh index ba58c53bc10..7034859b6f2 100755 --- a/tools/github_actions_dependencies.sh +++ b/tools/github_actions_dependencies.sh @@ -21,8 +21,10 @@ if [ ! -z "$CONDA_ENV" ]; then STD_ARGS="--progress-bar off" fi elif [[ "${MNE_CI_KIND}" == "pip" ]]; then - # This one is free-threaded so can't have numba, h5py (or h5io), cryptography (thus twine) as of 2025/07/15 + # This one is free-threaded so can't have numba as of 2025/07/15 INSTALL_DEPS="nibabel scikit-learn numpydoc PySide6!=6.9.1 mne-qt-browser pandas mffpy defusedxml numba pyvistaqt edfio mffpy" + # ... or h5py (or h5io), cryptography (thus twine) + INSTALL_KIND="test" else test "${MNE_CI_KIND}" == "pip-pre" STD_ARGS="$STD_ARGS --pre" From bc9f60139e0e850fb7ea94c0b1a0c6d49bda32f7 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 15 Jul 2025 14:53:13 -0400 Subject: [PATCH 05/10] FIX: Azure more --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d3b3ebe46f0..03fc12263d1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -52,7 +52,7 @@ stages: - bash: | set -eo pipefail python -m pip install --progress-bar off --upgrade pip build - python -m pip install --progress-bar off -ve .[hdf5,test,twine] + python -m pip install --progress-bar off -ve .[hdf5,test] twine python -m pip uninstall -yq pytest-qt # don't want to set up display, etc. for this pre-commit install --install-hooks displayName: Install dependencies From ad84ccf1676e23304c76afa54a5fe89dedf42b55 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 15 Jul 2025 14:54:34 -0400 Subject: [PATCH 06/10] TST: Ping [skip azp] [skip circle] From 5a7d1c41d5ac1a189a9651a2d2e05af5d8ad695c Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 15 Jul 2025 15:01:11 -0400 Subject: [PATCH 07/10] FIX: Name [skip azp] [skip circle] --- tools/github_actions_dependencies.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/github_actions_dependencies.sh b/tools/github_actions_dependencies.sh index 7034859b6f2..69ecf64ed7e 100755 --- a/tools/github_actions_dependencies.sh +++ b/tools/github_actions_dependencies.sh @@ -22,7 +22,7 @@ if [ ! -z "$CONDA_ENV" ]; then fi elif [[ "${MNE_CI_KIND}" == "pip" ]]; then # This one is free-threaded so can't have numba as of 2025/07/15 - INSTALL_DEPS="nibabel scikit-learn numpydoc PySide6!=6.9.1 mne-qt-browser pandas mffpy defusedxml numba pyvistaqt edfio mffpy" + INSTALL_ARGS="nibabel scikit-learn numpydoc PySide6!=6.9.1 mne-qt-browser pandas mffpy defusedxml numba pyvistaqt edfio mffpy" # ... or h5py (or h5io), cryptography (thus twine) INSTALL_KIND="test" else From 55fc5a43e0c8c6ce92820c0b82fc5d4965ed5a17 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 15 Jul 2025 15:08:21 -0400 Subject: [PATCH 08/10] FIX: No Qt [skip azp] [skip circle] --- tools/github_actions_dependencies.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/github_actions_dependencies.sh b/tools/github_actions_dependencies.sh index 69ecf64ed7e..3b1718b215a 100755 --- a/tools/github_actions_dependencies.sh +++ b/tools/github_actions_dependencies.sh @@ -21,8 +21,8 @@ if [ ! -z "$CONDA_ENV" ]; then STD_ARGS="--progress-bar off" fi elif [[ "${MNE_CI_KIND}" == "pip" ]]; then - # This one is free-threaded so can't have numba as of 2025/07/15 - INSTALL_ARGS="nibabel scikit-learn numpydoc PySide6!=6.9.1 mne-qt-browser pandas mffpy defusedxml numba pyvistaqt edfio mffpy" + # This one is free-threaded so can't have numba or PySide6/PyQt6 as of 2025/07/15 + INSTALL_ARGS="nibabel scikit-learn numpydoc pandas mffpy defusedxml edfio mffpy" # ... or h5py (or h5io), cryptography (thus twine) INSTALL_KIND="test" else @@ -35,3 +35,6 @@ echo "" echo "Installing test dependencies using pip" python -m pip install $STD_ARGS $INSTALL_ARGS .[$INSTALL_KIND] +if [[ "${MNE_CI_KIND}" == "pip" ]]; then + python -m pip uninstall pytest-qt +fi From 395f7089c825605a69c51e01c033fd97c4028616 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 15 Jul 2025 15:13:39 -0400 Subject: [PATCH 09/10] FIX: More [skip azp] [skip circle] --- tools/github_actions_dependencies.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/github_actions_dependencies.sh b/tools/github_actions_dependencies.sh index 3b1718b215a..29e323bf2cf 100755 --- a/tools/github_actions_dependencies.sh +++ b/tools/github_actions_dependencies.sh @@ -22,8 +22,9 @@ if [ ! -z "$CONDA_ENV" ]; then fi elif [[ "${MNE_CI_KIND}" == "pip" ]]; then # This one is free-threaded so can't have numba or PySide6/PyQt6 as of 2025/07/15 - INSTALL_ARGS="nibabel scikit-learn numpydoc pandas mffpy defusedxml edfio mffpy" - # ... or h5py (or h5io), cryptography (thus twine) + INSTALL_ARGS="nibabel scikit-learn numpydoc pandas defusedxml edfio" + # ... mffpy requires lxml, which tries to build from source and uses Cython (ugh) + # ... and also unavialble are h5py (or h5io), cryptography (thus twine) INSTALL_KIND="test" else test "${MNE_CI_KIND}" == "pip-pre" From ad092dff7f6fb778d0c84e645753e82bed7d3fba Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 15 Jul 2025 15:23:40 -0400 Subject: [PATCH 10/10] FIX: More [skip azp] [skip circle] --- tools/github_actions_dependencies.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/github_actions_dependencies.sh b/tools/github_actions_dependencies.sh index 29e323bf2cf..e119c560eb5 100755 --- a/tools/github_actions_dependencies.sh +++ b/tools/github_actions_dependencies.sh @@ -37,5 +37,5 @@ echo "" echo "Installing test dependencies using pip" python -m pip install $STD_ARGS $INSTALL_ARGS .[$INSTALL_KIND] if [[ "${MNE_CI_KIND}" == "pip" ]]; then - python -m pip uninstall pytest-qt + python -m pip uninstall -yq pytest-qt fi