Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
37ff4b3
WIP: Add pixi CI runner
scott-huberty Feb 22, 2026
9bf2882
FIX: syntax
scott-huberty Feb 22, 2026
e736f17
TST: test branch
scott-huberty Feb 22, 2026
07ff86e
FIX: skip cache for now
scott-huberty Feb 22, 2026
7fa7b7d
FIX: create pixi.toml
scott-huberty Feb 22, 2026
c26c307
check
scott-huberty Feb 22, 2026
1ff8624
try
scott-huberty Feb 22, 2026
03b2f29
dont install
scott-huberty Feb 22, 2026
8b73058
try again
scott-huberty Feb 22, 2026
962a49e
activate environment
scott-huberty Feb 22, 2026
05359d8
FIX: rm cruft
scott-huberty Feb 22, 2026
460c24a
debug
scott-huberty Feb 23, 2026
5a16daa
arg
scott-huberty Feb 23, 2026
dc25bec
more debug
scott-huberty Feb 23, 2026
d1c45e2
tests
scott-huberty Feb 23, 2026
14c0687
more
scott-huberty Feb 23, 2026
0376aae
try
scott-huberty Feb 23, 2026
a207603
hack: prepend path with executable
scott-huberty Feb 23, 2026
4f0770f
FIX: wrong var
scott-huberty Feb 23, 2026
e0d0865
FIX: shell
scott-huberty Feb 23, 2026
7c44343
Found the issue (login shell). Now try to remove previous hack
scott-huberty Feb 23, 2026
fe5a459
now debug failiing conda-ish CI's
scott-huberty Feb 23, 2026
c2f8a97
arggh GH YAML syntax doesnt allow double quotes
scott-huberty Feb 23, 2026
de6704c
try using shell wrapper
scott-huberty Feb 23, 2026
6e651d8
more
scott-huberty Feb 23, 2026
a46fc3b
remove branch
scott-huberty Feb 28, 2026
0e6aeaf
restore login shell
scott-huberty Mar 18, 2026
1ca07e7
specify manifest path
scott-huberty Mar 18, 2026
79291ff
do install
scott-huberty Mar 18, 2026
e246da4
revert tmp conda tweaks
scott-huberty Mar 18, 2026
c0e16a2
revert pixi toml creation
scott-huberty Mar 18, 2026
83c66f5
remove cruft
scott-huberty Mar 18, 2026
cb0f159
remove micromamba shell [skip actions] [skip az[] [ci skip]
scott-huberty Mar 18, 2026
d798ce9
checkpoint before rebase
scott-huberty Apr 7, 2026
43f4b96
Merge remote-tracking branch 'upstream/main' into pixi2
scott-huberty Apr 7, 2026
2422d58
add lock file
scott-huberty Apr 7, 2026
676a845
for debugging
scott-huberty Apr 7, 2026
b56aa5c
FIX: filename
scott-huberty Apr 7, 2026
ad9df3f
FIX: try toml
scott-huberty Apr 8, 2026
38dd081
guard
scott-huberty Apr 8, 2026
f40a537
cruft
scott-huberty Apr 8, 2026
e1dba77
temp debugging statements
scott-huberty Apr 8, 2026
9f747ae
triage
scott-huberty Apr 8, 2026
e10c59a
debug
scott-huberty Apr 8, 2026
ca03ac8
TMP: triage python/pytest command
scott-huberty Apr 8, 2026
bb8e9a7
Revert "TMP: triage python/pytest command"
scott-huberty Apr 8, 2026
336495e
reveal PATH
scott-huberty Apr 8, 2026
649e2b2
fix: cruft
scott-huberty Apr 8, 2026
a09b734
foo
scott-huberty Apr 8, 2026
ab625ba
bar
scott-huberty Apr 8, 2026
22ba9eb
baz
scott-huberty Apr 8, 2026
279fa65
shell-hook
scott-huberty Apr 8, 2026
e08d2cd
persist across steps?
scott-huberty Apr 8, 2026
25073c6
pipe
scott-huberty Apr 8, 2026
a3db53d
wrapper
scott-huberty Apr 8, 2026
ad04dec
oops.. typo
scott-huberty Apr 8, 2026
ed263ed
just use erics line of code and also run gh_actions_deps
scott-huberty Apr 9, 2026
92e30fa
Pixi run prefix
scott-huberty Apr 15, 2026
0cd364a
FIX: syntax
scott-huberty Apr 15, 2026
69d264c
try storing value without quotes
scott-huberty Apr 15, 2026
2a645f0
Merge remote-tracking branch 'upstream/main' into pixi2
scott-huberty Apr 15, 2026
b02265c
activate environment false
scott-huberty Apr 15, 2026
019ddf4
FIX: syntax
scott-huberty Apr 15, 2026
f4eab60
activate environment
scott-huberty Apr 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ concurrency:
cancel-in-progress: true
on: # yamllint disable-line rule:truthy
push:
branches: ["main", "maint/*"]
branches: ["main", "maint/*", "pixi2"]
pull_request:
branches: ["main", "maint/*"]
branches: ["main", "maint/*", "pixi2"]
# adapted from spyder-ide/spyder
workflow_dispatch:
inputs:
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
kind: mamba
- os: macos-15-intel # intel: Sequoia
python: '3.13'
kind: mamba
kind: pixi
- os: windows-latest
python: '3.11'
kind: mamba
Expand Down Expand Up @@ -123,6 +123,12 @@ jobs:
with:
python-version: ${{ matrix.python }}
if: startswith(matrix.kind, 'pip')
- uses: prefix-dev/setup-pixi@v0.9.4
with:
manifest-path: tools/pixi.toml
# https://github.com/prefix-dev/setup-pixi/issues/139
activate-environment: true
if: matrix.kind == 'pixi'
# Python (if conda)
- name: Fixes for conda
run: |
Expand Down
7 changes: 6 additions & 1 deletion tools/github_actions_dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
set -eo pipefail

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

STD_ARGS="--progress-bar off --upgrade"
INSTALL_ARGS="-e"
if [ ! -z "$CONDA_ENV" ]; then
Expand Down Expand Up @@ -39,6 +40,10 @@ elif [[ "${MNE_CI_KIND}" == "old" ]]; then
elif [[ "${MNE_CI_KIND}" == "pip" ]]; then
GROUP="test_extra"
EXTRAS="[full-pyside6]"
elif [[ "${MNE_CI_KIND}" == "pixi" ]]; then
GROUP="test_extra"
EXTRAS="[hdf5]"
INSTALL_ARGS=""
else
test "${MNE_CI_KIND}" == "pip-pre"
STD_ARGS="$STD_ARGS --pre"
Expand All @@ -61,6 +66,6 @@ else
echo "::group::Installing MNE in development mode using pip"
fi
set -x
python -m pip install $STD_ARGS $INSTALL_ARGS .$EXTRAS $GROUP_ARG
${PREFIX} python -m pip install $STD_ARGS $INSTALL_ARGS .$EXTRAS $GROUP_ARG
set +x
echo "::endgroup::"
5 changes: 3 additions & 2 deletions tools/github_actions_download.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/bin/bash -ef

# TODO: I think that DEPS is cruft. Its not set anywhere??
if [ "${MNE_CI_KIND}" != "minimal" ]; then
python -c 'import mne; mne.datasets.testing.data_path(verbose=True)';
python -c "import mne; mne.datasets.misc.data_path(verbose=True)";
${PREFIX} python -c 'import mne; mne.datasets.testing.data_path(verbose=True)';
${PREFIX} python -c "import mne; mne.datasets.misc.data_path(verbose=True)";
fi
11 changes: 8 additions & 3 deletions tools/github_actions_env_vars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,18 @@ elif [[ "$MNE_CI_KIND" == "old" ]]; then
echo "MNE_IGNORE_WARNINGS_IN_TESTS=true" | tee -a $GITHUB_ENV
echo "MNE_SKIP_NETWORK_TESTS=1" | tee -a $GITHUB_ENV
echo "MNE_QT_BACKEND=PyQt5" | tee -a $GITHUB_ENV
else # conda-like
else # conda-like or pixi
echo "Setting conda env vars for $MNE_CI_KIND"
if [[ "$MNE_CI_KIND" == "minimal" ]]; then
echo "CONDA_ENV=tools/environment_minimal.yml" | tee -a $GITHUB_ENV
echo "MNE_QT_BACKEND=PySide6" | tee -a $GITHUB_ENV
else # conda, mamba (use warning level for completeness)
echo "CONDA_ENV=environment.yml" | tee -a $GITHUB_ENV
else # conda, mamba, pixi (use warning level for completeness)
if [[ "$MNE_CI_KIND" == "pixi" ]]; then
echo "PREFIX=pixi run" | tee -a $GITHUB_ENV;
else
echo "CONDA_ENV=environment.yml" | tee -a $GITHUB_ENV
fi

echo "MNE_LOGGING_LEVEL=warning" | tee -a $GITHUB_ENV
echo "MNE_QT_BACKEND=PySide6" | tee -a $GITHUB_ENV
# TODO: Also need "|unreliable on GitHub Actions conda" on macOS, but omit for now to make sure the failure actually shows up
Expand Down
2 changes: 1 addition & 1 deletion tools/github_actions_infos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

which mne
mne sys_info -pd
python -c "import numpy; numpy.show_config()"
${PREFIX} python -c "import numpy; numpy.show_config()"
3 changes: 2 additions & 1 deletion tools/github_actions_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

set -eo pipefail


if [[ "${CI_OS_NAME}" == "ubuntu"* ]]; then
CONDITION="not (ultraslowtest or pgtest)"
else # macOS or Windows
Expand Down Expand Up @@ -35,5 +36,5 @@ if [[ ! -z "$CONDA_ENV" ]] && [[ "${RUNNER_OS}" != "Windows" ]] && [[ "${MNE_CI_
fi

set -x
pytest -m "${CONDITION}" --cov=mne --cov-report xml --color=yes --continue-on-collection-errors --junit-xml=$JUNIT_PATH -vv ${USE_DIRS}
${PREFIX} pytest -m "${CONDITION}" --cov=mne --cov-report xml --color=yes --continue-on-collection-errors --junit-xml=$JUNIT_PATH -vv ${USE_DIRS}
echo "Exited with code $?"
6,506 changes: 6,506 additions & 0 deletions tools/pixi-macos-intel.lock

Large diffs are not rendered by default.

75 changes: 75 additions & 0 deletions tools/pixi.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
[workspace]
authors = ["Scott Huberty <seh33@uw.edu>"] # TODO: fix this
channels = ["conda-forge"]
name = "mne"
platforms = ["osx-64"]
version = "0.1.0"

[tasks]

[dependencies]
python = ">=3.10"
antio = ">=0.5.0"
curryreader = ">=0.1.2"
darkdetect = "*"
decorator = "*"
defusedxml = "*"
dipy = "*"
edfio = ">=0.4.10"
eeglabio = "*"
filelock = ">=3.18.0"
h5io = ">=0.2.4"
h5py = "*"
imageio = ">=2.6.1"
imageio-ffmpeg = ">=0.4.1"
ipyevents = "*"
ipympl = "*"
ipython = "!=8.7.0"
ipywidgets = "*"
jinja2 = "*"
joblib = "*"
jupyter = "*"
lazy_loader = ">=0.3"
mamba = "*"
matplotlib = ">=3.8"
mffpy = ">=0.5.7"
mne-qt-browser = "*"
nibabel = "*"
nilearn = "*"
nomkl = "*"
numba = "*"
numpy = ">=1.26,<3"
openmeeg = ">=2.5.7"
packaging = "*"
pandas = ">=2.2"
pillow = "*"
pip = "*"
pooch = ">=1.5"
pyarrow = "*"
pybv = "*"
pymatreader = "*"
pyside6 = "!=6.9.1"
python-neo = "*"
python-picard = "*"
pyvista = ">=0.43"
pyvistaqt = ">=0.11"
qdarkstyle = "!=3.2.2"
qtpy = "*"
scikit-learn = ">=1.4"
scipy = ">=1.12"
sip = "*"
snirf = "*"
statsmodels = "*"
threadpoolctl = "*"
tqdm = "*"
traitlets = "*"
trame = "*"
trame-vtk = "*"
trame-vuetify = "*"
vtk = ">=9.2"
xlrd = "*"

[pypi-dependencies]
nest-asyncio2 = "*"
pymef = "*"
pyobjc-framework-cocoa = ">=5.2.0"
Loading