neuroinformatics-unit / movement

Python tools for analysing body movements across space and time
http://movement.neuroinformatics.dev
BSD 3-Clause "New" or "Revised" License
77 stars 7 forks source link

Add binder configuration and dependencies #142

Closed niksirbi closed 3 months ago

niksirbi commented 3 months ago

Description

What is this PR

Why is this PR needed?

Would be nice for people to be able to interactively run our sphinx-gallery examples in the browser, without the need for installing anything.

What does this PR do? It configures sphinx-gallery to integrate with binder, as described in the relevant section of sphinx-gallery docs. It also adds an environment.yml file which specifies the dependencies needed for binder to run the examples. It was not possible to simply reuse the pyproject.toml or the docs/requirements.txt file for this purpose. This is probably not a bad thing, since the examples may rely on additional packages that are not among our dependencies, and sphinx-related dependencies (found in docs/requirements.txt) are not needed for binder to run the notebooks. So we have to live with (and maintain) an additional dependency file.

[!NOTE] Moreover, the binder environment.yml file will install the latest movement version from pip, which is probably fine, since the environment will be instantiated when someone fires up a binder instance (not during the docs build). This is fine I think, since we anyway want all examples to work with every latest release of movement.

References

Closes #134

How has this PR been tested?

I'm not sure how to test it without merging this PR and releasing a new version. By building the examples locally, I could verify that the built jupyter notebooks are placed in the correct folder in the docs, and that the binder link appears within the examples (see screenshot).

Screenshot 2024-03-14 at 14 54 04

To actually run the examples, binder needs to get the notebooks from the gh-pages branch, which gets updated only when the docs are built anew (typically triggered by a new release)

Is this a breaking change?

No.

Does this PR require an update to the documentation?

If any features have changed, or have been added. Please explain how the documentation has been updated.

Checklist:

codecov[bot] commented 3 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 99.28%. Comparing base (a1afeef) to head (e9691bd).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #142 +/- ## ======================================= Coverage 99.28% 99.28% ======================================= Files 9 9 Lines 556 556 ======================================= Hits 552 552 Misses 4 4 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

sonarcloud[bot] commented 3 months ago

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

adamltyson commented 3 months ago

The binder image took a couple of tries to build, but looks to be working now :tada: