-
Notifications
You must be signed in to change notification settings - Fork 16
Description
Hi @scverse/core-devs,
I think we all agree that (in one form or the other) our tutorials will be based on jupyter notebooks.
But how do we render them? I see the following requirements
- They should be available all from one nice looking website
- There should be some sort of interactivity (i.e. the possibility to execute the notebooks online)
- Ideally, we have the option to optionally execute notebooks by the CI (but it should be also possible to use an executed
.ipynbfile, as some of the notebooks might be too computationally expensive)
Possible solutions:
- jupyterbook (@Zethson)
- sphinx with myst-nb (we use that in the cookiecutter template already)
For interactivity the notebooks can be linked to various online services like binder or google colab. For binder it's easier to declare dependencies as a yml file, but google colab has access to GPU which is particularly useful for scvi-tools.
See also https://sphinx-book-theme.readthedocs.io/en/stable/launch.html#launch-buttons-for-interactivity
There's also thebe which would allow to run code cells directly within sphinx. I didn't like their demo too much though, and I also don't see a clear advantage over opening binder/colab.
Hosting
If we go for sphinx, we could consider readthedocs. But probably building our own CI gives us more flexibility and resources for executing the notebooks and we can simply push sphinx/jupyterbook to github pages. The only downside is that it is hard to have multiple versions of the documentation (but not sure we need that for the tutorials).
WDYT?