Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking issue for adding interactive documentation #706

Open
6 of 11 tasks
agriyakhetarpal opened this issue Mar 5, 2024 · 12 comments
Open
6 of 11 tasks

Tracking issue for adding interactive documentation #706

agriyakhetarpal opened this issue Mar 5, 2024 · 12 comments

Comments

@agriyakhetarpal
Copy link
Collaborator

agriyakhetarpal commented Mar 5, 2024

Description

This is an issue to collect tasks for adding interactive documentation to PyWavelets via JupyterLite kernels/notebooks.

Proposal

Additional comments

The intermediate step would mean that the .whl files would have to be downloaded manually using wget or curl first (a helper script can be created for this) and pointed to the Pyodide-pip interpreter for installation.

Footnotes

  1. https://github.com/scipy/scipy/pull/20019/

@rgommers
Copy link
Member

rgommers commented Mar 5, 2024

Add CI jobs to run nightly builds of Pyodide wheels (or on every push to master, rather?),

Every push to master would be better; this package moves very slowly so more than that is a bit wasteful.

while configuring versioning to include git hashes or dates

That may be simplified by this just-merged Meson feature: mesonbuild/meson@524a661. It'll only be available once 1.4.0 comes out. You could already try locally though whether you can make that work. Note that it would need a .py script rather than the version.sh in the docs, otherwise things won't work on Windows.

@agriyakhetarpal
Copy link
Collaborator Author

Thanks, a 1.4.0 non-RC release for Meson should be out in a week or so when we should be able to do this. A .py script would work nicely too.

I am more concerned about how we would make Read the Docs work with what we are intending to do – I suppose only the process of the implementation can tell what things end up being feasible.

@rgommers
Copy link
Member

rgommers commented Mar 5, 2024

It's purely client-side, so probably fine on RTD. Switching to GitHub Pages would also be pretty straightforward if needed.

@rgommers
Copy link
Member

rgommers commented Mar 8, 2024

Investigate where to upload wasm32 wheels (needs an external index that accepts emscripten_X_Y_wasm32 platform tags)

I opened scientific-python/upload-nightly-action#75 to request access to upload to https://anaconda.org/scientific-python-nightly-wheels/repo.

@rgommers
Copy link
Member

rgommers commented Mar 8, 2024

Add CI jobs to run nightly builds of Pyodide wheels (or on every push to master, rather?)

I'll note that that anaconda.org bucket cleans up nightlies older than 30 days. So how about on every push to master and every 25 days, to be safe?

@agriyakhetarpal
Copy link
Collaborator Author

I'll note that that anaconda.org bucket cleans up nightlies older than 30 days. So how about on every push to master and every 25 days, to be safe?

Yes, that should be fair enough – we would want at least one wheel being uploaded before other ones get cleaned up

@agriyakhetarpal
Copy link
Collaborator Author

Next step is actually getting started with interactive documentation. We already have the usage examples – how should we go ahead? Should I convert them to notebooks as I mentioned above?

@rgommers
Copy link
Member

Guess we're getting closer, 4 out of 7 done. I'm starting to prepare the 1.6.0 release. I think we can probably get the "Try Examples" in before that is final (in 2 weeks or so).

@rgommers
Copy link
Member

We already have the usage examples – how should we go ahead? Should I convert them to notebooks as I mentioned above?

It is not necessary to convert them to notebooks. The jupyterlite-sphinx extension should be able to work with any regular examples in docstrings. I suggest adding that extension first, seeing what works with it and what doesn't using the PyWavelets 1.5.0 shipped in Pyodide, and then fixing things up as needed.

@agriyakhetarpal
Copy link
Collaborator Author

Guess we're getting closer, 4 out of 7 done. I'm starting to prepare the 1.6.0 release. I think we can probably get the "Try Examples" in before that is final (in 2 weeks or so).

Just adding a comment here to update things: I assume this has been checked out and #731 should now bring v1.6.0 with some new examples. The Emscripten and Pyodide versions are not decoupled at the time of writing, so we won't have v1.6.0 WASM wheels until there is a new version of Pyodide, but it should be okay since there have been no previous API changes as discussed earlier. I have updated the checklist to showcase the most recent scenario. The next task to check off would be to keep investigating the CORS headers issue. We recently merged jupyterlite/jupyterlite-sphinx#161, and a release for jupyterlite-sphinx should be coming soon – after that, we can remove the :button_text: input from all examples (which shall fix the issue we had faced, mentioned in the PR linked above).

@agriyakhetarpal
Copy link
Collaborator Author

From #737 (comment), the "Usage Examples" section is now being worked on; it can be targeted for a v1.6.1 milestone/release.

@agriyakhetarpal
Copy link
Collaborator Author

Note to self: jupyterlite/jupyterlite#461 might be useful; I hope it is added to the Pyodide kernel. It might be possible to write a custom JupyterLite kernel for this such as https://github.com/jobovy/jupyterlite-repl-prerun.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants