Skip to content

use a lockfile for "old" CI job - #13490

Merged
larsoner merged 98 commits into
mne-tools:mainfrom
drammock:old-ci
Feb 24, 2026
Merged

larsoner merged 98 commits into
mne-tools:mainfrom
drammock:old-ci

Conversation

@drammock

Copy link
Copy Markdown
Member

@tsbinns @nordme @CarinaFo @scott-huberty

Here's the PR with placeholders. I discussed with @larsoner and he prefers that we try uv first; if it doesn't work or is unweildy we can switch to pixi (see item 3 below for thoughts on this). In addition to the in-line comments, here are a few notes:

  1. (perhaps obviously) we'll need to create the lockfile first and commit it to the repo. It should go at tools/uv-ci-old.lock or similar
  2. For now the "old" environment will only be used on linux-64 systems, so when creating the lockfile we can skip adding support for other platforms.
  3. I'm a bit uncertain if uv.lock is actually going to work; AFAICT uv lock only works in uv's "project mode" where it writes a bunch of stuff to tool.uv.* tables in pyproject.toml. Right now we don't have such tables (and I don't think we should add them in this PR), so we may need to do something a bit unorthodoxed with uv (e.g., write our pins to requirements-ci-old.txt, use uv to convert that to pylock.toml format, and restore the environment from the pylock file). See if you can get it to work with uv, but also feel free to experiment with pixi to see if the flow is simpler/more natural that way.
  4. We need to think a bit about how to get mne installed (specifically, the local-to-the-CI clone of mne that reflects the PR being built). It may be possible to get a relative path in the lockfile, but if not, we may need omit mne in the lockfile and add/install the local-to-ci clone of MNE after the environment has been activated.

@drammock

Copy link
Copy Markdown
Member Author

hey all, here's a snippet based on what we worked out yesterday, for a script to parse pyproject.toml and generate a requirements file from it after hardening the pins:

from pathlib import Path

import requests
import tomllib
from packaging.requirements import Requirement
from packaging.specifiers import SpecifierSet

with open("/path/to/mne/python/pyproject.toml", "rb") as fid:
    toml = tomllib.load(fid)

deps = toml["project"]["dependencies"] + toml["dependency-groups"]["test"]
reqs = [Requirement(dep) for dep in deps]
pinned_reqs = [req for req in reqs if ">" in str(req.specifier)]
unpinned_reqs = list(set(reqs) - set(pinned_reqs))

# TODO triage handling of > vs >=  For now, just assert that we needn't worry
assert all([">=" in str(req) for req in pinned_reqs])
for req in pinned_reqs:
    req.specifier = SpecifierSet(str(req.specifier).replace(">=", "=="))

# TODO make sure pinned version isn't yanked

# recombine pinned and not-pinned
all_reqs = sorted(pinned_reqs + unpinned_reqs, key=str)

outfile = Path("/path/to/mne/python/tools/requirements-ci-old.txt")
outfile.write_text("\n".join([str(req) for req in all_reqs]))

After that we can in theory run this to get a pylock file:

uv pip compile tools/requirements-ci-old.txt --output-file tools/pylock-ci-old.toml --python-version 3.10
mkdir ~/Desktop/some_temp_dir
cd ~/Desktop/some_temp_dir
uv venv --python 3.10
uv pip sync /path/to/mne/python/tools/pylock-ci-old.toml --python-version 3.10

Note the TODO in the first script about pinned version being yanked; I get a warning about scipy 1.11.0 when doing the uv pip sync line. We'll need to figure out what to do about that. Feel free to try some things out and leave comments here saying what worked/didn't work (or open PRs into my branch if you want)

@CarinaFo

Copy link
Copy Markdown
Contributor

hey all, here's a snippet based on what we worked out yesterday, for a script to parse pyproject.toml and generate a requirements file from it after hardening the pins:

from pathlib import Path

import requests
import tomllib
from packaging.requirements import Requirement
from packaging.specifiers import SpecifierSet

with open("/path/to/mne/python/pyproject.toml", "rb") as fid:
    toml = tomllib.load(fid)

deps = toml["project"]["dependencies"] + toml["dependency-groups"]["test"]
reqs = [Requirement(dep) for dep in deps]
pinned_reqs = [req for req in reqs if ">" in str(req.specifier)]
unpinned_reqs = list(set(reqs) - set(pinned_reqs))

# TODO triage handling of > vs >=  For now, just assert that we needn't worry
assert all([">=" in str(req) for req in pinned_reqs])
for req in pinned_reqs:
    req.specifier = SpecifierSet(str(req.specifier).replace(">=", "=="))

# TODO make sure pinned version isn't yanked

# recombine pinned and not-pinned
all_reqs = sorted(pinned_reqs + unpinned_reqs, key=str)

outfile = Path("/path/to/mne/python/tools/requirements-ci-old.txt")
outfile.write_text("\n".join([str(req) for req in all_reqs]))

After that we can in theory run this to get a pylock file:

uv pip compile tools/requirements-ci-old.txt --output-file tools/pylock-ci-old.toml --python-version 3.10
mkdir ~/Desktop/some_temp_dir
cd ~/Desktop/some_temp_dir
uv venv --python 3.10
uv pip sync /path/to/mne/python/tools/pylock-ci-old.toml --python-version 3.10

Note the TODO in the first script about pinned version being yanked; I get a warning about scipy 1.11.0 when doing the uv pip sync line. We'll need to figure out what to do about that. Feel free to try some things out and leave comments here saying what worked/didn't work (or open PRs into my branch if you want)

regarding the uv pip compile command (uv 0.8.22 (ade2bdbd2 2025-09-23) : pylock-ci-old.toml throws an error:

Expected the output filename to start with pylock. and end with .toml (e.g., pylock.toml, pylock.dev.toml); pylock-ci-old.toml

I renamed the file to pylock.ci-old.toml, that fixed it

@tsbinns

tsbinns commented Jan 24, 2026

Copy link
Copy Markdown
Contributor

Have had a go at trying to sort this, here is what I found:

Fixed outdated uv version

An old uv version (0.4; current 0.9) was being used that didn't support the non-standard lockfile name. According to the astral-sh/setup-uv docs, if no version is specified (which it wasn't), it should default to the latest version, but clearly that wasn't happening. Perhaps because an old version of the action was being used (v1; current v7), it didn't support installing uv > 0.4. Have updated the action to v7 and set a minimum version of 0.9 for good measure.

Fixed not being able to sync from some lockfiles

In the SPEC0 job that we would use to create the lockfile, the command had been switched from uv pip compile to uv export. However, the lockfile from export gives the following error in github_actions_dependencies.sh when trying to sync from it:

   Building mne @ file:///home/runner/work/mne-python/mne-python/tools
  × Failed to build `mne @
  │ file:///home/runner/work/mne-python/mne-python/tools`
  ╰─▶ /home/runner/work/mne-python/mne-python/tools/ does not appear to be a
      Python project, as neither `pyproject.toml` nor `setup.py` are present
      in the directory

Seems only the lockfile from uv pip compile works in the way we are trying to sync the env. For that reason, I switched back to creating the lockfile this way.

Fixed missing pip dependency

Also in github_actions_dependencies.sh, we need to add pip to the env, otherwise the subsequent python -m pip install $STD_ARGS $INSTALL_ARGS .$EXTRAS $GROUP_ARG doesn't work. If we use uv pip install pip rather than uv add pip, we can do this without affecting the versions of our 'old' dependencies we get from syncing to the lockfile.

Need to add minimum version pins for test dependencies

In the existing lockfile, there are no test dependencies. If we include --group test in the uv pip compile command, we get these dependencies included, but --resolution lowest-direct means we get some very outdated versions which fail to resolve. I saw there have already been some additional minimum version pins added to the base dependencies. @drammock, can we do the same for the test dependencies causing issues?

Unfortunately, installing these from pip in github_actions_dependencies.sh overwrites some of our 'old' dependency pins, so that doesn't work. An alternative is to write another tools script that modifies the lockfile for a sort of custom resolution, but that'll be a lot more work than just setting some minimum versions for test dependencies.

@drammock

Copy link
Copy Markdown
Member Author

In the existing lockfile, there are no test dependencies. If we include --group test in the uv pip compile command, we get these dependencies included, but --resolution lowest-direct means we get some very outdated versions which fail to resolve. I saw there have already been some additional minimum version pins added to the base dependencies. @drammock, can we do the same for the test dependencies causing issues?

Yes please add sensible lower pins to test deps as needed

@tsbinns

tsbinns commented Feb 23, 2026

Copy link
Copy Markdown
Contributor

@drammock That's all of the unresolved comments addressed. Went through the diff again and cleaned up some things I noticed, and I think this is looking good. Please could I get a review.

@drammock drammock left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tsbinns could you push a (possibly empty) commit that includes @CarinaFo, @scott-huberty, and @nordme each in a Co-authored-by trailer line? All of them helped me pair-program the initial draft of this PR and I'm not certain I remembered to insert such a trailer in early commits.

Besides that, just a few nitpicks, see below. Thanks for seeing this through!

Comment thread pyproject.toml Outdated
Comment thread pyproject.toml Outdated
Comment thread tools/github_actions_dependencies.sh
Comment thread tools/github_actions_check_old_lockfile.py Outdated
Comment thread tools/github_actions_check_old_env.py
Comment thread tools/github_actions_check_old_env.py Outdated
@larsoner

Copy link
Copy Markdown
Member

One question: you added cache-dependency-glob: **/pylock.ci-old.toml to the uv setup. If I understand, if this lockfile changes, the cache is invalidated and gets reconstructed. However, if caching is already enabled by default, does the cache not get updated in a way already if we change the lockfile and different packages get downloaded?

The idea is that the default value cached too many files (like pyproject.toml which could change for all sorts of other unrelated reasons), so would result in some errant cache misses. Just make sure this is set to some file that should change if and (ideally) only if the versions are bumped and we should be good. I assumed the pylock was one of those files but if it's another like a uv.lock or whatever that's okay

@tsbinns

tsbinns commented Feb 24, 2026

Copy link
Copy Markdown
Contributor

The idea is that the default value cached too many files (like pyproject.toml which could change for all sorts of other unrelated reasons), so would result in some errant cache misses. Just make sure this is set to some file that should change if and (ideally) only if the versions are bumped and we should be good.

Ah, didn't realise uv used a default cache glob including a bunch of potential files.

I assumed the pylock was one of those files but if it's another like a uv.lock or whatever that's okay

Yeah right now only pylock.ci-old.toml matters. Should just remember to update the list if we go ahead with switching other runs to use uv with a lockfile.

@tsbinns

tsbinns commented Feb 24, 2026

Copy link
Copy Markdown
Contributor

could you push a (possibly empty) commit that includes @CarinaFo, @scott-huberty, and @nordme each in a Co-authored-by trailer line?

Sure, done in c731141

@drammock drammock left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

haha, can't approve "my own" PR. Thanks for doing most of the work @tsbinns !

@drammock

Copy link
Copy Markdown
Member Author

@larsoner I'll let you push the auto-merge button if you're satisfied

@larsoner
larsoner enabled auto-merge (squash) February 24, 2026 16:22
@larsoner
larsoner disabled auto-merge February 24, 2026 16:23
@larsoner
larsoner enabled auto-merge (squash) February 24, 2026 16:24
@larsoner
larsoner merged commit 4051f31 into mne-tools:main Feb 24, 2026
32 checks passed
sseth pushed a commit to xannnimal/mne-python that referenced this pull request Mar 25, 2026
Co-authored-by: Carina Forster <[email protected]>
Co-authored-by: Thomas S. Binns <[email protected]>
Co-authored-by: Scott Huberty <[email protected]>
Co-authored-by: Erica Peterson <[email protected]>
Co-authored-by: Eric Larson <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
@drammock
drammock deleted the old-ci branch April 22, 2026 16:21
harrisonritz added a commit to harrisonritz/mne-python that referenced this pull request May 27, 2026
* [pre-commit.ci] pre-commit autoupdate (mne-tools#13646)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* Fix and extend anonymize_info (mne-tools#13647)

* Fix epochs.plot() scrollbar issue (mne-tools#13654)

* ENH: Add optional channel name overlay to plot_alignment (mne-tools#13570)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel McCloy <[email protected]>

* Fix docstrings for get_data() (mne-tools#13652)

* DOC: Add detail to make_watershed_bem volume parameter (mne-tools#13658)

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13663)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* update maintainers lists (mne-tools#13631)

* Fixes make_scalp_surfaces (mne-tools#13024)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Marijn van Vliet <[email protected]>
Co-authored-by: Eric Larson <[email protected]>

* DOC: Add pybvrf [skip azp] [skip actions] (mne-tools#13665)

* Expose bem submodule (mne-tools#13669)

* Rename `Epochs.reset_drop_log_selection()` to `Epochs.reset_index()` (mne-tools#13675)

* MAINT: Work around NumPy deprecation (mne-tools#13677)

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13678)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* Allow reading alternative nasion label (Nz) from snirf file (mne-tools#13672)

Co-authored-by: Daniel McCloy <[email protected]>

* use a lockfile for "old" CI job (mne-tools#13490)

Co-authored-by: Carina Forster <[email protected]>
Co-authored-by: Thomas S. Binns <[email protected]>
Co-authored-by: Scott Huberty <[email protected]>
Co-authored-by: Erica Peterson <[email protected]>
Co-authored-by: Eric Larson <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Fix bad cross-ref syntax (mne-tools#13690)

* Doc- clarify return types as instance of original type (mne-tools#13674)

Co-authored-by: Marijn van Vliet <[email protected]>

* update partner institution list (mne-tools#13668)

* MAINT: Update code credit (mne-tools#13709)

Co-authored-by: Eric Larson <[email protected]>

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13716)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* DOC: clarify index mismatch in Epochs.drop when epochs are auto-dropped (mne-tools#13688)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Thomas S. Binns <[email protected]>
Co-authored-by: Daniel McCloy <[email protected]>

* ENH: support per-vertex opacity in 3D overlays (mne-tools#13706)

Co-authored-by: Eric Larson <[email protected]>

* FIX: Spelling [ci skip]

* Fix generation of lockfile for old job (mne-tools#13724)

* eyetrack should not count as picks=data (mne-tools#13723)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Scott Huberty <[email protected]>

* BUG: prevent NaNs in layered overlay compositing when resulting alpha is zero (mne-tools#13714)

Co-authored-by: Marijn van Vliet <[email protected]>

* Added HEDAnnotations (mne-tools#13059)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel McCloy <[email protected]>
Co-authored-by: Bru <[email protected]>
Co-authored-by: Stefan Appelhoff <[email protected]>

* [dependabot]: Bump the actions group with 2 updates (mne-tools#13728)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>
Co-authored-by: Eric Larson <[email protected]>

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13734)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>
Co-authored-by: Eric Larson <[email protected]>

* Raising meaningful warnings/errors for interpolate_bads, when supplie… (mne-tools#13518)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* BUG: Fix bug with default (mne-tools#13744)

* DOC: document first_samp behavior after crop and RawArray workaround (mne-tools#13685)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* FIX: do not print dev_head_t if not available (mne-tools#13741)

Co-authored-by: Eric Larson <[email protected]>

* FIX: Link [ci skip]

* Update name [ci skip]

* MAINT: cleanup Python 3.9 compat from __future__ import annotations (mne-tools#13749)

Co-authored-by: Marijn van Vliet <[email protected]>

* FIX: Handle hidden annotations during deletion in mpl plot (mne-tools#13703)

* ENH: Log scaling better (mne-tools#13758)

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13762)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>
Co-authored-by: Eric Larson <[email protected]>

* FORWARD: assert invariant for unreachable rref branch in _lead_dots (mne-tools#13764)

* Improve handling of dropped epochs in ica.plot_properties (mne-tools#13746)

* Support mixed hed annotations, concat and solve version registration (mne-tools#13736)

* ENH: compute CSD directly for upper-triangle channel pairs in Fourier/multitaper (mne-tools#13719)

* Extend plot_csd support to SEEG, ECoG, and DBS channel types (mne-tools#13713)

Co-authored-by: Thomas S. Binns <[email protected]>
Co-authored-by: Marijn van Vliet <[email protected]>

* Add example for Python/R interoperability using mass univariate t-test (mne-tools#13729)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Eric Larson <[email protected]>
Co-authored-by: Daniel McCloy <[email protected]>

* [BUG] `IndexError` in `set_montage()` for MEG+EEG recordings when digitization is skipped (mne-tools#13700)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* FIX: remap lowpass <= 0 to Nyquist in GDF/EDF reader (mne-tools#13769)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* FIX: correct spacing attribute in SourceMorph when src_to is provided (mne-tools#13687)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13779)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>
Co-authored-by: Eric Larson <[email protected]>

* fix bad xrefs in changelog (mne-tools#13783)

* DOC: fix invalid cross-reference in 13700 changelog entry (mne-tools#13785)

* FIX: raise clear ValueError when no ECG events found in create_ecg_ep… (mne-tools#13771)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel McCloy <[email protected]>

* ENH: Add native save and read support for SSD (mne-tools#13718)

Co-authored-by: Thomas S. Binns <[email protected]>

* ENH: Add variance regularization to F-statistic in f_oneway (mne-tools#13698)

Co-authored-by: Daniel McCloy <[email protected]>

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13802)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* ENH: allow per-channel colors in raw.plot via channel name dict keys (mne-tools#13765)

* Fix top and bottom clipping in raw.plot() (mne-tools#13787)

* MAINT: Update code credit (mne-tools#13805)

* FIX: short-circuit n_jobs=None to n_jobs=1 without Parallel setup (mne-tools#13777)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel McCloy <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* Replacing abstractclassmethod with abstractmethod (mne-tools#13806)

* ENH: expose font_file in Brain.add_text (mne-tools#13778)

Co-authored-by: Daniel McCloy <[email protected]>
Co-authored-by: Marijn van Vliet <[email protected]>

* ENH: add cmap parameter to Evoked.animate_topomap (mne-tools#13756)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* MAINT: Install SciPy pre (mne-tools#13807)

* ENH: Replace custom _whosmat_hdf5 with pymatreader.whosmat (mne-tools#13753)

* MAINT: Make sys_info more robust (mne-tools#13810)

* MAINT: Remove tomli, tomlsort, and ruff from `test` group (mne-tools#13809)

* BUG: Fix bug with fwd.info["dev_head_t"] setting (mne-tools#13619)

* ENH: Add initial BCI2000 .dat reader (preload-only) (mne-tools#13699)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Eric Larson <[email protected]>

* Add pybispectra as related software (mne-tools#13812)

* DOC: Fix type annotation for order parameter in Epochs.plot() (mne-tools#13639)

Co-authored-by: Daniel McCloy <[email protected]>
Co-authored-by: Scott Huberty <[email protected]>

* [dependabot]: Bump the actions group with 2 updates (mne-tools#13817)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* fixed some info fields in MEG interpolation across sensor types using… (mne-tools#13759)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* ENH: Add support for plotting ICA source timecourses in Report.add_ica (mne-tools#13697)

* FIX: correct sensor name ordering in plot_topomap when using Info object (mne-tools#13686)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* MAINT: Update dependency specifiers (mne-tools#13814)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Thomas S. Binns <[email protected]>

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13818)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* MAINT: Update code credit [ci skip] (mne-tools#13823)

Co-authored-by: Eric Larson <[email protected]>

* Update values to int64 (mne-tools#13548)

Co-authored-by: Eric Larson <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel McCloy <[email protected]>

* FIX: Installer links etc [ci skip]

* TST: Doc

* FIX: correct mode parameter in get_point_spread and get_cross_talk (mne-tools#13754)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* DOC: Add epoch quality example (mne-tools#13710)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Thomas S. Binns <[email protected]>

* Change syncing of dependencies with `README` (mne-tools#13832)

* DOC: Fix changelog [circle deploy] (mne-tools#13833)

Co-authored-by: Thomas S. Binns <[email protected]>

* Exclude private submodules (e.g., _edf) from Credits page (mne-tools#13673)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* BUG: Fix bug with backward compat [circle deploy] (mne-tools#13835)

* Fix bug with credit [circle deploy] (mne-tools#13841)

* ENH: broaden OPM coil handling for colocated topomaps (mne-tools#13825)

* DOC: Add artifact-cleaning note to epoch quality example. (mne-tools#13827)

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13839)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>
Co-authored-by: Eric Larson <[email protected]>

* FIX: Ref [skip azp] [skip actions]

* BUG: Fix bug with logging level (mne-tools#13843)

* fix env var in actions (mne-tools#13844)

Co-authored-by: Scott Huberty <[email protected]>

* TST: Add regression coverage for OPM topomap grouping via `plot_joint()` and `ICA` (mne-tools#13842)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Customize annotation colors (mne-tools#13838)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* DOC: Remove invalid ndarray option from colormap docstrings (mne-tools#13797)

* Fix versionadded for annotation_colors (mne-tools#13853)

* [dependabot]: Bump the actions group with 2 updates (mne-tools#13852)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13854)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* MAINT: Links [circle deploy] [skip azp] [skip actions]

* MAINT: add OPM overlap grouping helper (mne-tools#13847)

* FIX: Correct fNIRS interpolation with reordered picks (mne-tools#13856)

* MAINT: Modernize numpydoc checks (mne-tools#13865)

* Allow concatenating `BaseRaw` objects (mne-tools#13263)

Co-authored-by: Copilot <[email protected]>
Co-authored-by: Eric Larson <[email protected]>

* Add dark theme to Matplotlib-based raw.plot (mne-tools#13861)

Co-authored-by: Copilot <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* FIX: Check [ci skip]

* FIX: Sets [ci skip]

* Update towncrier change type descriptions (mne-tools#13829)

* fix numpydoc (missed YD01 ignore) (mne-tools#13868)

* FIX: correct label orientation for 0-90 deg nodes in plot_connectivity_circle (mne-tools#13855)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel McCloy <[email protected]>

* [dependabot]: Bump the actions group with 3 updates (mne-tools#13871)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13873)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* Add preload keyward argument to Inst.load_data() method call (mne-tools#13858)

* MAINT: Make test dir read-only (mne-tools#13872)

* BUG: improve FreeSurfer error message when executable not found (mne-tools#13874)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Eric Larson <[email protected]>

* add CI description to contributing guide (mne-tools#13837)

Co-authored-by: Daniel McCloy <[email protected]>

* Fix grammar [ci skip] (mne-tools#13881)

* FIX: handle missing __version__ in check_version (mne-tools#13870)

Co-authored-by: Claude Sonnet 4.6 <[email protected]>

* apply diataxis to tutorials/inverse/80_brainstorm_phantom_elekta.py (mne-tools#13584)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* add AI policy (mne-tools#13883)

* MAINT: Switch to pip for macOS and minimal jobs (mne-tools#13882)

* MAINT: Update code credit (mne-tools#13878)

* ENH:  Allow passing source detector distances to beer lambert law (mne-tools#13875)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* MAINT: Update for vtk deprecation (mne-tools#13886)

* ENH: Add overrides= parameter to read_raw_brainvision for BIDS header repair (mne-tools#13884)

* Fix bug with ica.plot_properties (mne-tools#13885)

* Fix `picks` being ignored in `Epochs.apply_function()` (mne-tools#13894)

* Update describing changes in contributing guide (mne-tools#13895)

* Add Zuna to related software list (mne-tools#13849)

Co-authored-by: Daniel McCloy <[email protected]>

* [dependabot]: Bump github/codeql-action from 4.35.2 to 4.35.3 in the actions group (mne-tools#13897)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>
Co-authored-by: Eric Larson <[email protected]>

* DOC: Fix apply_function shape description for Epochs (mne-tools#13891)

Co-authored-by: Eric Larson <[email protected]>

* Raise warning and errors when np.nan provided to mne.stats.permutation_t_test(). (mne-tools#13813)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Erica R Peterson <[email protected]>

* MAINT: Update dependency specifiers (mne-tools#13899)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Eric Larson <[email protected]>

* [dependabot]: Bump github/codeql-action from 4.35.3 to 4.35.4 in the actions group (mne-tools#13901)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13902)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* MAINT: Remove workaround for old PySide6 (mne-tools#13900)

* Add spherical montages (mne-tools#13903)

* [dependabot]: Bump the actions group with 2 updates (mne-tools#13918)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* [pre-commit.ci] pre-commit autoupdate (mne-tools#13919)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>

* MAINT: Update dependency specifiers (mne-tools#13916)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Eric Larson <[email protected]>

* BUG: set_eeg_reference list ch_type now applies per-type CAR by default (mne-tools#13920)

* FIX: Avoid iteration errors caused by None when reading Nihon Kohden .LOG files (mne-tools#13915)

* Fix drop_log dtype (mne-tools#13923)

* Doc: add guidance on taking over a stale pull request (mne-tools#13877)

Co-authored-by: Thomas S. Binns <[email protected]>
Co-authored-by: Daniel McCloy <[email protected]>

* FIX: Make set_eeg_reference working with a string for a channel name (mne-tools#13917)

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mne[bot] <[email protected]>
Co-authored-by: Clemens Brunner <[email protected]>
Co-authored-by: Aman Srivastava <[email protected]>
Co-authored-by: Daniel McCloy <[email protected]>
Co-authored-by: Himanshu Mahor <[email protected]>
Co-authored-by: Scott Huberty <[email protected]>
Co-authored-by: Victor Férat <[email protected]>
Co-authored-by: Marijn van Vliet <[email protected]>
Co-authored-by: Eric Larson <[email protected]>
Co-authored-by: Aniket <[email protected]>
Co-authored-by: Carina Forster <[email protected]>
Co-authored-by: Thomas S. Binns <[email protected]>
Co-authored-by: Erica Peterson <[email protected]>
Co-authored-by: Horizon_Architect_07 <[email protected]>
Co-authored-by: Pragnya <[email protected]>
Co-authored-by: Benedikt Ehinger <[email protected]>
Co-authored-by: Kay Robbins <[email protected]>
Co-authored-by: Bru <[email protected]>
Co-authored-by: Stefan Appelhoff <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Johannes Herforth <[email protected]>
Co-authored-by: Hansuja <[email protected]>
Co-authored-by: Simon Kern <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Akhilesh <[email protected]>
Co-authored-by: CHH <[email protected]>
Co-authored-by: Teon L Brooks <[email protected]>
Co-authored-by: Lifeng <[email protected]>
Co-authored-by: Kalle Mäkelä <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Pavel Popov <[email protected]>
Co-authored-by: Ayushi Satodiya <[email protected]>
Co-authored-by: Seth Bashford <[email protected]>
Co-authored-by: Baris <[email protected]>
Co-authored-by: Claude Sonnet 4.6 <[email protected]>
Co-authored-by: Jonas Mago <[email protected]>
Co-authored-by: Bhargav Kowshik <[email protected]>
Co-authored-by: Erica R Peterson <[email protected]>
Co-authored-by: Ben Tang <[email protected]>
Co-authored-by: myd7349 <[email protected]>
Co-authored-by: Michael Straube <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants