Skip to content

API documentation content organisation #630

@fsimonis

Description

@fsimonis

We want to integrate the documentation of the language bindings into the website.
A major question is how this should be organized. Currently, we :

  • build the website
  • build preCICE develop doxygen documentation
  • build preCICE main/latest doxygen documentation
  • move the doxygen docs to doxygen/main/ and doxygen/develop/
  • add a page that links to these subpages

The downside of this approach is that everything needs to be built as part of the website CI and that there is currently no clear space for additional languages such as python or Fortran.

We need to rearrange where this is published.

Option 1: Unified website

Unify under precice.org/docs/api/<language>/[latest|develop].

  • precice.org/docs/api/core/latest shows preCICE doxygen docs
  • precice.org/docs/api/python/latest shows python docs
  • precice.org/docs/api/rust/latest shows rust docs

Pro:

  • Fits into the hugo migration (they can be moved/mounted into static/docs/api/...)
  • Everything is part of a single deployment and thus a single workflow.
  • This is easily extendable to other languages.
  • Easier to fix the rendering infrastructure as it is all part of the website and doesn't need a new release.

Contra:

  • Requires all language binding documentation to be built as part of the CI. Some of which require preCICE to be installed on the system.
  • Fixes need to be done in the bindings repos and then updated in the website repo. (like tutorials)

Option 2: Separate websites

Deploy docs individually using GitHub pages then publish to subdomains:

  • XX.precice.org show preCICE doxygen documentation
  • python.precice.org or py.precice.org shows python docs
  • rust.precice.org or rs.precice.org shows rust docs

Pro:

  • Trivial to integrate with current website as clearly separated.
  • Each repo can deploy its own documentation.
  • Fixes of content are easier as they get directly pushed and published
  • Subdomain separation looks very clean and easy to remember
  • Easily extensible to other languages

Contra:

  • Unclear what to call native docs (native.precice.org, api.precice.org, core.precice.org or cpp.precice.org all look weird). One could forward c.precice.org and fortran.precice.org to cpp.precice.org, but this requires extra repos with redirects.
  • Unclear how to deploy latest and develop in separate folders.
  • Creates a lot of extra off-topic commits due to the gh-pages branch in each binding repo.
  • Fixes of infrastructure is more difficult as this may require a separate release to fix.
  • Requires deployment workflow in each repo
  • Clutters subdomains

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions