Beginner Confusion: Contributing- montage feature failing CI testing

Hi there!
I’m a student new to both MNE, and the world of code development - though I am coming from a neuroscience background. I wanted to practice the general skills for contributing to open sourced software, so I chose some mne-python Issues labeled Easy to work through. (There may be some course credit involved. :sweat_smile: )

Hopefully, this is the place to ask for help?
I keep getting stuck at CI test points unrelated to anything I changed, and I’m not sure where to ask for clarification. CI testing fails at Azure pipeline Make & Build steps, related to html_dev-noplot…and doc stuff… but my edit changed no existing code, and only added a minor ability in montage.py , an associated test, and relevant contribution documentation… there’s not too many places for this to have gone wrong.

Running tests on my computer (mac) doesn’t give me any issues, so I’m not certain how to fix this.
I’m not even certain where to look to start understanding what needs attention, here.

If anyone wants to take a look directly - [here’s the pull request] (ENH: #10542 Adds __eq__() to DigMontage class and updates tests. by TzionaN · Pull Request #10942 · mne-tools/mne-python · GitHub)

1 Like

As you saw, you will get replies and help for contribution directly on the PR. A couple of words to explain the failure, if you click on details for the failing test, you will get additional logs and information. In your case, the tests failing were all related to the documentation build which creates the website from the source code/repository using sphinx: Welcome — Sphinx documentation

The failing Azure pipeline has different steps. The one which failed was again related to the documentation: SphinxWindows, on the step Build dochttps://dev.azure.com/mne-tools/mne-python/_build/results?buildId=20802&view=logs&j=c04f1cb7-a28e-5e8a-4074-704b3a6c72b1&t=c5a3e5f7-2b1e-57e1-93fb-c99e1ea8bb1a

If you search the warnings/errors through the logs, you can then figure out what the issue was. In this case: https://dev.azure.com/mne-tools/mne-python/_build/results?buildId=20802&view=logs&j=c04f1cb7-a28e-5e8a-4074-704b3a6c72b1&t=c5a3e5f7-2b1e-57e1-93fb-c99e1ea8bb1a&l=1968

2 Likes

Ahhh I see, thank you! I really appreciate this explanation!

I got up to the second step here, inside the Azure pipeline log, but didn’t understand enough about the required formatting style to realize what needed to be fixed. Looks like I need to read through the Sphinx documentation a bit to sort through exactly what options I have for updating the documentation.

Thank you for pointing me to this!

For the error: py:func reference target not found: mne.channels.montage.DigMontage.__eq__ means that you tried to do a cross-reference (link) to the documentation of this method, which does not exist. This does not mean that the method does not exist, it means that the documentation does not include it. The ‘why’ may vary, in this case it’s probably because all special methods (with heading and trailing underscores) are not included. For instance, for a class you can see in the template mne-python/class.rst at main · mne-tools/mne-python · GitHub that the __eq__ and __ne__ methods are not included om the documented special-members.