Skip to content

Make doc builds more modular #249

Closed
Closed
@debadair

Description

@debadair

We've outgrown the monolithic approach to building, verifying, and publishing the docs. Along the way, the doc repo has grown to the point where it's problematic for people to clone.

The most obvious signs of this are our release day delays. People don't always build the docs before merging and very rarely build everything, which is the only way to check cross doc links. Last minute and unrelated changes frequently require us to restart the doc build, and because we have to build everything, that takes a non-trivial amount of time.

This also affects our day to day workflow, which features frequent diversions to chase down unrelated build failures so we can finish the tasks at hand.

Ideally, we'd be able to:

  • Run pre-build checks on the asciidoc files to find common problems that are slipping through the cracks--undefined attributes, broken external links, maybe even spellcheck?
  • Check cross-doc links and perform other post-build verification on specific books using the already-built versions of everything else.
  • Run the Kibana link checks independently/get a report that shows the topics that are being linked to in a specific book.
  • Publish selected books/branches. Updating the current version for Curator, for example, shouldn't require rebuilding and publishing everything else that's changed. Doc build failures on master shouldn't block a version release. Cloud releases shouldn't be blocked by doc build failures in the individual product docs.

In addition to making the doc build itself more modular, we need to figure out how to make the docs repo easier to deal with--perhaps by splitting the build infrastructure and generated docs apart. It can literally take people hours to clone the repo, so people avoid putting other doc tools there and opt out of contributing to the docs.

We've started to chip at these problems in the following PRs:

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementSomething we'd like to improve

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions