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

DOC Website for PyRIT #362

Open
6 tasks
romanlutz opened this issue Sep 10, 2024 · 2 comments
Open
6 tasks

DOC Website for PyRIT #362

romanlutz opened this issue Sep 10, 2024 · 2 comments
Labels
documentation Improvements or additions to documentation help wanted Extra attention is needed

Comments

@romanlutz
Copy link
Contributor

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).

Note: in the past we've explored having only a wiki page but that wasn't really discoverable for people.

@Ashleycodesseo
Copy link

Hey @romanlutz if you need help with documentation I'd be happy to assist. I'm looking to get some experience with REST API documentation so please let me know in what way I can give you a hand. Thanks

@romanlutz
Copy link
Contributor Author

@cngo20 and @sf-msft came up with the basic jupyterbooks setup.

We don't really have REST APIs right now as there's no service. You're welcome to check the existing docstrings and see if you can make them better/clearer (or ask questions if they are unclear!), of course. That's a somewhat different task from setting up the website infrastructure (which is what this task is about), though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants