-
Notifications
You must be signed in to change notification settings - Fork 709
Description
Describe the issue linked to the documentation
PyRIT currently does not have a website to make documentation easier to discover and interact with.
Suggest a potential alternative/fix
PyRIT should have an auto-generated website. Options include sphinx, mkdocs, jupyterbook. The key difference is that jupyterbook uses MyST, mkdocs uses markdown, and sphinx allows markdown, MyST, and reStructured Text (reST). Jupyterbook builds on top of sphinx. For an extensive comparison between the two refer to this page. Jupyterbook also has a neat integration for ipynb files which is currently our entire documentation. For that reason, I'm inclined to suggest going that route unless we hit any roadblocks.
Example: interpret.ml uses jupyter books with MyST
Version management should ideally be taken care of by ReadTheDocs since it's by far the simplest. https://docs.readthedocs.io/en/stable/examples.html
Individual tasks:
- basic jupyterbooks setup working, i.e., there's a folder from which we generate the website, a config file, and the workflow is documented (commands for generating it, dependencies, etc.)
- The pyrit package code auto-generates an API reference. This may result in tons of issues or warnings that need to be addressed as well (for example, the current docstrings may be formatted badly).
- The existing docs folder needs to be integrated into this website as our user guide / examples. Interestingly, unlike many other projects we can't have all our notebooks execute upon doc build; or at least not currently (because it involves lots of LLM calls which the automated doc build would not be able to handle). Instead, the pre-generated and checked in notebooks should be displayed on the website. There must be a config option for that.
- The website needs a nice landing page.
- The website needs to be integrated with ReadTheDocs for versioning.
- The website needs to be integrated with GitHub pipelines to show previews on PRs (that preview the changes). https://github.com/readthedocs/actions/tree/main/preview
Note: in the past we've explored having only a wiki page but that wasn't really discoverable for people.