Skip to content

Switch to GitHub Pages for hosting the documentation #777

Open
@agriyakhetarpal

Description

@agriyakhetarpal

As stated in the issue title, I'd like to propose moving the hosted documentation away from Read the Docs and using GitHub Pages instead for hosting. This was last discussed in #706 (comment) and, probably, a few times elsewhere.

Some of the advantages and reasons for this suggestion are as follows:

  • We receive greater control over the build process and we can modify it as we like, instead of having to configure extra build steps we might end up needing in a .readthedocs.yaml file
  • For enabling the rest of the interactive documentation for PyWavelets on latest versions, it is then possible to embed a custom Pyodide distribution, which seems to me should be the best approach for reusing the docs. I've previously tried a similar approach, but this new one that I propose should work better, since it would work without the need for nightly WASM wheels.
  • One less GitHub App to configure for this repository/organisation and fewer finicky permissions to handle.
  • and so on

Some things to be thought about:

  • PyWavelets is a package that has been present for almost nineteen years now, and a lot of links will get subjected to link rot if we don't preserve the style of the Read the Docs links, i.e., to link to the "stable" documentation and "latest" documentation under /en/stable/ and /en/latest/ respectively. Setting redirects for broken links is possible under the Read the Docs admin dashboard, but it's difficult to do the same thing on GitHub Pages.
  • How to best navigate "stable" and "latest" documentation updates on GitHub Pages. For the latter, it would be through a GitHub Actions job that gets triggered on pushes to the master branch and uses a fine-grained PAT to update the rebuilt docs in the gh-pages branch for a PyWavelets/docs repository
  • The features enabled via the Read the Docs add-ons will be lost. Not a big bummer, though, considering we host only the "latest" and "stable" versions and the version switcher has been the most useful one, IO. The version warning on an "unstable" version can be natively re-implemented using admonitions by customising the conf.py file.
  • and more things I might have missed at the time of writing this issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions