Skip to content

How should we create API documentation? #1

Open
@caro401

Description

@caro401

All of the Python packages associated with Kiara need to have some way of displaying their (internal) API documentation. This means information about the Python classes and functions contained in each package. An example of the existing deployed documentation is here for the tabular plugin.

This documentation is currently generated using Mkdocs and its material theme. The code to do this generation comes from the plugin template here on GitHub, but Markus isn't happy with this in its current state.

Having this documentation hosted somewhere is essential for plugin developers to be able to share how their plugin works. Ideally, we'd make it really easy for plugin developers to create docs sites in the same way that internally-developed plugins do. This probably means we need the API docs to be standalone per plugin, so there's no dependencies on the team doing anything on a central docs site to get this API documentation published. @makkus do you agree?

Whatever approach we go with, we should include code for doing this with the plugin template as we do currently, along with docs for plugin authors on how to publish their own docs.

Open questions I can think of about how we do this:

  • do we continue to use the existing mkdocs-material-based template? If so, what and how much work is involved in bringing it to an acceptable standard
  • do we instead start from scratch with a different approach? If so, what approach? Common options in the Python ecosystem would be mkdocs with or without material, or something sphinx-based which might then be hosted at readthedocs. I have no up-to-date experience with either.
  • what features does this thing need to have? For example, do we care about internationalization or translations? I think not for API docs but maybe. Do we need to provide docs for every published version of a package? Probably? Does it need to have other things like search?

@makkus could you elaborate exactly what problems and shortcomings you see with the current solution, so we can either work out how to fix them, or make sure we don't have the same issues in a different solution

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionopen questionslow-priorityThings we don't have resources to address right now

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions