scientific-python / summit-2024

1 stars 0 forks source link

Interactive documentation for Scientific Python projects #19

Open melissawm opened 5 months ago

melissawm commented 5 months ago

There are lots of moving parts in the "interactive documentation" space for multiple projects in our ecosystem. I'd like to spend some time documenting the status quo and understanding the challenges in this space.

References

Please add more as appropriate 😄

drammock commented 5 months ago

this is tangentially related: https://github.com/sphinx-gallery/sphinx-gallery/pull/1312

steppi commented 5 months ago

Thanks for creating this @melissawm. I was planning to post a similar issue today.

betatim commented 5 months ago

Another* example of what is floating around is the example gallery in scikit-learn. Most comes via sphinx gallery (I think)

https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_4_0.html#sphx-glr-auto-examples-release-highlights-plot-release-highlights-1-4-0-py (look for the buttons at the bottom right hand menu ("lite" and "mybinder.org")


melissawm commented 5 months ago

See also https://github.com/scipy/scipy/pull/20843

lesteve commented 5 months ago

Hi :wave:, not at the summit physically, but I am interested to help on this kind of topics!

For completeness: I did most of the work to get the scikit-learn gallery examples in JupyterLite, packaged OpenBLAS in Pyodide, and I am currently running the Scipy tests inside Pyodide in https://github.com/lesteve/scipy-tests-pyodide. The list of skipped/xfailed Scipy tests (with some short explanation) are tracked in https://github.com/lesteve/scipy-tests-pyodide/blob/main/conftest.py.

thomasjpfan commented 5 months ago

@lesteve From https://github.com/pyodide/pyodide/issues/3379#issue-1506105662, is the best way to debug RuntimeError: null function or function signature mismatch to use the Chromium? It looks like it's the best way to figure out which function has the mismatch.

lesteve commented 5 months ago

Yes, the best source I know is the Pyodide doc: https://pyodide.org/en/stable/development/debugging.html#linker-error-function-signature-mismatch and https://pyodide.org/en/stable/development/debugging.html#debugging-runtimeerror-function-signature-mismatch

If that happens in Scipy, generally you then need to go down the code generation in Scipy, the f2c hacks in Pyodide that do modifications before (on Fortran file) or after (on generated C file) f2c is run, etc ...

betatim commented 5 months ago

One thing that came up at the summit, and to which I'd also like to know the answer: is there a guide/example that shows how to solve the problem that the documentation on a dev website is ahead of the code packaged in the runnable examples (because pyodide doesn't contain the latest commit)?

rgommers commented 5 months ago

@betatim there's no answer as of today, but it's very actively being worked on (Cc @agriyakhetarpal and @hoodmane for visibility). The goal is to use nightly wasm wheels, the current blocker is that nightly wheels from https://anaconda.org/scientific-python-nightly-wheels/ aren't installable by Pyodide because the Anaconda index server isn't setting CORS headers. The resolution is either for Anaconda to fix that, or to run a proxy in front of that index server, or to move to a different hosting location.

Hopefully solvable in the coming weeks, with the guide on how to set up interactive docs ending up in a SPEC after that.