Skip to content

Check changelog author links in CI and clean up names - #14133

Merged
larsoner merged 7 commits into
mne-tools:mainfrom
larsoner:contributor-names
Aug 7, 2026
Merged

Check changelog author links in CI and clean up names#14133
larsoner merged 7 commits into
mne-tools:mainfrom
larsoner:contributor-names

Conversation

@larsoner

@larsoner larsoner commented Aug 4, 2026

Copy link
Copy Markdown
Member
  1. Add a CI check that a contributor has added their name properly
  2. Use links in our contributor page
  3. Add names that are in .mailmap to names.inc so that we can link on the credit page

This should help with new contributors adding links etc.

Natural next step is to make it autofix when people mess up some of this rather than just making a CI red. I'll do that next unless I should just push it here.

@larsoner
larsoner force-pushed the contributor-names branch from e45ab42 to 5e45860 Compare August 4, 2026 17:38
@larsoner

larsoner commented Aug 4, 2026

Copy link
Copy Markdown
Member Author

Comment thread doc/changes/names.inc Outdated
Comment on lines +29 to +32
.. _Andrew Dykstra: https://scholar.google.com/citations?hl=en&user=uCxafoMAAAAJ
.. _Andrew Gilbert: https://github.com/adgilbert
.. _Andrew Quinn: https://github.com/ajquinn
.. _Andrew R. Dykstra: https://scholar.google.com/citations?hl=en&user=uCxafoMAAAAJ

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate: Andrew (R.) Dykstra

Comment thread doc/changes/names.inc Outdated
Comment on lines +72 to +73
.. _Carlos de la Torre-Ortiz: https://github.com/c-torre
.. _Carlos de la Torre: https://github.com/c-torre

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate: Carlos de la Torre(-Ortiz)

Comment thread doc/changes/names.inc Outdated
Comment on lines 87 to 89
.. _Christoph Dinh: https://github.com/chdinh
.. _Christoph Huber-Huber: https://github.com/chsquare
.. _Christopher Dinh: https://github.com/chdinh

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate: Christoph(er) Dinh

Comment thread doc/changes/names.inc Outdated
Comment on lines 114 to 115
.. _Denis A. Engemann: https://denis-engemann.de
.. _Denis Engemann: https://denis-engemann.de

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate: Denis (A.) Engemann

Comment thread doc/changes/names.inc Outdated
Comment on lines 150 to 151
.. _Famous Raj Bhat: https://github.com/Famous077
.. _Famous077: https://github.com/Famous077

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate

Comment thread doc/changes/names.inc Outdated
Comment on lines 154 to 155
.. _Fede Raimondo: https://github.com/fraimondo
.. _Federico Raimondo: https://github.com/fraimondo

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate: Fede(rico) Raimondo

Comment thread doc/changes/names.inc Outdated
.. _Thomas Jochmann: https://github.com/tjochmann
.. _Thomas Moreau: https://github.com/tomMoral
.. _Thomas Radman: https://github.com/tradman
.. _Thomas S. Binns: https://github.com/tsbinns

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate: Thomas (S.) Binns

Comment thread doc/changes/names.inc Outdated
.. _Thomas Radman: https://github.com/tradman
.. _Thomas S. Binns: https://github.com/tsbinns
.. _Théo Castillo: https://github.com/theosorus
.. _Théodore Papadopoulo: https://github.com/papadop

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate: Theodore vs Théodore

Comment thread doc/changes/names.inc
Comment on lines +495 to 497
.. _Tim Gates: https://github.com/timgates42
.. _Timon Merk: https://github.com/timonmerk
.. _Timothy Gates: https://au.linkedin.com/in/tim-gates-0528a4199

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate? Tim(othy) Gates

Comment thread doc/changes/names.inc Outdated
Comment on lines +512 to +513
.. _Victor Ferat: https://github.com/vferat
.. _Victor Férat: https://github.com/vferat

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate (acute accent)

Comment thread doc/changes/names.inc Outdated
Comment on lines +527 to +528
.. _Zahra Aghajan: https://github.com/Zahra-M-Aghajan
.. _Zahra M. Aghajan: https://github.com/Zahra-M-Aghajan

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

duplicate: Zahra (M.) Aghajan

@larsoner

larsoner commented Aug 4, 2026

Copy link
Copy Markdown
Member Author

Oof that's a lot of dupes. I'll push something that would have caught them, and hopefully any future ones

@larsoner

larsoner commented Aug 4, 2026

Copy link
Copy Markdown
Member Author

Okay I adjusted the approach a bit, now:

  1. The changelog spelling is taken as ground truth for a person's name (that's where they, or we, set it) and has been ported over to .mailmap -- except where that spelling is a username or a name they've since changed, the human/current name wins
  2. Filled in missing emails in the JSONs for a contributor whose GH account is gone, so .mailmap can reach them
  3. Comparisons are now accent- and case-insensitive so Victor Férat/Victor Ferat can't coexist, and where the two spellings differed I kept the accented one and updated old changelog refs
  4. Added a similarity check: if I ever commit as "Eric Larsen" it'll fail CI, naming the pair, fixed by adding that address to .mailmap (or DISTINCT_NAMES if they really are two people). Nothing is flagged now
  5. file-contents-sorter compares raw bytes, so I wrote a tiny local hook keyed on the accent-stripped name
  6. Modernized a few old changelogs to make it so simpler searches worked there

Sound workable @drammock? If so I think the diff follows from there!

Comment thread doc/changes/v0.15.rst Outdated
- Add ``mne.channels.find_ch_connectivity`` that tries to infer the correct connectivity template using channel info. If no template is found, it computes the connectivity matrix using :class:`Delaunay <scipy.spatial.Delaunay>` triangulation of the 2d projected channel positions by `Jaakko Leppakangas`_

- Add IO support for EGI MFF format by `Jaakko Leppakangas`_ and `ramonapariciog`_
- Add IO support for EGI MFF format by `Jaakko Leppakangas`_ and `Ramonapariciog Apariciogarcia`_

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

this Name + Surname looks like a mistake. I think it's drawn from a changelog entry that the person themself wrote, so I guess even though it strongly points to a real name of "Ramón Aparicio-Garcia", I guess we live with it? The commit author (https://github.com/ramonapariciog) doesn't seem to have much online presence / doesn't thematically match with other folks with that name. (e.g., the most prominent one appears to be a soil scientist):
- https://www.researchgate.net/profile/Ramon-Aparicio-Garcia-2
- https://www.researchgate.net/profile/Ramon-Aparicio-Garcia
- https://orcid.org/0000-0002-8800-1416

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.

I'll revert to ramonapariciog, since that's the GH username and also the git config associated with the commit... seems safest

Comment thread doc/changes/v1.10.rst Outdated
- Update :func:`mne.viz.plot_alignment` and related functions to support PyVista deprecation of positional arguments by :newcontrib:`user27182`. (`#13277 <https://github.com/mne-tools/mne-python/pull/13277>`__)
- Fixed bug where :func:`mne.preprocessing.maxwell_filter_prepare_emptyroom` would not reliably identify meg channel types for matching bads across emptyroom and task, by :newcontrib:`Harrison Ritz`. (`#13280 <https://github.com/mne-tools/mne-python/pull/13280>`__)
- Fixed bug where saving FIFF files failed when ``info["subject_info"]["birthday"]`` was a :class:`pandas.Timestamp` instead of :class:`datetime.date`, by :newcontrib:`Laurent Le Mentec`. (`#13284 <https://github.com/mne-tools/mne-python/pull/13284>`__)
- Fixed bug where saving FIFF files failed when ``info["subject_info"]["birthday"]`` was a :class:`pandas.Timestamp` instead of :class:`datetime.date`, by :newcontrib:`Laurent Lementec`. (`#13284 <https://github.com/mne-tools/mne-python/pull/13284>`__)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

scratching my head a bit here. Your comment @larsoner said

The changelog spelling is taken as ground truth for a person's name [...] except where that spelling is a username or a name they've since changed

So here, the changelog version is getting overwritten with a new version of the name that looks like a mistake when viewed in context of what it's replacing (i.e., many French surnames have a "Le XXX" form).

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.

This is in v1.10 both ways and I took the wrong one 🤦 I'll fix it

Comment thread doc/changes/v1.3.rst
- Fix bug in :func:`mne.export.export_raw` when exporting raw to EDF with EDFLib when subject ``sex`` is missing (:gh:`11375` by :newcontrib:`Mark Alexander Henney`)
- Fix bug in :func:`mne.export.export_raw` when exporting raw to EDF with EDFLib when subject ``sex`` is missing (:gh:`11375` by :newcontrib:`Mark Henney`)
- Fix bugs in documentation of :func:`mne.time_frequency.tfr_array_multitaper` and related functions/methods (:gh:`11310` by :newcontrib:`Santeri Ruuskanen`)
- Fix bug to be able to customize legends when using :meth:`mne.viz.Brain.add_volume_labels` (:gh:`11289` by :newcontrib:`Mauricio Cespedes Tenorio`)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

another case where a valid-looking changelog entry (which presumably was written by the author) is getting changed.

Comment thread doc/changes/v1.3.rst
- Fix bug in documentation of :func:`mne.channels.make_dig_montage` (:gh:`11235` by :newcontrib:`Daniel Hasegan`)
- Add support for bad channel handling in :func:`mne.set_bipolar_reference` (:gh:`11245` by `Moritz Gerster`_, :newcontrib:`Dinara Issagaliyeva`, :newcontrib:`Jennifer Behnke`, :newcontrib:`Hakimeh Aslsardroud`, and :newcontrib:`Pavel Navratil`)
- Fix X coordinates of ear_left and ear_right in head outlines dict (:gh:`11255` by :newcontrib:`Tom Ma`)
- Add type checking for ``tmin`` and ``tmax`` arguments for ``crop`` (:gh:`11263` by :newcontrib:`Carlos de la Torre-Ortiz`).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

and another one

Comment thread tools/hooks/sort_contributor_names.py Outdated
"""Sort ignoring case and accents, so "Sébastien" lands next to "Sebastian".

A plain sort puts every accented character after "z", which exiles names
like "Théodore Papadopoulo" and "Zvi Baratz" to the end of the file.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
like "Théodore Papadopoulo" and "Zvi Baratz" to the end of the file.
like "Théodore" after "Thucydides".

@larsoner

larsoner commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

Okay I went through names.inc again and I think I'm happy with the names there @drammock . For what it's worth, formatting toward names.inc existing entries wasn't the only choice, for example:

Contributor upstream .mailmap upstream names.inc this PR picks their GitHub profile name
Gramfort Alexandre Gramfort Alex Gramfort Alex Gramfort Alexandre Gramfort
Engemann Denis A. Engemann Denis Engemann Denis Engemann Denis A. Engemann
Brooks Teon L Brooks Teon Brooks Teon Brooks Teon L Brooks
Bailey Christopher J. Bailey Chris Bailey Chris Bailey Christopher J. Bailey
Dinh Christoph Dinh Christopher Dinh Christopher Dinh Christoph Dinh
Raimondo Fede Raimondo Federico Raimondo Federico Raimondo Fede Raimondo
Wakeman Dan G. Wakeman Dan Wakeman Dan Wakeman (none set)

In theory, each of these columns was typically chosen on purpose by that person at some point (in gitconfig which is where most mailmap comes from, though some of those we added ourselves!), so it's hard to know the right option to pick. We could pick and choose one-by-one, or pick a column, or do something else. If we don't go the names.inc route, we'd have to rewrite: Gramfort 233, Engemann 137, Brooks 44, Raimondo 13, and Bailey / Dinh / Wakeman 0. Not the end of the world since it can be automated.

Personally I think as long as this seems like progress in the right direction, my inclination would be to merge and we can tweak individuals in follow-up PRs if needed. Things are at least more consistent now and enforced that way, so additional tweaks should be easier to get right hopefully!

@drammock

drammock commented Aug 6, 2026

Copy link
Copy Markdown
Member

Yeah progress is progress, and as long as there's a (documented) way for a contributor to override whatever the automated default is, I think we're ok. +1 for merge if it's ready then.

@larsoner
larsoner merged commit 2368722 into mne-tools:main Aug 7, 2026
29 checks passed
@larsoner
larsoner deleted the contributor-names branch August 7, 2026 00:56
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.

2 participants