Description
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:
- Add ability to omit/mute link checking: [DOCS] Added --skiplinkcheck parameter #261
- Add ability to check links faster (i.e. without rebuilding all docs): [DOCS] Added --linkcheckonly parameter for build_docs.pl #262